JSS-如何为嵌套的孩子设置样式?

时间:2019-02-20 13:23:00

标签: reactjs jss

我有一个列表,想要从父级样式化list-item的嵌套元素。如何访问嵌套元素?下面的代码不起作用。

反应js标记

<ul classname={classes.list}>
   <li>
     <span className={classes.box}> my box </span>
   </li>
   <li>
     <span className={classes.box}>second box </span>
   </li>
</ul>

JSS

const styles = () => ({
  box: {
    background: 'red',
  },
  list: {
    listStyle: "none",

    "li": {
      "&:first-child": {
        "& $box": {
          color: 'red',
          border: 'solid',
         }
      }
    }
  },

2 个答案:

答案 0 :(得分:3)

defining your styles object的方式稍有变化,可以使您的代码运行。对于嵌套元素,您需要通过{strong> space

分隔&和classname或dom项目。

工作风格对象:

const styles = () => ({
  box: {
    background: 'red',
  },
  list: {
    listStyle: "none",
    '& li': {
      '&:first-child': {
        '& $box': {
          border: 'solid',
        }
      }

    }
  }
})

working demo

答案 1 :(得分:1)

我希望这会有所帮助:

JSS

list: {
    listStyle: "none",  
    '& li:first-child $box': {
      background: 'blue'
    }
  }

然后您输入了一些错误。它应该是“ className”,大写字母“ N”。

问候