【HTML基础篇003】前端基础之CSS选择器大全

news2025/1/11 14:08:31

一、CSS的基本介绍

CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。

当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。

二、CSS的几种引入方式

🌸2.1、方法一:行内样式

通过直接写在标签里面

<div style="color: pink; margin-top: 10px;border: 1px solid blue">行内样式</div>

🌸2.2、方法二:内部样式表

在head中通过style标签定义

<head>
    <style>
        p{
            color:pink;
            border:blue 1px solid;
        }
    </style>
</head>

🌸2.3、方法三:链入外部样式表

把样式单独写在css文件中,然后在HTML文件中通过link标签导入

<link rel="stylesheet" type="text/css" herf="外部的CSS文件.css">

🌸2.4、方法四:导入外部样式表

通过@import 引入也是最不推荐的一种方法

<style>
    @import"外部的CSS文件.css";
</style>

三、CSS选择器

🌸3.1、CSS 元素选择器

在这里,页面上的所有 <p> 元素都将居中对齐,并带有红色文本颜色:

p {
    color: red;
    text-align: center;
}

🌸3.2、CSS id 选择器

id 选择器使用 HTML 元素的 id 属性来选择特定元素。

元素的 id 在页面中是唯一的,因此 id 选择器用于选择一个唯一的元素!

要选择具有特定 id 的元素,请写一个井号(#),后跟该元素的 id。

实际栗子:

这条 CSS 规则将应用于 id=" num1 " 的 HTML 元素:

#num1{
    color: yellow;
    text-align: center;
}

特别注意:id 名称不能以数字开头。

🌸3.3、CSS 类选择器

类选择器选择有特定 class 属性的 HTML 元素。

如需选择拥有特定 class 的元素,请写一个句点(.)字符,后面跟类名。

实际栗子:

在此例中,所有带有 class="c1" 的 HTML 元素将为#ff6700的颜色且居中对齐:

.c1 {
    color: #ff6700;
    text-align: center;
}

特别注意:类名同样不能以数字开头

🌸3.4、CSS 通用选择器

通用选择器(*)选择页面上的所有的 HTML 元素。

实际栗子:

下面的 CSS 规则会影响页面上的每个 HTML 元素:

* {
  text-align: center;
  color: blue;
}

🌸3.5、CSS 分组选择器 

当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。 

来看下面这段CSS代码

h1 {
  text-align: center;
  color: red;
}
p {
  text-align: center;
  color: red;
}

我们不难发现p标签与h1标签的样式是相同的,根据简化原则我们最好对选择器进行分组,以最大程度地缩减代码。如需对选择器进行分组,请用逗号来分隔每个选择器。

我们可以将上面代码简化成下面这种形式:

h1, p {
  text-align: center;
  color: red;
}

🌸3.6、CSS 组合器 

🎉3.6.1、后代选择器

后代选择器匹配属于指定元素后代的所有元素。要特别注意与分组选择器的区别

下面的例子选择 <div> 元素内的所有 <p> 元素,并且设置元素颜色为burlywood:

div p {
    color: burlywood;
}

🎉3.6.2、子选择器

子选择器匹配属于指定元素子元素的所有元素(只会选择儿子)。

下面的例子选择属于 <div id="num2"> 元素子元素的所有 <p> 元素:

#num2>p {
    color: yellow;
}

🎉3.6.3、毗邻选择器 

相邻兄弟选择器匹配所有作为指定元素的相邻同级的元素。

兄弟(同级)元素必须具有相同的父元素,“相邻”的意思是“紧随其后”(在它上面紧挨着也不算)。

下面的例子选择紧挨着 <div> 元素之后的所有 <p> 元素变为aqua颜色:

div+p {
    color: aqua;
}

🎉3.6.4、弟弟选择器 

匹配指定元素的同级元素的所有元素。

下面的例子选择属于 <div> 元素的同级元素的所有 <p> 元素:

div~p {
    color: #0a3651;
}

🎉3.6.5、总结

选择器示例描述
element elementdiv p选择 div 元素内部的所有 p 元素
element>elementdiv>p选择父元素为 div 元素的所有 p 元素
element+elementdiv+p选择紧接在 div 元素之后的 p 元素
element~element2p~ul选择 p 元素同级并在 p 元素后面的所有 ul 元素

🌸3.7、CSS 属性选择器 

根据属性来为元素设置样式也是常用的场景。

相关的例子如下:

选择器示例描述
[attribute][target]带有 target 属性所有元素
[attribute=value][target=_blank]targe 属性 等于"_blank" 的所有元素
[attribute~=value][title~=houdunren]title 属性包含单词 "houdunren" 的所有元素
[attribute|=value][title|=hd]title 属性值为 "hd"的单词,或hd-cms 以-连接的的独立单词
[attribute*=value]a[src*="hdcms"]src 属性中包含 "hdcms" 字符的每个 a 元素
[attribute^=value]a[src^="https"]src 属性值以 "https" 开头的每个 a 元素
[attribute$=value]a[src$=".jpeg"]src 属性以 ".jpeg" 结尾的所有 a 元素

🌸3.8、分组和嵌套

🎉3.8.1、分组

当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。

比如我们要为div标签和p标签统一设置字体为红色:

div, p {
  color: red;
}

但是通常,我们会分两行来写,更清晰:

div,
p {
  color: red;
}

 🎉3.8.2、嵌套

多种选择器可以混合起来使用,比如:.clas类内部所有p标签设置字体颜色为红色。

可以用以下方式来表示:

.clas p {
  color: red;
}

 🌸3.9、伪类选择器

为元素的不同状态或不确定存在的元素设置样式规则。

状态示例说明
:linka:link选择所有未被访问的链接
:visiteda:visited选择所有已被访问的链接
:hovera:hover鼠标移动到元素上时
:activea:active点击正在发生时
:focusinput::focus选择获得焦点的 input 元素
:root:root选择文档的根元素即 html。
:emptyp:empty选择没有子元素的每个 p 元素(包括文本节点)。
:first-childp:first-child选择属于父元素的第一个子元素的每个 p 元素
:last-childp:last-child选择属于其父元素最后一个子元素每个 p 元素。
:first-of-typep:first-of-type选择属于其父元素的首个 p 元素的每个 p 元素
:last-of-typep:last-of-type选择属于其父元素的最后 p 元素的每个 p 元素。
:only-of-typep:only-of-type选择属于其父元素唯一的 p 元素的每个 p 元素。
:only-childp:only-child选择属于其父元素的唯一子元素的每个 p 元素。
:nth-child(n)p:nth-child(2)选择属于其父元素的第二个子元素的每个 p 元素。
:nth-child(odd)p:nth-child(odd)选择属于其父元素的奇数 p 元素。
:nth-child(even)p:nth-child(even)选择属于其父元素的偶数 p 元素。
:nth-of-type(n)p:nth-of-type(2)选择属于其父元素第二个 p 元素的每个 p 元素。
:nth-last-child(n)p:nth-last-child(2)同上,从最后一个子元素开始计数。
:nth-last-of-type(n)p:nth-last-of-type(2)同上,但是从最后一个子元素开始计数。
:not(selector):not(p)选择非 p 元素的每个元素

🌸4.0、伪元素选择器 

常见的伪元素选择器:

  1.   ::first-letter 选择元素文本的第一个字母。
  2.   ::first-line 选择元素文本的第一行。
  3.   ::before 在元素内容的最前面添加新内容。(常用)
  4.   ::after 在元素内容的最后面添加新内容。(常用)
  5.   ::selection匹配用户被用户选中或者处于高亮状态的部分
  6.   ::placeholder匹配占位符的文本,只有元素设置了placeholder属性时,该伪元素才能生效
  7.   ::before 在元素内容的最前面添加新内容 

四、CSS选择器的优先级

元素会被多个样式一层层作用,这就是层叠样式表的来源。如果多个样式做用在元素上就会产生优先级权重问题。

使用类、ID、伪类都有不同的权重,具体应用哪条规则要看权限大小。

  • 相同权重的规则应用最后出现的
  • 可以使用 !important 强制提升某个规则的权限,但并不推荐使用。因为如果过多的使用!important会使样式文件混乱不易维护。万不得已可以使用!important

权重应用

规则粒度
ID0100
class,类属性值0010
标签,伪元素0001
*0000
行内样式1000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

连接查询之内连接(等值连接、非等值连接和自连接)

1、等值连接&#xff1a;表连接条件是等值关系&#xff0c;我们称为等值连接。 需求&#xff1a;查询每个员工所在部门名称&#xff0c;显示员工名和部门名&#xff1a; 查看员工表的ename和deptno字段信息&#xff1a; 查看部门表中的deptno和dname字段信息 SQL92语法&#x…

2023年最值得关注的机器人趋势TOP10

新兴的机器人技术趋势和预测满足了对工业自动化、数字化和可持续性的需求。仓库中的材料处理由自动移动机器人&#xff08;AMR&#xff09;和自动引导车辆&#xff08;AGV&#xff09;实现自动化。相关机构对8949家全球初创企业和2023年机器人趋势规模的样本进行了研究&#xf…

Linux的安装(云服务器专讲)

一、Linux环境的安装有一下几种方式&#xff1a;双系统或则将自己的笔记本搞成Linux系统——严重不推荐&#xff0c;这样安装成本高、并且容易把自己电脑弄坏。虚拟机推荐wmware player这是免费的&#xff0c;并且推荐是打在了centos7.x版本的&#xff0c;这个的好处就是不需要…

微信接入 ChatGPT(学习笔记,不作教程)

微信接入 ChatGPT前置条件接入前提去Linux虚拟机&#xff08;必须有go环境&#xff09;安装前先配置下ssh密钥生成新的ssh密钥检查将 SSH 密钥添加到 ssh-agent将 SSH 密钥添加到您在 GitHub 上的帐户上去github上将密钥复制在里面然后点击添加ssh密钥安转部署最后直接go run m…

【JavaSE】Java序列化详解

【JavaSE】Java序列化详解 文章目录【JavaSE】Java序列化详解一&#xff1a;什么是序列化和反序列化?二&#xff1a;序列化协议对应于 TCP/IP 4 层模型的哪一层&#xff1f;三&#xff1a;常见序列化协议有哪些&#xff1f;四&#xff1a;JDK 自带的序列化方式1&#xff1a;序…

广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”

文章目录广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”曝光数据流转结算管道式架构助力高可用管道式架构模式图流式链路中特殊的缓存设计一、二级缓存Nosql 数据型缓存组件s2s 监测上报广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算” 曝光数据…

SpringCloud微服务项目实战 - 5.自媒体文章审核

愤怒归根结底是为了达成目的的一种工具和手段&#xff0c;大声呵斥乃至拍桌子&#xff0c;目的都是通过震慑对方&#xff0c;进而使其听自己的话&#xff0c;因为他们也找不到更好的办法。 系列文章目录 项目搭建App登录及网关App文章自媒体平台&#xff08;博主后台&#xff…

68.多尺度目标锚框的代码实现

在之前&#xff0c;我们以输入图像的每个像素为中心&#xff0c;生成了多个锚框。 基本而言&#xff0c;这些锚框代表了图像不同区域的样本。 然而&#xff0c;如果为每个像素都生成的锚框&#xff0c;我们最终可能会得到太多需要计算的锚框。 想象一个 561728 的输入图像&…

UG/NX 二次开发(C#)自动出2D零件图(标准件配置Bata版)

一、前言 昨天分享了自动出2D零件图的思路&#xff08;UG/NX 二次开发(C#)自动出2D零件图思路&#xff09;&#xff0c;今天整理了Q群里各位大佬的意见&#xff0c;结合当前实际项目情况&#xff0c;做了一个可配置的半自动出图版本&#xff0c;暂且称之为标准件配置Bata版。 虽…

steam/csgo搬砖项目详解

steam搬砖项目简单来说&#xff0c;就是在steam平台购买游戏装备到网易BUFF平台出售&#xff0c;赚取汇率差和装备差价。 我今天也就给大家讲解一下steam项目的原理&#xff0c;还有存在什么样的风险。 做steam搬砖需要什么准备&#xff1a; 1.手机 2.电脑 3.美服steam账号 4.…

【hcip】多点双向重发布实验

目录 1.拓扑图 2.要求 3.主要配置 4.测试 1.拓扑图 2.要求 达到所有目标最优&#xff0c;互有备份 3.主要配置 左边区域配置rip&#xff0c;右边区域配置ospf&#xff0c;以r2为例 [r2]rip [r2-rip-1]version 2 [r2-rip-1]network 12.0.0.0 [r2-rip-1]network 2.0.…

堆排序详细说明及实现-python

先了解什么是堆&#xff1a; 堆的定义 n个元素的序列 [ k1&#xff0c;k2&#xff0c;...&#xff0c;kn ]&#xff0c;满足以下的性质时称之为堆&#xff1a; ki≥k2i 且 ki≥k2i1 (1≤i≤ ) 或 ki≤k2i 且 ki≤k2i1 (1≤i≤ ) 如果采用顺序方式即用一维数组存储这个序列&…

《回眸2022·圆满收官||展望2023·砥砺奋发》

系列文章目录 文章目录系列文章目录寄言和CSDN相遇大学生活从小白到千粉博主回眸2022|圆满收官展望2023|砥砺奋发致每一个追梦人寄言 岁月不距&#xff0c;时节如流&#xff01;站在岁末的门槛前&#xff0c;回望2022这一年&#xff0c;不知你是否已经完美的书写完2022的答卷&…

计算机工作过程(超详细)

文章目录一、计算机组成框图二、思维导图三、部件剖析&#xff08;1&#xff09;存储器&#xff08;2&#xff09;运算器&#xff08;3&#xff09;控制器四、案例剖析&#xff08;重点&#xff09;&#xff08;1&#xff09;a2&#xff08;2&#xff09;a*b&#xff08;3&…

vscode配置Markdown snippet 的快捷键

Snippet 是&#xff1f; 不同文件的模板语法/代码片段&#xff0c;可以设置好后在不同类型文件快速插入&#xff0c;提高效率。 例如&#xff1a;可以在Markdown使用快捷键生成自己想要的模板内容&#xff0c;自定义输入时tab的跳转位置 具体设置 官方文档 生成snippet的在…

Apache Spark 机器学习 数据源 2

数据源 数据源作为机器学习的数据输入&#xff0c;以供给Spark进行机器学习&#xff0c;Spark技术框架除了支持Parquet、CSV、JSON以及JDBC这些常用的数据源&#xff0c;还提供一些特殊数据源的支持&#xff0c;例如&#xff0c;图像或者LIBSVM。 Parquet数据源 该数据源是a…

2023什么蓝牙耳机值得入手?值得入手的半入耳蓝牙耳机推荐

毫无疑问&#xff0c;近年来蓝牙耳机的外出使用频率越来越高&#xff0c;这是由于其外出携带的便捷性以及配置越来越高端、先进&#xff0c;而半入耳式蓝牙耳机又凭借更舒适的佩戴体验以及便携性受到用户的喜爱。但&#xff0c;面对形形色色的蓝牙耳机&#xff0c;不同价位、不…

Shell中的 test 命令

Shell中的 test 命令用于检查某个条件是否成立&#xff0c;它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于则为真实例num1100num2100if test $[num1] -eq $[num2]thenecho 两…

完全背包理论基础

目录 一.理论基础 二.遍历顺序问题 2.1 01背包 2.2完全背包 3.相关题型 3.1零钱兑换 3.1.数组总和IV 一.理论基础 题目描述&#xff1a; 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&…

重置Entity Framework Core的数据迁移

本文主要参考文章重置EntityFramework数据迁移到洁净状态&#xff0c;感谢哈~。可能是版本问题&#xff0c;文中所述操作跟我稍微有所出入&#xff0c;故在此做下记录。注意&#xff0c;本人的IDE是JetbrainsRider&#xff0c;并非Visual Studio&#xff0c;但主要操作是通用的…