评论

css中 伪类伪元素前面有没有空格的区别

分享一个最近遇到的cssbug,css也要好好学!

css中 伪类伪元素前面有没有空格的区别

:hover和 :hover(前面多一个空格)的区别

:hover 表示所选择元素的整个元素

而 :hover(前面多一个空格)表示所选择的元素的子元素才起作用(本身不起作用)

//html
<div class="demo">
      <span class="demo1">111</span>
      <span class="demo">222</span>
</div>
//css
.demo  {
  background-color: #fd7d8c;
  margin-left: 20px;
}
.demo:hover  {
  background-color: #2911fc;
}
/*.demo :hover  {
  background-color: #2911fc;
}  */

.demo:hover

  1. ** 正常情况下**

  1. 鼠标悬浮在主demo上(当子元素有相同名称时,不会被选择到)

  1. 鼠标悬浮在右上角子demo上

.demo :hover(前面多一个空格)

  1. 鼠标悬浮在主demo上(此时是主元素demo是没有悬浮效果的)

  1. 鼠标悬浮在子元素上(不一定要同名 只要是demo的子元素即可)

总结

不只是hover 其它伪类和伪元素也是一样的,其实在css选择器中空格就代表是选择子元素,像平时用的 .class1 .class2,是选择到class1中的子元素class2。以此类推!

点赞 3
收藏
评论

2 个评论

  • Smooth
    Smooth
    2021-11-25

    期待下次可以讲讲像 .class[xxx] 这种选择器的用法,感觉这种也很实用

    2021-11-25
    赞同 2
    回复 1
    • ...
      ...
      2021-11-25
      哈哈哈好!
      2021-11-25
      1
      回复
  • 谋谋谋
    谋谋谋
    2021-11-24

    真棒 学到了 针不戳

    2021-11-24
    赞同 1
    回复 1
    • ...
      ...
      2021-11-24
      嘿嘿 一起学习!
      2021-11-24
      回复
登录 后发表内容