CSS的伪类和伪对象怎样理解 不同在什么地方
这篇文章给大家分享的是“CSS的伪类和伪对象怎样理解,不同在哪”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。 其中伪类和伪元素(伪对象)的根本区别在于:它们是否创造了新的元素。 伪元素/伪对象:不存在在DOM文档中,是虚拟的元素,是创建新元素。代表某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中。 再看看W3C中对于二者应用的描述: 伪类:用于向某些选择器添加特殊的效果 伪元素:用于将特殊的效果添加到某些选择器 其实根本意思就是就是对那些不能通过class、id等选择元素的补充 举个栗子: <div> <p>a</p> <p>b c</p> </div> 如果我们想要第一个p标签字体颜色变红怎么做呢 使用伪类就会很简单: p:first-child { color: red; } 但是如果不用伪类我们怎么做呢? 这时我们就需要为第一个p标签添加一个类class <div> <p class="first-child">a</p> <p>b c</p> </div> p:first-child { color: red; } 可以实现同样的效果,但是需要多写一个类 如果使用伪元素该如何实现上述操作呢? p::first-letter { color: red; } 如果不用伪元素我们怎么做呢? <div> <p><span>a</span></p> <p>b c</p> </div> p span { color: red; } 可以看出二者区别了, 伪类的效果可以通过添加实际的类来实现 伪元素的效果可以通过添加实际的元素来实现 所以它们的本质区别就是是否抽象创造了新元素 注意: 伪类只能使用“:” 而伪元素既可以使用“:”,也可以使用“::” 因为伪类是类似于添加类所以可以是多个,而伪元素在一个选择器中只能出现一次,并且只能出现在末尾 相关问题 :after/::after和:before/::before的异同 相同点: 都可以用来表示伪类对象,用来设置对象前的内容 :before和::before写法是等效的; :after和::after写法是等效的 不同点: :before/:after是Css2的写法,::before/::after是Css3的写法 :before/:after 的兼容性要比::before/::after好 , 不过在H5开发中建议使用::before/::after比较好 注意: 伪对象要配合content属性一起使用 伪对象不会出现在DOM中,所以不能通过js来操作,仅仅是在 CSS 渲染层加入 伪对象的特效通常要使用:hover伪类样式来激活 eg:当鼠标移在span上时,span前插入”duang” <style> span{ background: yellow; } span:hover::before{ content:"duang"; } </style> <span>222</span> 关于“CSS的伪类和伪对象怎样理解,不同在哪”的内容今天就到这,感谢各位的阅读,大家可以动手实际看看,对大家加深理解更有帮助哦。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |