css – 如何在material-ui中使用伪选择器?

前端之家收集整理的这篇文章主要介绍了css – 如何在material-ui中使用伪选择器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在努力实现这个简单的事情.我试图显示/隐藏我的< TreeMenu />具有伪选择器的材质UI v1中的组件,但不知何故它不起作用.这是代码
CSS:
root: {
        backgroundColor: 'white','&:hover': {
          backgroundColor: '#99f',},hoverEle: {
    visibility: 'hidden','&:hover': {
      visibility: 'inherit',rootListItem: {
        backgroundColor: 'white',display: 'none','&:hover': {
          display: 'block',backgroundColor: '#99f','@global': {
        'li > div.nth-of-type(1)': {
          display: 'block !important',backgroundColor: "'yellow',",

root css类在列表上工作正常但是rootListItem甚至@global li选择器都不起作用.我不确定我在选择器上做错了什么.我读了材料-ui文档并说V1支持伪选择器.

JSX:

<div>
      {props.treeNode.map(node => (
        <ListItem
          key={`${node.Type}|${node.NodeID}`}
          id={`${node.Type}|${node.NodeID}`}
          className={(classes.nested,classes.root)}
          button
          divider
          disableGutters={false}
          dense
          onClick={() => props.onNodeClick(node.Type,node.NodeID,node.NodeName)}
          title={props.adminUser ? node.NodeID : ''}
          onMouSEOver={() => props.onMouSEOver(node.Type,node.NodeID)}
        >
          <ListItemIcon>{props.listIcon}</ListItemIcon>
          <ListItemText primary={node.NodeName} />
          <ListItemSecondaryAction classes={{ root: classes.rootListItem }}>
            <TreeMenu />
          </ListItemSecondaryAction>
          <div className={classes.hoverEle}>
            <TreeMenu />
          </div>
        </ListItem>
      ))}
    </div>

请查看< TreeMenu>零件.我已经应用了3种不同的技巧:
1)hoverEle类带有’&:hover’选择器.
2)试图覆盖默认的根类< ListItemSecondaryAction>使用我的类rootListItem
3)在li.See’li>上使用其他伪选择器. div.nth-的式(1)’:

解决方法

经过一段时间的努力让你的代码启动并运行后,我发现你的代码出了什么问题.

一切似乎都很好,rootListItem的选择器开箱即用,问题是您不能使用伪选择器:将鼠标悬停在具有display:none的元素上.相反,你应该使用不透明度:0和不透明度:1,它将隐藏你的ListItemSecondaryAction,但同时它将允许你悬停.因此,具有display:none的元素在技术上不会显示,因此您不能将它们悬停.

关于你在全局的伪选择器,你只是写错了.在div之后使用冒号代替点,并将backgroundColor更改为“黄色”而不是“黄色”,

'li > div:nth-of-type(1)': {
        display: 'block !important',backgroundColor: 'yellow',

我不知道你的TreeMenu是如何看作组件的,所以我刚创建了一个包含ul / li / div节点的列表.

const styles = {
root: {
    backgroundColor: 'white','&:hover': {
        backgroundColor: '#99f','&:hover': {
        visibility: 'inherit',rootListItem: {
    backgroundColor: 'white',opacity: 0,'&:hover': {
        opacity: 1,'@global': {
    'li > div:nth-of-type(1)': {
        display: 'block !important',backgroundColor: "yellow",};

和:

<div>
    {treeNode.map(node => (
        <ListItem
            key={`${node.Type}|${node.NodeID}`}
            id={`${node.Type}|${node.NodeID}`}
            className={classes.root}
            button
            divider
            disableGutters={false}
            dense
            onClick={() => {}}
            title={''}
            onMouSEOver={() => {}}
        >
            <ListItemText primary={node.NodeName} />
            <ListItemSecondaryAction classes={{ root: classes.rootListItem }}>
                <ul><li><div>Elem 1</div></li><li><div>Elem 2</div></li></ul>
            </ListItemSecondaryAction>
            <div className={classes.hoverEle}>
                <ul><li><div>Elem 1</div></li><li><div>Elem 2</div></li></ul>
            </div>
        </ListItem>
    ))}
</div>

*我正在使用treeNode这是一个数组,我删除了其余的函数和TreeMenu.

原文链接:https://www.f2er.com/css/214973.html

猜你在找的CSS相关文章