CSS选择器汇总

CSS选择器汇总

CSS选择器是一种用于选择HTML元素的方式,它可以根据元素的属性、关系、状态等进行选择和样式设置。CSS选择器非常重要,因为它允许我们根据需要对特定的元素或元素组进行样式设置。

一、初级选择器

  1. 通配选择器 指能够匹配HTML文档中所有元素的选择器。通配选择器使用一个星号(*)表示。

    语法: * {属性:属性值;}

    示例代码:

    * {
        padding: 0;
        margin: 0;
    }
    
  2. class 类选择器 通过给HTML元素添加class属性并在CSS中使用类选择器来选择这些元素。类选择器使用"."符号来表示。

    语法: .class名 {属性:属性值;}

    示例代码:

       <div class="example">老大</div>
       <div class="example">老二</div>
       <div class="example">老三</div>
               
        // css 样式
    	.example {
    	    text-align: center;
    	    background-color: yellow;
    	    width: 100px;
    	    margin-bottom: 10px;
    	}
    

    在这里插入图片描述

  3. id 选择器 ID选择器以"#"字符开始,后面跟着ID的名称。

    语法: #id名{属性:属性值;}

    示例代码:

    	<div id="selector">id选择器</div>
    	        
        // css 样式
    	#selector{
    	    color: red;
    	    font-size: 30px;
    	}
    

在这里插入图片描述

  1. 标签(元素)选择器 标签选择器就是通过HTML元素的标签名称来选择元素。

    语法: 标签名{属性:属性值;}

    示例代码:

    	<p>元素選擇器</p>
    	        
        // css 样式
    	p {
    	    font-size: 24px;
    	    color: green;
    	}
    

在这里插入图片描述

二、结构选择器

  1. 后代(包含)选择器 用于选择指定元素的后代元素。

    语法: 祖先元素 后代元素 {属性:属性值;}

    示例代码:

        <div>
            <div>
                <p>后代(包含)选择器</p>
            </div>
            <p>后代(包含)选择器</p>
        </div>	
        
        // css 样式
    	div p {
    		  color: red;
    	}
    

在这里插入图片描述

  1. 通用兄弟选择器 选择在目标元素后面的所有兄弟元素

    语法: 目标元素 ~ 兄弟元素 {属性:属性值;}

    示例代码:

        <p>11111</p>
        <span>22222</span>
        <div>33333</div>
        <span>44444</span>
        <p>555555</p>
        <span>6666666</span>
        
        // css 样式
    	p ~ span {
    	  color: red;
    	}
    

在这里插入图片描述

  1. 子代选择器 选择目标元素的直接子元素

    语法: 父元素 > 子元素 {属性:属性值;}

    示例代码:

         <div>
            <p>11111</p>
            <div>
                <p>222222</p>
            </div>
        </div>    
        
        // css 样式
    	div > p {
    	  color: blue;
    	}
    

在这里插入图片描述

  1. 相邻兄弟选择器 选择紧接在目标元素后面的兄弟元素

    语法: 目标元素 + 兄弟元素 {属性:属性值;}

    示例代码:

        <p>1111</p>
        <span>22222</span>
        <span>33333</span>  
        
        // css 样式
    	p + span {
    	  color: red;
    	}
    

在这里插入图片描述

  1. 并集(群组)选择器 用于选择多个群组中的所有元素。它使用逗号(,)将不同的选择器组合在一起。

    语法: 选择器1,选择器2{属性:属性值;}

    示例代码:

        <div class="red">1111</div>
        <div class="blue">2222</div>
          
        // css 样式
    	.red, .blue {
    	   color: red;
    	}
    

在这里插入图片描述

  1. 交集选择器 用来选择同时满足多个选择器的元素。它使用逗号(,)将多个选择器组合在一起,只选择同时满足所有选择器的元素。

    语法: 选择器1选择器2{属性:属性值;}

    示例代码:

        <div class="red" id="box">Hello, World!</div>
            
        // css 样式
    	.red#box {
    	    color: red;
    	}
    

在这里插入图片描述
三、属性选择器

  1. 属性的或运算 只要选择器元素中有当前属性就会被选中。

    语法: 选择器[属性名]{属性:属性值;}

    示例代码:

           <h2 class="title" name>标题1</h2>
           <h2>标题2</h2>
    
           // css 样式
    	.title[name] {
    	    color: red;
    	}
    

在这里插入图片描述

  1. 属性的与运算 选择同时包含属性1和属性2的元素。

    语法: 选择器[属性1][属性2]{属性:属性值;}

    示例代码:

        <h2 class="title" name>标题1</h2>
        <h2 name>标题2</h2>	
        
         // css 样式
    	h2[name][class] {
    	    color: red;
    	}
    

在这里插入图片描述

  1. 属性值的筛选 CSS属性值的筛选是指通过特定条件来选择元素

    语法: 选择器[属性名='值']{属性:属性值;}

    示例代码:

        <div class="label" name>标题1</div>
        <div class="label1" name>标题2</div>
    
        // css样式
        div[class='label'] {
            color: red;
        }
    

在这里插入图片描述

  1. 前缀筛选^ 选择属性值以当前要求开头的元素。

    语法: 选择器[属性名^='要求']{属性:属性值;}

    示例代码:

        <div class="label" name>标题1</div>
        <div class="label1" name>标题2</div>
    
        /*  css样式 */
        div[class^="lab"]{
            color: red;
        }
    

在这里插入图片描述

  1. 后缀筛选$ 选择属性值以当前要求结尾的元素。

    语法: 选择器[属性名$='要求']{属性:属性值;}

    示例代码:

         <div class="label" name>标题1</div>
         <div class="label1" name>标题2</div>
    
         /*  css样式 */
         div[class$="el1"]{
             color: red;
         }
    

在这里插入图片描述

  1. 包含限定* 选择属性值包含当前要求的元素。

    语法: 选择器[属性名*='要求']{属性:属性值;}

    示例代码:

    	<div class="label" name>标题1</div>
    	<div class="label1" name>标题2</div>
    	        
    	/*  css样式 */
    	div[class*="lab"]{
    	    color: red;
    	}
    

在这里插入图片描述

  1. 包含限定~ 选择属性值包含一个给定要求词(单独存在)的元素。

    语法: 选择器[属性名~='要求']{属性:属性值;}

    示例代码:

    	 <div class="label" name>1111</div>
    	 <div class="labeled label" name>2222</div>
    	 <div class="labelname" name>3333</div>
    	
    	/*  css样式 */
    	div[class~="label"]{
    	    color: red;
    	}
    

在这里插入图片描述

  1. 包含限定| 选择属性值只有给定要求或者是以给定要求开头后面用“-”拼接其他字符串的元素。

    语法: 选择器[属性名|='要求']{属性:属性值;}

    示例代码:

	 <div class="label" name>1111</div>
	 <div class="label-name" name>2222</div>
	 <div class="name-label" name>3333</div>
	 <div class="name.label" name>4444</div>
	
	/*  css样式 */
	div[class|="label"]{
	    color: red;
	}

在这里插入图片描述

四、伪类选择器:

  1. :hover - 当鼠标悬停在元素上时应用样式。例如:
	a:hover {
	    color: red;
	}
  1. :active - 当元素被激活时(例如点击按钮时),应用样式。例如:
	button:active {
	    background-color: #ccc;
	}
  1. :focus - 当元素获得焦点时应用样式,例如在输入框中输入内容时。例如:
	input:focus {
	    border: 2px solid blue;
	}
  1. :visited - 当链接已被访问过时应用样式。例如:
	a:visited {
	    color: purple;
	}
  1. :first-child - 选择作为其父元素中的第一个子元素的元素。例如:
	li:first-child {
	    font-weight: bold;
	}
  1. :last-child - 选择作为其父元素中的最后一个子元素的元素。例如:
	li:last-child {
	    color: red;
	}
  1. :nth-child(n) - 选择作为其父元素中的第n个子元素的元素。例如:
	p:nth-child(2) {
	    color: blue;
	}
  1. :nth-last-child(n) - 选择作为其父元素中的倒数第n个子元素的元素。例如:
	p:nth-last-child(2) {
	    color: green;
	}
  1. :nth-of-type(n) - 选择作为其父元素中的特定类型的第n个子元素的元素。例如:
	p:nth-of-type(3) {
	    font-style: italic;
	}
  1. :nth-last-of-type(n) - 选择作为其父元素中的特定类型的倒数第n个子元素的元素。例如:
	p:nth-last-of-type(4) {
	    text-decoration: underline;
	}

五、伪元素选择器::

  1. ::before:选择元素的前面插入的内容。
    示例:给段落的前面插入一个装饰性的图标。
	p::before {
	  content: "\2713";
	  color: red;
	}
  1. ::after:选择元素的后面插入的内容。
    示例:给链接的后面插入一个指向外部链接的图标。
	a::after {
	  content: "\2192";
	  color: blue;
	}
  1. ::first-letter:选择元素的第一个字母。
    示例:给标题的第一个字母设置特殊样式。
	h1::first-letter {
	  font-size: 2em;
	  color: red;
	}
  1. ::first-line:选择元素的第一行。
    示例:给段落的第一行设置特殊样式。
	p::first-line {
	  font-weight: bold;
	  color: blue;
	}
  1. ::selection:选择用户选中的文本。
    示例:给被选中的文本设置特殊样式。
	::selection {
	  background-color: yellow;
	  color: black;
	}

这些是常见的伪元素选择器的示例,通过使用伪元素选择器,可以更加灵活地控制元素的样式,增强页面的交互性和美观性。伪元素选择器是CSS中的一种特殊选择器,用来选择元素的特定部分,而不是元素本身。

六、选择器权重
选择器权重是用来确定样式优先级的值,用于决定应用哪个样式规则。以下是常见的选择器及其权重:

选择器 权重
!important 无穷大
内联样式(style=“…”) 1000
ID选择器 100
类选择器、属性选择器、伪类选择器 10
元素选择器、伪元素选择器 1
通配符选择器、子选择器、相邻选择器 0

当多个选择器应用于同一个元素时,权重较高的选择器将覆盖权重较低的选择器。但如果选择器具有相同的权重,后面的样式规则将覆盖前面的样式规则。

七、关于使用css选择器的一些建议

  1. 使用ID选择器来选择唯一的元素:ID选择器是最具体和最高优先级的选择器,它可以选中具有唯一ID属性的元素。使用ID选择器时,确保每个页面只有一个具有唯一ID的元素。

  2. 使用类选择器来选择一组相关的元素:类选择器可以用于选择一组具有相同类名的元素。使用类选择器时,选择具有相同样式和功能的元素。这样可以提高代码重用性和可维护性。

  3. 使用后代选择器和子选择器来选择嵌套的子元素:后代选择器(空格)和子选择器(>)可以选择嵌套在其他元素内部的元素。使用这些选择器时,确保不会选择到其他不需要样式的元素。

  4. 避免使用标签选择器:标签选择器会选择所有具有指定标签的元素,这样会增加CSS选择器的复杂性和性能开销。应尽量避免使用标签选择器,而选择更具体的选择器。

  5. 使用属性选择器来选择具有特定属性的元素:属性选择器可以选择具有特定属性的元素。使用属性选择器时,可以根据元素的属性值来选择元素,比如选择所有具有特定属性值的链接。

  6. 使用伪类选择器来选择元素的特定状态:伪类选择器可以选择元素的特定状态,比如悬停状态、访问状态等。使用伪类选择器时,可以为不同状态的元素应用不同的样式。

  7. 使用组合选择器来选择多个元素:组合选择器可以选择多个元素,比如选择具有特定类和特定属性的元素。使用组合选择器时,可以根据多个条件来选择元素。

  8. 避免使用通配选择器:通配选择器(*)会选择所有元素,这样会增加CSS选择器的复杂性和性能开销。应尽量避免使用通配选择器,而选择更具体的选择器。

  9. 使用媒体查询来选择不同屏幕大小的元素:媒体查询可以根据不同的屏幕大小选择元素。使用媒体查询时,可以为不同屏幕大小的设备提供不同的样式和布局。

  10. 使用选择器的层级结构来提高选择器的效率:选择器的层级结构可以影响选择器的性能。应尽量将选择器的层级结构保持较浅,这样可以减少选择器的复杂性和提高选择器的效率。

总之,选择合适的CSS选择器可以帮助我们编写更具灵活性和可维护性的样式表。

以上就是关于css选择器的汇总!感谢您的阅览,谢谢!

相关推荐

  1. 有关CSS选择

    2024-03-16 11:36:04       38 阅读
  2. css选择

    2024-03-16 11:36:04       55 阅读
  3. 前端---css 选择

    2024-03-16 11:36:04       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 11:36:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 11:36:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 11:36:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 11:36:04       18 阅读

热门阅读

  1. 二维数组_矩阵交换行

    2024-03-16 11:36:04       15 阅读
  2. 第八章、设计模式

    2024-03-16 11:36:04       19 阅读
  3. Python keyword-only参数

    2024-03-16 11:36:04       17 阅读
  4. python pytest 最简单的接口自动化测试框架

    2024-03-16 11:36:04       17 阅读
  5. ISCE2StaMPS全流程

    2024-03-16 11:36:04       14 阅读
  6. AutoMapper12.0.1 扩展方法封装

    2024-03-16 11:36:04       20 阅读
  7. RabbitMq多数据源配置

    2024-03-16 11:36:04       18 阅读
  8. 开发K8S Operator

    2024-03-16 11:36:04       18 阅读
  9. LeetCode 174.地下城游戏 Python题解

    2024-03-16 11:36:04       20 阅读