总结伪类与伪元素

Claude Skills:不是更聪明,而是更“像专家”的 Agent 养成方法 Claude Skills 不是在告诉 Agent“你能做什么”, 而是在约束它“你应该如何思考、如何判断、如何给结论”。 阅读详情

熟悉前端的人都会听过css的伪类与伪元素,然而大多数的人都会将这两者混淆。本文从解析伪类与伪元素的含义出发,区分这两者的区别,并且列出大部分伪类与伪元素的具体用法,即使你有用过伪类与伪元素,但里面总有一两个你没见过的吧。

  1. 伪类与伪元素

  先说一说为什么css要引入伪元素和伪类,以下是css2.1 Selectors章节中对伪类与伪元素的描述:

  CSS introduces the concepts of pseudo-elements and pseudo-classes  to permit formatting based on information that lies outside the document tree.

  直译过来就是:css引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。下面分别对伪类和伪元素进行解释:

  伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,当用户悬停在指定的元素时,我们可以通过:hover来描述这个元素的状态。虽然它和普通的css类相似,可以为已有的元素添加样式,但是它只有处于dom树无法描述的状态下才能为元素添加样式,所以将其称为伪类。

  伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过:before来在一个元素前增加一些文本,并为这些文本添加样式。虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。

  2. 伪类与伪元素的区别

  这里通过两个例子来说明两者的区别。

  下面是一个简单的html列表片段:

<ul>
    <li>我是第一个</li>
    <li>我是第二个</li>
</ul>

   如果想要给第一项添加样式,可以在为第一个<li>添加一个类,并在该类中定义对应样式:

  HTML:

<ul>
    <li class="first-item">我是第一个</li>
    <li>我是第二个</li>
</ul>

   CSS:

li.first-item {
    color: orange
}

  如果不用添加类的方法,我们可以通过给设置第一个<li>的:first-child伪类来为其添加样式。这个时候,被修饰的<li>元素依然处于文档树中。

  HTML:

<ul>
    <li>我是第一个</li>
    <li>我是第二个</li>
</ul>

  CSS:

li:first-child {
    color: orange
}

  下面是另一个简单的html段落片段:

<p>Hello World, and wish you have a good day!</p>

  如果想要给该段落的第一个字母添加样式,可以在第一个字母中包裹一个<span>元素,并设置该span元素的样式:

  HTML:

<p><span class="first">H</span>ello World, and wish you have a good day!</p>

  CSS:

.first {
    font-size: 5em;
}

  如果不创建一个<span>元素,我们可以通过设置<p>的:first-letter伪元素来为其添加样式。这个时候,看起来好像是创建了一个虚拟的<span>元素并添加了样式,但实际上文档树中并不存在这个<span>元素。

  HTML:

<p>Hello World, and wish you have a good day!</p>

  CSS:

p:first-letter {
    font-size: 5em;
}

  从上述例子中可以看出,伪类的操作对象是文档树中已有的元素,而伪元素则创建了一个文档数外的元素。因此,伪类与伪元素的区别在于:有没有创建一个文档树之外的元素。

  3. 伪元素是使用单冒号还是双冒号?

  CSS3规范中的要求使用双冒号(::)表示伪元素,以此来区分伪元素和伪类,比如::before和::after等伪元素使用双冒号(::),:hover和:active等伪类使用单冒号(:)。除了一些低于IE8版本的浏览器外,大部分浏览器都支持伪元素的双冒号(::)表示方法。

  然而,除了少部分伪元素,如::backdrop必须使用双冒号,大部分伪元素都支持单冒号和双冒号的写法,比如::after,写成:after也可以正确运行。

  对于伪元素是使用单冒号还是双冒号的问题,w3c标准中的描述如下:

  Please note that the new CSS3 way of writing pseudo-elements is to use a double colon, eg a::after { … }, to set them apart from pseudo-classes. You may see this sometimes in CSS. CSS3 however also still allows for single colon pseudo-elements, for the sake of backwards compatibility, and we would advise that you stick with this syntax for the time being.

  大概的意思就是:虽然CSS3标准要求伪元素使用双冒号的写法,但也依然支持单冒号的写法。为了向后兼容,我们建议你在目前还是使用单冒号的写法。

  实际上,伪元素使用单冒号还是双冒号很难说得清谁对谁错,你可以按照个人的喜好来选择某一种写法。

  4. 伪类与伪元素的具体用法

  这一章以含义解析和例子的方式列出大部分的伪类和伪元素的具体用法。下面是根据用途分类的伪类总结图和根据冒号分类的伪元素总结图:

伪类伪元素  某些伪类或伪元素仍然处于试验阶段,在使用前建议先在Can I Use等网站查一查其浏览器兼容性。处于试验阶段的伪类或伪元素会在标题中标注。

  伪类

  状态

  由于状态伪类的用法大家都十分熟悉,这里就不用例子说明了。

  1 :link

  选择未访问的链接

  2 :visited

  选择已访问的链接

  3 :hover

  选择鼠标指针浮动在其上的元素

  4 :active

  选择活动的链接

  5 :focus

  选择获取焦点的输入字段

  结构化

  1 :not

  一个否定伪类,用于匹配不符合参数选择器的元素。

  如下例,除了第一个<li>元素外,其他<li>元素的文本都会变为橙色。

  HTML:

<ul>
    <li class="first-item">一些文本</li>
    <li>一些文本</li>
    <li>一些文本</li>
    <li>一些文本</li>
</ul>

  CSS:

li:not(.first-item) {
    color: orange;
}

  2 :first-child

  匹配元素的第一个子元素。

  如下例,第一个<li>元素的文本会变为橙色。

  HTML:

<ul>
    <li>这里的文本是橙色的</li>
    <li>一些文本</li>
    <li>一些文本</li>
</ul>

  CSS:

li:first-child {
    color: orange;
}

  3 : last-child

  匹配元素的最后一个子元素。

  如下例,最后一个<li>元素的文本会变为橙色。

  HTML:

<ul>
    <li>一些文本</li>
    <li>一些文本</li>
    <li>这里的文本是橙色的</li>
</ul>

  CSS:

li:last-child {
    color: orange;
}

  4 first-of-type

  匹配属于其父元素的首个特定类型的子元素的每个元素。

  如下例,第一个<li>元素和第一个<span>元素的文本会变为橙色。

  HTML:

<ul>
    <li>这里的文本是橙色的</li>
    <li>一些文本 <span>这里的文本是橙色的</span></li>
    <li>一些文本</li>
</ul>

  CSS:

ul :first-of-type {
    color: orange;
}

  5 :last-of-type

  匹配元素的最后一个子元素。

  如下例,最后一个<li>元素的文本会变为橙色。

  HTML:

<ul>
    <li>一些文本<span>一些文本</span> <span>这里的文本是橙色的</span></li>
    <li>一些文本</li>
    <li>这里的文本是橙色的</li>
</ul>

  CSS:

ul :last-of-type {
    color: orange;
}

  6 :nth-child

  :nth-child根据元素的位置匹配一个或者多个元素,它接受一个an+b形式的参数,an+b匹配到的元素示例如下:

  • 1n+0,或n,匹配每一个子元素。
  • 2n+0,或2n,匹配位置为2、4、6、8…的子元素,该表达式与关键字even等价。
  • 2n+1匹配位置为1、3、5、7…的子元素、该表达式与关键字odd等价。
  • 3n+4匹配位置为4、7、10、13…的子元素。

  如下例,有以下HTML列表:

<ol>
    <li>Alpha</li>
    <li>Beta</li>
    <li>Gamma</li>
    <li>Delta</li>
    <li>Epsilon</li>
    <li>Zeta</li>
    <li>Eta</li>
    <li>Theta</li>
    <li>Iota</li>
    <li>Kappa</li>
</ol>

  CSS:

  选择第二个元素,”Beta”会变成橙色:

ol :nth-child(2) {
    color: orange;
}

  选择位置序号是2的倍数的元素,”Beta”, “Delta”, “Zeta”, “kappa”会变成橙色:

ol :nth-child(2n) {
    color: orange;
}

  选择位置序号为偶数的元素:

ol :nth-child(even) {
    color: orange;
}

  选择从第6个开始,位置序号是2的倍数的元素,”Zeta”, “Theta”, “Kappa”会变成橙色:

ol :nth-child(2n+6) {
    color: orange;
}

  7 :nth-last-child

  :nth-last-child与:nth-child相似,不同之处在于它是从最后一个子元素开始计数的。

  8 :nth-of-type

  :nth-of-type与nth-child相似,不同之处在于它是只匹配特定类型的元素。

  如下例,第二个<p>元素会变为橙色。

  HTML:

<article>
    <h1>我是标题</h1>
    <p>一些文本</p>
    <a href=""><img src="images/rwd.png" alt="Mastering RWD"></a>
    <p>这里的文本是橙色的</p>
</article>

  CSS:

p:nth-of-type(2) {
    color: orange;
}

  9 :nth-last-type

  :nth-last-of-type与nth-of-type相似,不同之处在于它是从最后一个子元素开始计数的。

  10 :only-child

  当元素是其父元素中唯一一个子元素时,:only-child匹配该元素。

  HTML:

<ul>
    <li>这里的文本是橙色的</li>
</ul>
 
<ul>
    <li>一些文本</li>
    <li>一些文本</li>
</ul>

  CSS:

ul :only-child {
    color: orange;
}

  11 :only-of-type

  当元素是其父元素中唯一一个特定类型的子元素时,:only-child匹配该元素。

  如下例,第一个ul元素只有一个li类型的元素,该li元素的文本会变为橙色。

  HTML:

<ul>
    <li>这里的文本是橙色的</li>
    <p>这里不是橙色</p>
</ul>
 
<ul>
    <li>一些文本</li>
    <li>一些文本</li>
</ul>

  CSS:

li:only-of-type {
    color: orange;
}

  12 :target

  当URL带有锚名称,指向文档内某个具体的元素时,:target匹配该元素。

  如下例,url中的target命中id值为target的article元素,article元素的背景会变为黄色。

  URL:

  http://example.com/#target

  HTML:

<article id="target">
    <h1><code>:target</code> pseudo-class</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit!</p>
</article>

  CSS:

:target {
    background: yellow;
}

  表单相关

  1 :checked

  :checked匹配被选中的input元素,这个input元素包括radio和checkbox。

  如下例,当复选框被选中时,与其相邻的<label>元素的背景会变成黄色。

  HTML:

<input type="checkbox"/>
<label>我同意</label>

  CSS:

input:checked + label {
    background: yellow;
}

  2 :default

  :default匹配默认选中的元素,例如:提交按钮总是表单的默认按钮。

  如下例,只有提交按钮的背景变成了黄色。

  HTML:

<form action="#">
    <button>重置</button>
    <button type="submit">提交</button>
</form>

  CSS:

:default  {
    background: yellow;
}

  3 :disabled

  :disabled匹配禁用的表单元素。

  如下例,被禁用input输入框的透明度会变成50%。

  HTML:

<input type="text" disabled/>

  CSS:

:disabled {
    opacity: .5;
}

  4 :empty

  :empty匹配没有子元素的元素。如果元素中含有文本节点、HTML元素或者一个空格,则:empty不能匹配这个元素。

  如下例,:empty能匹配的元素会变为黄色。

  第一个元素中有文本节点,所以其背景不会变成黄色;

  第二个元素中有一个空格,有空格则该元素不为空,所以其背景不会变成黄色;

  第三个元素中没有任何内容,所以其背景会变成黄色;

  第四个元素中只有一个注释,此时该元素是空的,所以其背景会变成黄色;

  HTML:

<div>这个容器里的背景是橙色的</div>
<div> </div>
<div></div>
<div><!-- This comment is not considered content --></div>

  CSS:

div {
    background: orange;
    height: 30px;
    width: 200px;
}
 
div:empty {
    background: yellow;
}

  5 :enabled

  :enabled匹配没有设置disabled属性的表单元素。

  6 :in-range

  :in-range匹配在指定区域内元素。

  如下例,当数字选择器的数字在5到10是,数字选择器的边框会设为绿色。

  HTML:

<input type="number" min="5" max="10">

  CSS:

input[type=number] {
    border: 5px solid orange;
}
 
input[type=number]:in-range {
    border: 5px solid green;
}

  7 :out-of-range

  :out-of-range与:in-range相反,它匹配不在指定区域内的元素。

  8 :indeterminate

  indeterminate的英文意思是“不确定的”。当某组中的单选框或复选框还没有选取状态时,:indeterminate匹配该组中所有的单选框或复选框。

  如下例,当下面的一组单选框没有一个处于被选中时,与input相邻的label元素的背景会被设为橙色。

  HTML:

<ul>
    <li>
        <input type="radio" name="list" id="option1">
        <label for="option1">Option 1</label>
    </li>
    <li>
        <input type="radio" name="list" id="option2">
        <label for="option2">Option 2</label>
    </li>
    <li>
        <input type="radio" name="list" id="option3">
        <label for="option3">Option 3</label>
    </li>
</ul>

  CSS:

:indeterminate + label {
    background: orange;
}

  9 :valid

  :valid匹配条件验证正确的表单元素。

  如下例,当email输入框内的值符合email格式时,输入框的边框会被设为绿色。

  HTML:

<input type="email"/>

  CSS:

input[type=email]:valid {
    border: 1px solid green;
}

  10 :invalid

  :invalid与:valid相反,匹配条件验证错误的表单元素。

  11 :optional

  :optional匹配是具有optional属性的表单元素。当表单元素没有设置为required时,即为optional属性。

  如下例,第一个input的背景不会被设为黄色,第二个input的背景会被设为黄色。

  HTML:

<input type="text" required />
<input type="text" />

  CSS:

:optional {
    background: yellow;
}

  12 :required

  :required与:optional相反匹配设置了required属性的表单元素。

  13 :read-only

  :read-only匹配设置了只读属性的元素,表单元素可以通过设置“readonly”属性来定义元素只读。

  如下例,input元素的背景会被设为黄色。

  HTML:

<input type="text" value="I am read only" readonly>

  CSS:

input:read-only {
    background-color: yellow;
}

  14 :read-write

  :read-write匹配处于编辑状态的元素。input,textarea和设置了contenteditable的HTML元素获取焦点时即处于编辑状态。

  如下例,input输入框和富文本框获

:read-write:focus {
    background: yellow;
}

取焦点时,背景变成黄色。

  HTML:

<input type="text" value="获取焦点时背景变黄"/>
 
<div class="editable" contenteditable>
    <h1>点击这里可以编辑</h1>
    <p>获取焦点时背景变黄</p>
</div>

  CSS:

:read-write:focus {
    background: yellow;
}

  15 :scope(处于试验阶段)

  :scope匹配处于style作用域下的元素。当style没有设置scope属性时,style内的样式会对整个html起作用。

  如下例,第二个section中的元素的文本会变为斜体。

  HTML:

<article>
    <section>
        <h1>很正常的一些文本</h1>
        <p>很正常的一些文本</p>
    </section>
    <section>
        <style scoped>
            :scope {
                font-style: italic;
            }
        </style>
        <h1>这里的文本是斜体的</h1>
        <p>这里的文本是斜体的</p>
    </section>
</article>

  注:目前支持这个伪类的浏览器只有火狐。

  语言相关

  1 :dir(处于实验阶段)

  :dir匹配指定阅读方向的元素,当HTML元素中设置了dir属性时该伪类才能生效。现时支持的阅读方向有两种:ltr(从左往右)和rtl(从右往左)。目前,只有火狐浏览器支持:dir伪类,并在火狐浏览器中使用时需要添加前缀( -moz-dir() )。

  如下例,p元素中的阿拉伯语(阿拉伯语是从右往左阅读的)文本会变成橙色。

  HTML:

<article dir="rtl">
<p>التدليك واحد من أقدم العلوم الصحية التي عرفها الانسان والذي يتم استخدامه لأغراض الشفاء منذ ولاده الطفل.</p>
</article>

  CSS:

/* prefixed */
article :-moz-dir(rtl) {
    color: orange;
}
 
/* unprefixed */
article :dir(rtl) {
    color: orange;
}

  如下例,p元素中的英语文本会变成蓝色

  HTML:

<article dir="ltr">
    <p>اIf you already know some HTML and CSS and understand the principles of responsive web design, then this book is for you.</p>
</article>

  CSS:

article :-moz-dir(ltr) {
    color: blue;
}
 
/* unprefixed */
article :dir(ltr) {
    color: blue;
}

  2 :lang

  :lang匹配设置了特定语言的元素,设置特定语言可以通过为了HTML元素设置lang=””属性,设置meta元素的charset=””属性,或者是在http头部上设置语言属性。

  实际上,lang=””属性不只可以在html标签上设置,也可以在其他的元素上设置。

  如下例,分别给不同的语言设置不同的引用样式:

  HTML:

<article lang="en">
    <q>Lorem ipsum dolor sit amet.</q>
</article>
<article lang="fr">
    <q>Lorem ipsum dolor sit amet.</q>
</article>
<article lang="de">
    <q>Lorem ipsum dolor sit amet.</q>
</article>

  CSS:

:lang(en) q { quotes: '“' '”'; }
:lang(fr) q { quotes: '«' '»'; }
:lang(de) q { quotes: '»' '«'; }

  其他

  1 :root

  :root匹配文档的根元素。一般的html文件的根元素是html元素,而SVG或XML文件的根元素则可能是其他元素。

  如下例,将html元素的背景设置为橙色

:root {
    background: orange;
}

  2. :fullscreen

  :fullscreen匹配处于全屏模式下的元素。全屏模式不是通过按F11来打开的全屏模式,而是通过Javascript的Fullscreen API来打开的,不同的浏览器有不同的Fullscreen API。目前,:fullscreen需要添加前缀才能使用。

  如下例,当处于全屏模式时,h1元素的背景会变成橙色

  HTML:

<h1 id="element">在全屏模式下,这里的文本的背景会变成橙色.</h1>
<button>进入全屏模式!</button>

  JAVASCRIPT:

var docelem = document.getElementById('element');
var button = document.querySelector('button');
button.onclick = function() {
 
    if (docelem.requestFullscreen) {
        docelem.requestFullscreen();
    }else if (docelem.webkitRequestFullscreen) {
        docelem.webkitRequestFullscreen();
    } else if(docelem.mozRequestFullScreen) {
        docelem.mozRequestFullScreen();
    } else if(docelem.msRequestFullscreen) {
        docelem.msRequestFullscreen();
    }
}

  CSS:

h1:fullscreen {
    background: orange;
}
 
h1:-webkit-full-screen {
    background: orange;
}
 
h1:-moz-full-screen {
    background: orange;
}
 
h1:-ms-fullscreen {
    background: orange;
}

  伪元素

  1 ::before/:before

  :before在被选元素前插入内容。需要使用content属性来指定要插入的内容。被插入的内容实际上不在文档树中。

  HTML:

<h1>World</h1>

  CSS:

h1:before {
    content: "Hello ";
}

  2 ::after/:after

  :after在被元素后插入内容,其用法和特性与:before相似。

  3 ::first-letter/:first-letter

  :first-letter匹配元素中文本的首字母。被修饰的首字母不在文档树中。

  CSS:

h1:before {
    content: "Hello ";
}

  4 ::first-line/:first-line

  :first-line匹配元素中第一行的文本。这个伪元素只能用在块元素中,不能用在内联元素中。

  CSS:

p:first-line {
    background: orange;
}

  5 ::selection

  ::selection匹配用户被用户选中或者处于高亮状态的部分。在火狐浏览器使用时需要添加-moz前缀。该伪元素只支持双冒号的形式。

  CSS:

::-moz-selection {
    color: orange;
    background: #333;
}
 
::selection  {
    color: orange;
    background: #333;
}

  6 ::placeholder

  ::placeholder匹配占位符的文本,只有元素设置了placeholder属性时,该伪元素才能生效。

  该伪元素不是CSS的标准,它的实现可能在将来会有所改变,所以要决定使用时必须谨慎。

  在一些浏览器中(IE10和Firefox18及其以下版本)会使用单冒号的形式。

  HTML:

<input type="email" placeholder="name@domain.com">

  CSS:

input::-moz-placeholder {
    color:#666;
}
 
input::-webkit-input-placeholder {
    color:#666;
}
 
/* IE 10 only */
input:-ms-input-placeholder {
    color:#666;
}
 
/* Firefox 18 and below */
input:-moz-input-placeholder {
    color:#666;
}

  7 ::backdrop(处于试验阶段)

  ::backdrop用于改变全屏模式下的背景颜色,全屏模式的默认颜色为黑色。该伪元素只支持双冒号的形式

  HTML:

<h1 id="element">This heading will have a solid background color in full-screen mode.</h1>
<button onclick="var el = document.getElementById('element'); el.webkitRequestFullscreen();">Trigger full screen!</button>

  CSS:

h1:fullscreen::backdrop {
    background: orange;
}
python opencv的车牌识别分割详细教程 毕业设计 阅读详情

相关推荐

详解如何用爬虫工具批量采集阿里巴巴批发网商品数据

本文主要介绍如何使用后羿采集器的智能模式,免费采集阿里巴巴批发网商品的批发价格、发货时间、是否代发等信息。 采集字段: 商品标题、商品链接、图片链接、标签1、标签2、标签3、价格、30天成交数、 评价、店铺 功能点目录: 如何对采集字段进行配置 如何采集列表+详情页类型网页 采集结果预览: 下面我们来详细介绍一下如何免费采集1688批发网的商品数据,我们以“羽绒服女”为例,具体步骤如下: 步骤一...

weixin_43777427的博客 1万+

CSS3中nth-of-type和nth-child选择器区别分析和理解

第一层 按照网上的理解,p:nth-of-type(2)表示选择第二个p标签,而p:nth-child(2)表示选择一个p标签并且这个标签是父元素的第二个子元素。p:nth-of-type(2)表示子元素中的第二个p标签。 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;/head&gt; &lt;style type="text/cs...

让我去流浪啊 1165

c++多线程(1)------创建和管理线程td::thread

std::thread 是 C++11 标准库中用于创建和管理线程的核心类,定义在 <thread> 头文件中。它使得多线程编程变得简单、类型安全且跨平台。

jndingxin的专栏 647

css 第二个孩子选择器,详解CSS3选择器:nth-child和:nth-of-type之间的差异

先看一个简单的实例,首先是HTML部分:我是第1个p标签我是第2个p标签 然后两个选择器相对应的CSS代码如下:p:nth-child(2) { color: red; }p:nth-of-type(2) { color: red; }上面这个例子中,这两个选择器所实现的效果是一致的,第二个p标签的文字变成了红色:尽管上面两个demo的最后效果一致,但是两个选择器之间存在差异是必然的。对于:nt...

weixin_42601134的博客 2万+

西南交通大学车辆工程专业大四上车辆综合实训ame仿真部分

西南交通大学车辆工程专业大四上车辆综合实训ame仿真建模部分

qq_64814052的博客 1244

AI+医疗:多模态模型让肺结节诊断准确率突破95%+的实战方案

多模态融合是必由之路:单一影像模型难以突破95%准确率,必须整合临床、生物标志物等多维数据跨模态注意力机制是核心:简单拼接效果差,注意力机制能自动学习各模态权重,提升融合效果临床适配比技术先进更重要:模型输出必须符合医生诊断习惯,提供可解释的决策依据持续学习是长期成功的关键:医疗数据分布不断变化,模型必须具备自适应能力多学科协作是保障:放射科、胸外科、病理科、AI工程师共同参与模型设计与优化。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1022

JavaScript 练手小技巧:HTML5 的 dialog 标签制作对话框

对话框,在应用中常常用来做(如,登录、删除信息等)。

九天翔龙的技术博客 1万+

UE4游戏开发:GameInstance与GameMode的实战应用与避坑指南

本文深入解析了UE4中GameInstance与GameMode的核心差异与实战应用。GameInstance作为贯穿游戏进程的全局单例,负责跨关卡数据持久化与系统管理;而GameMode则定义特定关卡内的游戏规则与逻辑,随关卡加载销毁。文章通过数据存储、动态模式切换及网络游戏等场景,提供了清晰的应用指南与常见避坑方案,帮助开发者构建更健壮的UE4游戏架构。

kubernetes8ctl的博客 230

::before和::after伪元素的用法

一、介绍 css3为了区分伪类和伪元素,伪元素采用双冒号写法。 常见伪类——:hover,:link,:active,:target,:not(),:focus。 常见伪元素——::first-letter,::first-line,::before,::after,::selection。 ::before和::after下特有的content,用于在css渲染中向元素逻辑上的头部或尾部

平平爱学习的博客 1124

代谢组数据分析(十九):随机森林构建代谢组预后模型

建立胃癌(GC)预后模型时,从队列3中的181名患者中,使用右删失结果数据进行了随机分层抽样,分为训练数据集(n = 121)和测试数据集(n = 60)。训练了一个包含1000棵树的随机生存森林(RSF)模型,根据它们基于排列的特征重要性来选择突出的特征。通过再次训练随机生存模型,并选取28种代谢物,建立了显示出色预测能力(AUROC = 0.832,95% CI:0.697-0.951)的最佳模型,用于预测测试数据集中GC患者的生存结果。

专注生信领域 1713

华为OD机试 - 服务中心选址(Python)

一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址:使服务中心到所有区域的距离的总和最小。先输入区域数组positions的长度n(1 ≤ n ≤ 10^5)接下来 n 行每行输入成对的left和right值,以空格隔开。输出为location。

m0_46181452的博客 282

伪类:default原来是这个意思啊!

伪类是: 伪元素是:::default 的 MDN是这么写的: 表示在一组相似元素中所有默认的用户交互元素。例如:在一组按钮中的默认按钮可以用这个伪类选择器选取。为了一开始就展现多个默认选项,允许多选的用户交互元素可能会有多个默认设置。在这种情况下,所有的默认选项都可以用 :default伪类表示。我表示看不懂。尝试的结果如下:// CSS :default

凝视深渊 2369

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CSS伪类与伪元素

为什么要引入伪类与伪元素? css引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或是列表中的第一个元素,又或者是鼠标悬停在某个超链接上时要设置的样式。 什么是伪类,伪元素? 伪类:用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,当用户悬停在指定的元素时,我们可以...

阳光下的冷静的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

CSS伪元素详解以及伪元素与伪类的区别

CSS伪元素常常被误解为伪类,主要就在于他们的语法比较相似,功能上也都是对选择器的扩展,相似程度太高,所以容易被混淆。 一般用于在元素的内容前后插入新的内容,或者改变首字母、首行的样式等。

jimojianghu的专栏 855

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

伪类与伪元素的区别

伪类与伪元素的区别伪类与伪元素的区别一、定义二、语法三、伪类/伪元素一览表 伪类与伪元素的区别 在CSS1和CSS2中对伪类和伪选择器没有做出很明显的区别定义,而二者在语法是一样的,都是以:开头,这造成很多人会将某些伪元素误认为是伪类,如:before,:after;而在CSS3给出的定义中,二者区别更为明显,也更容易理解。 一、定义 伪类 The pseudo-class concept is...

fanzhongcang的博客 185

【CSS】伪元素与伪类

CSS 伪元素与伪类

cannotbecounted的博客 1160

伪元素与伪类

伪类比较好理解。以上完全看不懂~先看一遍伪元素演示: body中: css部分: 效果图: 同理; 其它还包括:伪元素 用来设置指定元素中内容第一个字符的样式,通常用来配合 font-size 和 float 属性制作首字下沉效果。需要注意的是,伪元素 仅可以用于块级元素,行内元素想要使用该伪元素,则需要先将其转换为块级元素。伪元素 用来设置指定元素中内容第一行的样式,与 类似,伪元素 也仅可以用于块级元素,行内元素想要使用该伪元素,则需要先将其转换为块级元素。伪元素 用来设置对象被选中时的样

Yous的博客 8033

CSS 伪类与伪元素

伪类(Pseudo-class)用于选择元素的特定状态或位置。它以冒号()作为前缀标识符,常见的伪类包括动态伪类、结构伪类等。伪元素(Pseudo-element)用于选择元素的特定部分或生成内容。它与伪类的区别在于,伪元素表示元素内部的内容,逻辑上存在但在文档树中并不存在。CSS3 规定伪元素用双冒号()表示。

体系化很难,碎片归纳很简单。 668

伪类与伪元素的区分

1. 伪类与伪元素的作用 伪类和伪元素是用来添加一些选择器的特殊效果,用于修饰一些不在文档树中的信息。 举个栗子。一段文本的第一个元素或第一个字母,为其添加样式,这些都是无法使用之前的css进行处理的,所以引入伪类和伪元素,对其进行修饰补充。 2.伪类和伪元素的区分 1.伪类用于已有元素的状态描述,本身仍处在文档树之中,描述元素状态,对其添加样式。 伪元素用于新创建元素,元素不存在与=于原本文档树之中,描述元素,对其添加样式。 举个栗子。 <div> <p>CoolWate

MojaveGhost1057的博客 226

前端CSS:CSS伪类与伪元素

在Web开发中,CSS伪类与伪元素是非常重要的概念,它们扩展了CSS选择器的功能,使得开发者能够更加精细地控制元素的样式。本文将深入探讨CSS伪类与伪元素的基本概念、作用、以及在实际开发中的应用技巧,并通过丰富的代码示例来帮助读者更好地理解和掌握这些技术点。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。假设我们需要创建一个产品列表,其中每个产品项都包含一个标题和一段描述,当鼠标悬停在产品项上时,产品项的背景颜色会发生变化,并且标题会变粗。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1243
上一篇: CSS ::before 和 ::after 伪元素用法
下一篇: defer和async的区别
function__
博客等级 码龄10年 99粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值