首页 > 其他分享 >CSS教程(二)- CSS选择器及特性

CSS教程(二)- CSS选择器及特性

时间:2024-10-24 09:51:07浏览次数:8  
标签:教程 样式 标签 元素 color 选择器 CSS 属性

1、CSS 选择器

1. 作用

  • 匹配文档中的某些元素为其应用样式。
  • 根据不同需求把不同的标签选出来。

2. 分类

  • 分类
    • 基础选择器
      • 包含 标签选择器、ID选择器、类选择器、通用选择器等
    • 复合选择器
      • 包含 后代选择器、子代选择器、伪类选择器等

2.1 标签选择器

  • 介绍

    • 又称为元素选择器,根据标签名匹配文档中所有该元素,为页面中某一类标签指定统一的CSS样式
  • 语法

    标签名{
        属性1: 属性值1;
        属性2: 属性值2;
        ...
    }
    

在这里插入图片描述

  • 说明
    • 选择器:指需设置样式的 HTML 元素。
    • 声明块包含一条或多条用分号分隔的声明。
    • 每条声明都包含一个 CSS 属性名称和一个值,以冒号分隔。
    • 多条 CSS 声明用分号分隔,声明块用花括号括起来。
  • 优点
    • 能快速为页面中同类型的标签统一设置样式。
  • 缺点
    • 不能设计差异化样式,只能选择全部的当前标签。

2.2 ID选择器

  • 介绍

    • 根据元素的 id 属性值匹配文档中唯一的元素,id具有唯一性,不能重复使用。
    • 在 CSS 中 ID选择器以 # 来定义
  • 语法

      #id属性值{
      	属性1: 属性值1;
          属性2: 属性值2;
          ...
      }
    
  • 注意

    • id属性值自定义,可以由数字、字母、下划线、- 组成,不能以数字开头;
    • 尽量见名知意,多个单词组成时,可以使用连接符,下划线,小驼峰表示。
  • 口诀

    • 样式#定义,结构id调用,只能调用一次

2.3 类选择器

  • 介绍

  • 想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器。

    • 根据元素的class属性值匹配相应的元素,class属性值可以重复使用,实现样式的复用(简言之:用于查找或选取要设置样式的 HTML元素)
  • 语法

    .类名 {
        属性1: 属性值1;
        属性2: 属性值2;
        ... 	
    }
    
  • 说明

    • 长名称或词组可以使用中横线来为选择器命名。
    • 不要使用纯数字、中文等命名,尽量使用英文字母来表示。
    • 命名要有意义,尽量使别人一眼就知道这个类名的目的。
  • 口诀

    • 样式定义,结构调用
  • 特殊用法

    1. 类选择器与其他选择器结合使用

      a.c1{ }
      
      • 注意:标签与类选择器结合时,标签在前,类选择器在后
    2. class属性值可以写多个(多个类名之间必必须用 空格 分开),共同应用类选择器的样式

      <p class="c1 c2"></p>
      

2.4 通用选择器

  • 介绍

    • 通配符选择器使用 * 定义,它表示选取页面中所有元素(标签)。
  • 语法

    * {
          属性1: 属性值1;
          属性2: 属性值2;
          ...
    }
    
  • 说明

    • 通常在最开始对页面设置内边距与外边距的设置(默认body与页面会存在边距)。

      *{
          padding: 0;
          margin: 0;
      }
      

      在这里插入图片描述


2.5 群组选择器

  • 介绍

    • 也称为并集选择器,可以使用多个不同的选择器为一组元素统一设置样式。
  • 语法

    selector1,selector2,selector3{	
          属性1: 属性值1;
          属性2: 属性值2;
          ...    
    }
    

2.6 后代选择器

  • 介绍

    • 匹配满足选择器的所有后代元素(包含直接子元素和间接子元素)
  • 语法

    selector1 selector2{
    	属性1: 属性值1;
    	...
    }
    
  • 说明

    • 匹配selector1中所有满足selector2的后代元素
    • selector1 与 selector2 可以是任意的基础选择器

2.7 子代选择器

  • 介绍

    • 匹配满足选择器的所有直接子元素,只能选择作为某元素的最近一级子元素
  • 语法

    selector1>selector2{
    	属性1: 属性值1;
    	...    
    }
    
  • 说明

    • selector2 必须是 selector1 的亲子元素

2.8 伪类选择器

  • 介绍

    • 为元素的不同状态分别设置样式,必须与基础选择器结合使用。
  • 特点

    • 用冒号(:)表示,如::hover、:first-child、:last_child
1、链接伪类选择器
  • 分类

    :link 	    超链接访问前的状态
    :visited    超链接访问后的状态
    :hover	 鼠标滑过时的状态
    :active     鼠标点按不抬起时的状态(激活)
    
  • 使用

    a:link{
    }
    
    a:visited{
    }
    
    a:hover{
        color: red;
    }
    
    input:focus{
        background-color: yellow;
    }
    
  • 注意

    1. 超链接如果需要为四种状态分别设置样式,必须按照以下顺序【LVHA】声明

      :link
      :visited
      :hover
      :active
      
    2. 超链接常用设置 :

      a{
      	/*统一设置超链接默认样式(不分状态)*/
      }
      a:hover{
      	/*鼠标滑过时改样式*/
      }
      
2、焦点伪类选择器
  • :focus

    • 用于选取获得焦点的表单元素。
    • 一般情况 <input> 类表单元素才能获取
  • 示例

    input:focus {  
       background-color:yellow; 
    }	
    
3、结构伪类选择器
  • 作用

    • 根据元素的结构关系查找元素
  • 选择器

    选择器说明
    E:first-child查找第1个E元素
    E:last-child查找最后一个E元素
    E:nth-child(N)查找第N个E元素(第1个元素N值为1)
    • :nth-child(公式)

      • 作用:根据元素的关系结构查找多个元素

        公式功能
        2n偶数标签
        2n+1; 2n-1奇数标签
        5n找到5的倍数的标签
        n+5找到第5个以后的标签
        -n+5找到第5个以前的标签
  • 示例

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
          li:first-child {
            background-color: aquamarine;
          }
    
          li:last-child {
            background-color: greenyellow;
          }
    
          li:nth-child(2n-1) {
            background-color: blueviolet;
          }
    
          li:nth-child(n + 2) {
            background-color: gold;
          }
        </style>
      </head>
      <body>
        <ul>
          <li>li 1</li>
          <li>li 2</li>
          <li>li 3</li>
          <li>li 4</li>
          <li>li 5</li>
          <li>li 6</li>
        </ul>
      </body>
    </html>
    
4、伪元素选择器
  • 作用

    • 创建虚拟 元素(伪元素),用来摆放装饰性的内容
  • 选择器

    选择器说明
    E::before在E元素里面最前面添加一个伪元素
    E::after在E元素里面最后面添加一个伪元素
  • 注意

    • 必须设置 content: “” 属性,用来设置 伪元素的内容,如果无内容,则引号留白即可
    • 微元素必须是 行内 显示模式
    • 权重 标签选择器 相同。
  • 应用场景

    • 插入内容‌:使用::before和::after伪元素在元素的前后插入内容,如在段落前添加引用符号、图标装饰等‌
    • 分割符号‌:使用::before和::after伪元素在列表项之间添加分割线或其他符号,提高列表的可读性‌
    • 清除浮动‌:使用::after伪元素来清除浮动,保证容器正确包裹元素‌
    • 首行缩进‌:使用::first-line伪元素来设置元素内第一行的样式,如字体、颜色等‌
    • 首字母样式‌:使用::first-letter伪元素来设置元素内第一个字母的样式,如字体大小、颜色等‌
  • 示例

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
          div {
            width: 300px;
            height: 300px;
            background-color: rosybrown;
          }
    
          div::before {
            content: "老鼠";
            width: 100px;
            height: 100px;
            background-color: royalblue;
            display: block;
          }
    
          div::after {
            content: "大米";
            width: 50px;
            height: 50px;
            background-color: palegoldenrod;
            display: inline-block;
          }
        </style>
      </head>
      <body>
        <div>爱</div>
      </body>
    </html>
    

  • 总结
    在这里插入图片描述

3. 样式表特性

1. 层叠性

  • 多组CSS样式共同作用于一个元素,就会出现 覆盖(层叠) 另一个冲突的样式。

  • 层叠原则

    • 样式冲突:遵循就近原则(哪个样式离结构近,就执行哪个样式)

    • 样式不冲突,就不会重叠
      在这里插入图片描述

2. 继承性

  • 后代元素可以继承祖先元素中的某些样式(子承父业),如文本颜色和字号。

    • 例 : 大部分的文本属性都可以被继承
  • 说明

    • 恰当地使用继承可以简化代码,降低 CSS 样式的复杂性
    • 子元素可以继承父元素的样式(text-,font-,line-这些元素开头的可以继承,以及color属性)
  • 拓展

    • 行高的继承

      • 如果子元素没有设置行高,则会继承父元素的行高为 1.5,此时子元素的行高是:当前子元素的文字大小 * 1.5
        在这里插入图片描述

3. 优先级

  • 优先级用来解决样式冲突问题。同一个元素的同一个样式(例如文本色),在不同地方多次进行设置,最终选用哪一种样式?此时哪一种样式表的优先级高选用哪一种。

    • 行内样式的优先级最高。
    • 文档内嵌与外链样式表,优先级一致,看代码书写顺序,后来者居上
    • 浏览器默认样式和继承样式优先级较低

  • 总结

    • 页面中的所有样式将按照以下规则 “层叠” 为新的 “虚拟” 样式表,其中第一优先级最高:

      1. 行内样式(在 HTML 元素中)
      2. 外部和内部样式表(在 head 部分)
      3. 浏览器默认样式
    • 行内样式具有最高优先级,并且将覆盖外部和内部样式以及浏览器默认样式。

4. 选择器的优先级

  • 使用选择器为元素设置样式,发生样式冲突时,主要看选择器的权重,权重越大,优先级越高

    选择器权重
    继承 或 *0
    标签选择器1
    (伪)类选择器10
    id选择器100
    行内样式1000
    !import无穷大
  • 复杂选择器(后代,子代,伪类)最终的权重为各个选择器权重值之和

  • 群组选择器权重以每个选择器单独的权重为准,不进行相加计算

    /*群组选择器之间互相独立,不影响优先级*/
    body,h1,p{ /*标签选择器权重为 1 */
     color:red;
    }
    
    .c1 a{ /*当前组合选择器权重为 10+1  */
     color:green;
    }
    
    #d1>.c2{ /*当前组合选择器权重为 100+10 */
     color:blue;
    }
    

标签:教程,样式,标签,元素,color,选择器,CSS,属性
From: https://blog.csdn.net/qq_19394437/article/details/143200388

相关文章

  • css3序列帧动画&图片资源初次加载闪屏处理
    /*定义关键帧*/@keyframesexample{0%{background:url(./ani/1.png)centercenterno-repeat;background-size:cover;}……100%{background:url(./ani/48.png)centercenterno-repeat;background-size:cover;}}.......
  • Cursor零基础小白教程系列「进阶」 - Cursor 智能代码补全详解(Tab)
    最适合小白零基础的Cursor教程网站lookai.top相同作者,最新文章会在网站更新,欢迎收藏书签Cursor智能代码补全详解(Tab)概述Cursor的智能代码补全,也就是快捷键Tab,是其最强大和独特的AI辅助编程工具之一。本教程将详细介绍Tab功能的使用方法,通过掌握Tab功能,您将显著提......
  • stm32入门教程--UART协议详解
    目录简介UART串口协议串行通信并行通信串行通信与并行通信的区别单工通信半双工全双工同步和异步的区别UART帧结构简介STM32是意法半导体公司推出的一款32位ARMCortex-M系列微控制器。UART、SPI和I2C是STM32中常用的串行通信协议。UART(通用异步收发器):UART是一......
  • 宝塔面板安装教程
    安装前请确保是【全新的机器】,没有安装其他任何环境,否则会影响您的业务使用!填写好服务器信息,点击“立即安装到服务器”即全自动完成安装,在安装过程中请勿刷新页面!数据传输过程中加密处理,不保存任何账号密码信息,请放心使用。系统兼容性推荐:CentOS7.x>Debian10>Ubuntu20.04......
  • 小皮搭建dvwa超详细教程(附压缩包)
    非常奇怪,平时搭建其他靶场基本上10分钟内搞定从昨天晚上我就开始被dvwa各种奇怪的问题卡包括下小皮一直提醒站点创建成功结合这个老哥的公钥私钥:phpstudy+dvwa搭建_phpstudey+dvwa-CSDN博客写一篇比较准确的流程1、下载好小皮 2、创建dvwa站点 确定路径文件夹下的文......
  • Unity3D教程:次表面散射的简单实现
    次表面散射指的是光线射入半透明材质,在内部发生散射后再透射出来的光线传播过程,考虑到有些项目会需要使用次表面散射,下面就给大家介绍下在Unity3D中次表面散射的简单实现,希望可以帮到大家。 一、前言本文旨在与大家一起探讨学习新知识,如有疏漏或者谬误,请大家不吝指出。以下内......
  • Spring Boot 替换Word模板生成Word文件教程
    ......
  • Linux安装Redis(保姆教程)
    1,安装GCC依赖#sudo表示以管理员身份运行,如果使用的是管理员用户就不需要sudosudoyuminstall-ygcc2,添加EPEL仓库yuminstallepel-release#更新yum源yumupdate3,安装redisyuminstallredis4,查看redis安装的路径,默认安装路径为:/var/lib/redisfindI-nameredis5,修改......
  • css常用布局之圣杯布局和双飞翼布局
    圣杯布局(HolyGrailLayout)和双飞翼布局(DoubleWingLayout)都是用来实现三列布局的常见技术,其中两侧列宽度固定,中间列宽度自适应,并且中间列在文档流中优先渲染。以下是两种布局的详细介绍和代码示例:圣杯布局(HolyGrailLayout)特点:使用相对定位和负边距来实现侧边栏的定位。HT......
  • css常用布局之flex布局
     Flexbox是一个一维的布局模式,它可以轻松地在不同的方向上排列子元素(称为flex项),即使它们的大小是未知或者是动态变化的。以下是Flexbox的一些关键概念:容器和项:启用Flexbox布局的容器称为flex容器。容器内的所有子元素自动成为flex项。主要轴和交叉轴:主要......