CSS 中伪类的使用(干货)


本文摘自PHP中文网,作者Guanhui,侵删。

css 伪类是用于向某些选择器添加特殊的效果,是动态的,指当前元素所处的状态或者特性。只有一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。

这篇文章在一定程度上鼓励你在构建UI时使用更简单的CSS和更少的 JS。熟悉 CSS 所提供的一切是实现这一目标的一种方法,另一种方法是实现最佳实践并尽可能多地重用代码。

接下介绍一些大家可能还不熟悉的一些伪类及其用例,希望对大家日后有所帮助。

::first-line | 选择文本的第一行

::first-line 伪元素在某块级元素的第一行应用样式。第一行的长度取决于很多因素,包括元素宽度,文档宽度和文本的文字大小。

::first-line 伪元素只能在块容器中,所以,::first-line伪元素只能在一个display值为block, inline-block, table-cell 或者 table-caption中有用。在其他的类型中,::first-line 是不起作用的。

用法如下:

1

2

3

p:first-line {

  color: lightcoral;

}

::first-letter | 选择这一行的第一字

CSS 伪元素 ::first-letter会选中某块级元素第一行的第一个字母。用法如下:

1

2

3

4

5

6

7

8

<style>

    p::first-letter{

      color: red;

      font-size: 2em;

    }

</style>

 

<p>前端小智,不断努,终身学习者!</p>

::selection| 被用户高亮的部分

::selection 伪元素应用于文档中被用户高亮的部分(比如使用鼠标或其他选择设备选中的部分)。

1

2

p::selection {

      color: #409EFF;}

:root | 根元素

:root 伪类匹配文档树的根元素。对于 HTML 来说,:root 表示 <html>元素,除了优先级更高之外,与 html 选择器相同。

在声明全局 CSS 变量时 :root 会很有用:

1

2

3

4

:root {

  --main-color: hotpink;

  --pane-padding: 5px 42px;

}

:empty | 仅当子项为空时才有作用

:empty 伪类代表没有子元素的元素。子元素只可以是元素节点或文本(包括空格),注释或处理指令都不会产生影响。

1

2

3

4

5

6

7

8

9

p:empty {

  border: 2px solid orange;

  margin-bottom: 10px;

}

 

<p></p>

<p></p>

<p>

</p>

只有第一个和第二个p有作用,因为它们确实是空的,第三个 p 没有作用,因为它有一个换行。

:only-child | 只有一个子元素才有作用

:only-child 匹配没有任何兄弟元素的元素.等效的选择器还可以写成 :first-child:last-child或者:nth-child(1):nth-last-child(1),当然,前者的权重会低一点。

1

2

3

4

5

6

7

8

9

10

p:only-child{

  background: #409EFF;}

 

<p>

  <p>第一个没有任何兄弟元素的元素</p>

</p>

<p>

  <p>第二个</p>

  <p>第二个</p>

</p>

:first-of-type | 选择指定类型的第一个子元素

:first-of-type表示一组兄弟元素中其类型的第一个元素。

1

2

3

.innerp p:first-of-type {

  color: orangered;

}

上面表示将 .innerp 内的第一个元素为 p 的颜色设置为橘色。

1

2

3

4

5

6

7

8

9

10

<p class="innerp">

    <p>p1</p>

    <p>These are the necessary steps</p>

    <p>hiya</p>

     

    <p>

        Do <em>not</em> push the brake at the same time as the accelerator.

    </p>

    <p>p2</p>

</p>

:last-of-type | 选择指定类型的最后一个子元素

:last-of-type CSS 伪类 表示了在(它父元素的)子元素列表中,最后一个给定类型的元素。当代码类似Parent tagName:last-of-type的作用区域包含父元素的所有子元素中的最后一个选定元素,也包括子元素的最后一个子元素并以此类推。

1

2

3

.innerp p:last-of-type {

    color: orangered;

}

上面表示将 .innerp 内的的最后一个元素为 p 的颜色设置为橘色。

nth-of-type() | 选择指定类型的子元素

:nth-of-type() 这个 CSS 伪类是针对具有一组兄弟节点的标签, 用 n 来筛选出在一组兄弟节点的位置。

阅读剩余部分

相关阅读 >>

css如何设置td宽度

邮件不支持css怎么办

vue框架是什么

css怎么去掉下划线

css怎么设置边框的宽度

css怎么设置左边距

css计数器如何实现自动嵌套编号

深入了解css中的will-change属性

css可以用什么软件

什么是css权重

更多相关阅读请进入《css》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...