一篇文章带你了解CSS Pseudo-classes(伪类 )

开发 前端
本文基于CSS基础,介绍了CSS中的伪类,从什么是伪类,常见的伪类的用法( first-child,: last-seudo,: nth-child,: lang)最后介绍了伪类可以与CSS类结合使用。通过项目的分析,代码的展示 ,能够让读者直观的理解伪类的含义。

[[375167]]

CSS伪类选择器根据其他条件匹配组件,而不一定由文档树定义。CSS 伪类 是添加到选择器的关键字,指定要选择的元素的特殊状态。

一、什么是伪类?

CSS伪类允许设置元素的动态状态的样式,例如悬停,活动状态和焦点状态,以及文档树中现有但不能通过使用其他选择器作为目标的元素,而无需添加任何选择器它们的ID或类。

例如,针对第一个或最后一个子元素。

伪类以冒号(:)开头。

语法

  1. /*选择器:伪类{ 属性:值 ; }*/ 

二、最常用的伪类

锚伪类

使用 伪类链接可以以不同的方式显示。

这些伪类使可以对未访问的链接进行样式化,而对访问的链接进行样式化。最常见的样式设置技术是从访问的链接中删除下划线。

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <meta charset="utf-8"
  5. <title>锚伪类的示例</title> 
  6. <style> 
  7. a:link { 
  8. color: blue 
  9.  
  10. a:visited { 
  11. text-decoration: none; 
  12. </style> 
  13. </head> 
  14. <body style="background-color: aqua;"
  15. <p>Visit  
  16.      <a href="https://www.baidu.com" target="_blank">www.baidu.com</a></p> 
  17. </body> 
  18. </html> 

一些锚点伪类是动态的,是由于用户与文档进行交互(例如悬停或聚焦等)而应用的。

  1. <style> 
  2. a:hover { 
  3. color: red; 
  4.  
  5. a:active { 
  6. color: gray; 
  7.  
  8. a:focus { 
  9. color: yellow; 
  10. </style> 

这些伪类更改了响应用户操作呈现链接的方式。

  •  hover 当可被用于在用户将鼠标悬停在按钮上时改变按钮的颜色用。
  •  active 当元素被激活或单击时适用。
  •  focus 当元素具有键盘焦点时适用。

:为了使这些伪类很好地工作,必须按正确的顺序将它们定义 - :link, :visited, :hover, :active, :focuss。

<1> : first-child伪类

first-child伪类匹配的是一些其他元素的第一个子元素的元素。ol li:first-child在下面的示例中,选择器选择一个有序列表的第一个列表项,并从其顶部删除边框。

  1. <style> 
  2. ol { 
  3. padding: 0; 
  4. list-style: none; 
  5.  
  6. ol li { 
  7. padding: 10px 0; 
  8. border-top: 1px solid #000000; 
  9.  
  10. li:first-child { 
  11. border-top: none; 
  12. </style> 

注意

要 :first-child在Internet Explorer 8和更早版本中工作,必须在文档顶部声明a 。

<2> : last-seudo伪类

last-child伪类匹配的是一些其他元素的最后一个子元素的元素。ul li:last-child例中的选择器从无序列表中选择最后一个列表项,并从其中删除右边框。

  1. <style> 
  2.    ul{ 
  3.        padding: 0; 
  4.        list-style: none;           
  5.   } 
  6.    ul li{ 
  7.        display: inline; 
  8.        padding: 0 20px; 
  9.        border-right: 1px solid #000000; 
  10.   } 
  11.    li:last-child { 
  12.        border-right: none; 
  13.   } 
  14. </style> 

注意

CSS :last-child选择器在Internet Explorer 8和更早版本中不起作用。在Internet Explorer 9及更高版本中支持。

<3> : nth-child伪类

CSS3引入了一个新的:nth-child伪类,使可以将给定父元素的一个或多个特定子对象作为目标。

此选择的基本语法可以与给予:nth-child(N),其中N是一个参数,其可以是一个数字,一个关键字(even或odd),或形式的表达xn+y,其中x和y是整数(例如1n,2n,2n+1,...)。

  1. <style> 
  2. table { 
  3. margin: 30px; 
  4. border-collapse: collapse; 
  5.  
  6. table tr { 
  7. border-bottom: 1px solid #666; 
  8.  
  9. table tr th, 
  10. table tr td { 
  11. padding: 10px; 
  12.  
  13. table tr:nth-child(2n) td { 
  14. background: #f2f2f2; 
  15. </style> 
  16. /*上面示例中的样式规则仅突出显示了代替表行,而没有向元素添加任何ID或类。*/ 

提示

CSS :nth-child(N)选择器在必须选择以特定间隔或模式(例如在偶数或奇数位置等)出现在文档树内的元素的情况下非常有用。

<4> : lang伪类

语言伪类:lang允许根据特定标记的语言设置来构造选择器。

lang以下示例中的伪类为明确赋予语言值的元素定义了引号no。

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <meta charset="utf-8"
  5. <title>CSS:lang伪类示例</title> 
  6. <style> 
  7. q:lang(no) { 
  8. quotes: "~""~"
  9. </style> 
  10. </head> 
  11. <body style="background-color: aqua;"
  12. <p>某些文本<q lang=“ no”>段落中的引号</ q>一些文本。</ p> 
  13. <p><strong>Note:</strong>Internet Explorer 8和更早版本不支持 
  14. <code>:lang </ code>伪类。IE8仅在以下情况下支持 <code> 
  15.     </code> is specified.</p> 
  16. </body> 
  17. </html> 
  18. <!-- code snippet */Some text A quote in a paragraph Some text ></--HTML> 

Internet Explorer 7更早版本不支持:lang伪类。IE8仅在指定a的情况下支持。

三、伪类和CSS类

伪类可以与CSS类结合使用。

在下面的示例中class="red",带有的链接将显示为红色。

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <meta charset="utf-8"
  5. <title>使用带有选择器的CSS伪类示例</title> 
  6. <style> 
  7. a.red:link { 
  8. color: #ff0000; 
  9. </style> 
  10. </head> 
  11. <body style="background-color: aqua;"
  12. <p> 
  13. <a href="#">Click me</a> 
  14. <br> 
  15. <a href="#" class="red">Click me</a> 
  16. </p> 
  17. </body> 
  18. </html> 

 

四、总结

本文基于CSS基础,介绍了CSS中的伪类,从什么是伪类,常见的伪类的用法( first-child,: last-seudo,: nth-child,: lang)最后介绍了伪类可以与CSS类结合使用。通过项目的分析,代码的展示 ,能够让读者直观的理解伪类的含义。

希望能够帮助读者更好的学习。

 

 

责任编辑:姜华 来源: 前端进阶学习交流
相关推荐

2021-10-22 09:55:13

CSS伪类 样式

2020-12-18 08:09:53

CSS伪元素基础

2021-04-07 06:11:37

Css前端CSS定位知识

2021-01-25 05:39:54

Css前端Border

2021-05-31 09:30:36

Css前端CSS 特效

2020-11-03 19:18:28

CSS对齐文本

2020-11-17 11:10:21

CSS选择器HTML

2021-06-30 00:20:12

Hangfire.NET平台

2023-05-12 08:19:12

Netty程序框架

2021-05-20 09:02:59

CSS单位长度

2023-08-01 14:34:12

HTMLCSS

2023-06-28 15:04:59

CSSHTML

2022-03-04 09:31:41

CSS前端属性选择器

2022-02-15 09:31:43

透明度CSS

2020-12-18 05:40:37

CSS clearHtml

2020-11-27 08:51:29

CSSOpacity透明度

2021-01-29 18:41:16

JavaScript函数语法

2020-11-10 10:48:10

JavaScript属性对象

2021-02-02 18:39:05

JavaScript

2021-06-04 09:56:01

JavaScript 前端switch
点赞
收藏

51CTO技术栈公众号