伪类和伪元素的区别

150 阅读2分钟

伪类和伪元素的区别

伪元素

伪元素:在逻辑上创建了虚拟的新元素,并可以给新元素添加样式。

伪类

伪类:根据状态改变元素样式,只是对选择器的扩展和弥补不足。

区别:

1.伪类使用单冒号,CSS3在伪元素中引入双冒号,是为了区分伪类和伪元素,伪元素同时也支持单冒号。为了方便区分,可以给伪元素一直使用双冒号。

2.一个选择器中可以同时跟随多个伪类并一起起作用,但伪元素如果在选择器后跟随多个则不会起作用。

常见的伪元素

伪元素描述
::after作为选中元素的第一个子元素。
::before作为选中元素的最后一个子元素。
::first-letter选中块元素第一行的第一个字母,应用样式。
::first-line选中块元素的第一行,应用样式。
::selection应用于文档中被用户选中的部分,如使用鼠标选中文本。
::file-selector-button代表input(file)标签按钮,用来改变该按钮样式。
::marker应用于list-item元素上的标记点的样式。
::slotted用于选定那些被放在HTML模板中的元素。
::part应用于Web components中shadow-dom的任何匹配part属性的元素。

常见的伪元素演示: 记住: content要和::before,::after一起记忆 ::before 创建一个伪元素,作为所选中元素的第一个子元素;::after 创建一个伪元素,作为所选中元素的最后一个子元素。 before和after通常需要content在前后添加内容 content的取值范围:

说明实例
none设置 content 为空值。
normal在 :before 和 :after 伪类元素中会被视为 none,即也是空值。
counter设定计数器,格式可以是 counter(name) 或 counter(name,style) 。产生的内容是该伪类元素指定名称的最小范围的计数;格式由style指定(默认是'decimal'——十进制数字)
attr (attribute)将元素的 attribute 属性以字符串形式返回。。
string设置文本内容content:"中国"
open-quote设置前引号content: open-quote
close-quote设置后引号content: close-quote
no-open-quote移除内容的开始引号
no-close-quote移除内容的闭合引号
url(url)设置某种媒体(图像,声音,视频等内容)的链接地址content: url("./")
inherit指定的 content 属性的值,应该从父元素继承
        .wrap::before{
            content: "开始";
            color: #f00;


        }
        label::before{
            content: open-quote;
            color:#f00
        }
        label::after{
            content: close-quote;
            color:#f00
        }
        
        input{
            border: 1px solid green;
        }
        input::placeholder{
            color: red;
            font-size: medium;
            font-style: italic;
        }
        ::selection{
            color: cyan        }
    </style> ```