一篇文章带你了解 CSS 选择器

开发 前端
CSS选择器是一种用于匹配HTML文档中元素的模式。关联的样式规则将应用于与选择器模式匹配的元素。

 [[352652]]

CSS选择器是一种用于匹配HTML文档中元素的模式。关联的样式规则将应用于与选择器模式匹配的元素。

一、什么是选择器?

选择器是CSS最重要的方面之一,因为它们用于选择网页上的元素,以便可以设置样式。可以通过多种方式定义选择器。

二、通用选择器

通用选择器(用 * 星号或星号表示)与页面上的每个单个元素匹配。如果目标元素上存在其他条件,则可以省略通用选择器。此选择器通常用于从元素中删除默认的边距和填充,以进行快速测试。

例:

  1. <!DOCTYPE html> 
  2. <html> 
  3.     <head> 
  4.         <meta charset="utf-8"
  5.         <title>CSS通用选择器例:</title> 
  6.         <style> 
  7.             * { 
  8.                 margin: 0; 
  9.                 padding: 0; 
  10.             } 
  11. </style> 
  12.     </head> 
  13.     <body style="background-color: aqua;"
  14.         <h1>This is heading</h1> 
  15.         <p>This is a paragraph.</p> 
  16.     </body> 
  17. </html> 

*选择器内的样式规则将应用于文档中的每个元素。

注意:

不建议* 在生产环境中使用通用选择器,因为此选择器会匹配页面上的每个元素,这会对浏览器造成不必要的压力。

三、元素类型选择器

元素类型选择器将文档树中元素的每个例:与相应的元素类型名称进行匹配。

例:

  1. <style> 
  2.     h1 { 
  3.       color: red; 
  4.     } 
  5.     p { 
  6.         color: blue; 
  7.     } 
  8. </style> 

p选择器中的样式规则将应用于

文档中的每个元素,并使其颜色为蓝色,无论它们在文档树中的位置如何。

1. ID选择器

id选择器用于为单个或唯一元素定义样式规则,ID选择器的定义是一个井号(#),后跟ID值。

例:

  1. <style>     
  2.     #error { 
  3.         color: #ff0000; 
  4.     } 
  5. </style> 

此样式规则将id属性设置为的元素文本呈现为红色error。

2. class类选择器

类选择器可用于选择具有class属性的任何HTML元素。具有该类的所有元素将根据定义的规则进行格式化。

用一个句号(.)紧随其后的类值定义类选择器。

例:

  1. <style>     
  2.     .blue { 
  3.         color: #0000ff; 
  4.     } 
  5. </style> 

以上样式规则将 class 属性中设置为的文档中每个元素的文本显示为蓝色blue。可以使其更加具体。

例:

  1. p.blue { 
  2.     color: blue; 
  3.     } 

选择器中的样式规则p.blue仅<p>将class属性设置为的那些元素呈现为蓝色blue,而对其他段落没有影响。

2.1 后代选择器

当需要选择一个元素是另一个元素的后代时,可以使用这些选择器。例如,如果只想定位无序列表中包含的那些定位点,而不要定位所有定位点元素。

例:

  1. <style> 
  2.             h1 em { 
  3.                 color: green; 
  4.             } 
  5.  
  6.             ul.menu { 
  7.                 padding: 0; 
  8.                 list-style: none; 
  9.             } 
  10.  
  11.             ul.menu li { 
  12.                 display: inline; 
  13.             } 
  14.  
  15.             ul.menu li a { 
  16.                 margin: 10px; 
  17.                 text-decoration: none; 
  18.             } 
  19. </style> 

注:

选择器内的样式规则ul.menu li a仅适用于包含在具有class 的无序列表内的那些即锚元素.menu,并且对文档内的其他链接没有影响。

同样,h1 em 选择器内的样式规则仅适用于heading内包含的元素。

2.2 子选择器

子选择器只能用于选择作为某些元素的直接子元素的那些元素。子选择器由两个或多个选择器组成,两个选择器之间用大于号(即>)隔开。例如,可以使用这些选择器在具有多个级别的嵌套列表中选择列表元素的第一级。

例:

  1. <style> 
  2.     ul > li { 
  3.         list-style: square; 
  4.     ul > li ol { 
  5.         list-style: none; 
  6. </style> 

选择器内的样式规则ul > li仅适用于<li>作为<ul>元素直接子元素的那些元素,并且对其他列表元素没有影响。

2.3 分组选择器

样式表中的多个选择器通常共享相同的样式规则声明。可以将它们分组为一个逗号分隔的列表,以最大程度地减少样式表中的代码。它还可以防止一遍又一遍地重复相同的样式规则。

例:

  1. h1 { 
  2.     font-size: 36px; 
  3.     font-weight: normal; 
  4.    } 
  5. h2 { 
  6.     font-size: 28px; 
  7.     font-weight: normal; 
  8.    } 
  9. h3 { 
  10.     font-size: 22px; 
  11.     font-weight: normal; 
  12.    } 

可以在上面的例:中看到,相同的样式规则font-weight: normal; 是由选择共享h1,h2和h3。

因此,可以将其分为逗号分隔的列表。

例:

  1. <style> 
  2.       h1,h2,h3 { 
  3.         font-weight: normal; 
  4.       } 
  5.  
  6.       h1 { 
  7.         font-size: 36px; 
  8.       } 
  9.  
  10.       h2 { 
  11.         font-size: 28px; 
  12.       } 
  13.  
  14.       h3 { 
  15.         font-size: 22px; 
  16.       } 
  17. </style> 

四、总结

本文基于HTML基础,介绍了有关CSS选择器,常规的通用样式选择器 *,元素选择器id,class属性,class属性中后代选择器,子选择器,分类选择器。通过案例分析,丰富的效果展示。能够让读者更好的理解。

欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

代码很简单,希望对你学习有帮助。

本文转载自微信公众号「前端进阶学习交流」,可以通过以下二维码关注。转载本文请联系前端进阶学习交流公众号。

 

责任编辑:武晓燕 来源: 前端进阶学习交流
相关推荐

2023-06-28 15:04:59

CSSHTML

2023-08-01 14:34:12

HTMLCSS

2022-03-04 09:31:41

CSS前端属性选择器

2020-10-27 08:12:33

CascadingSt

2021-05-31 09:30:36

Css前端CSS 特效

2020-11-03 19:18:28

CSS对齐文本

2021-04-07 06:11:37

Css前端CSS定位知识

2021-01-25 05:39:54

Css前端Border

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平台

2022-12-23 10:26:09

CSShas()

2020-12-18 05:40:37

CSS clearHtml

2020-11-27 08:51:29

CSSOpacity透明度

2021-05-20 09:02:59

CSS单位长度

2022-02-15 09:31:43

透明度CSS

2021-09-27 09:18:30

ListIterato接口方法

2021-05-18 08:30:42

JavaScript 前端JavaScript时

2021-03-09 14:04:01

JavaScriptCookie数据

2021-01-26 23:46:32

JavaScript数据结构前端

2021-03-05 18:04:15

JavaScript循环代码
点赞
收藏

51CTO技术栈公众号