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

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

一、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 引入也是最不推荐的一种方法

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

三、CSS选择器

🌸3.1、CSS 元素选择器

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

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

0a65b22373fd4ef3a88c770527bd2aa0.png

🌸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的颜色且居中对齐:

1. .c1 {
2. color: #ff6700;
3. text-align: center;
4. }

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

🌸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 element div p 选择 div 元素内部的所有 p 元素
element>element div>p 选择父元素为 div 元素的所有 p 元素
element+element div+p 选择紧接在 div 元素之后的 p 元素
element~element2 p~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;
}

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

1. div,
2. p {
3. color: red;
4. }

 🎉3.8.2、嵌套

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

可以用以下方式来表示:

.clas p {
  color: red;
}

🌸3.9、伪类选择器

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

状态 示例 说明
:link a:link 选择所有未被访问的链接
:visited a:visited 选择所有已被访问的链接
:hover a:hover 鼠标移动到元素上时
:active a:active 点击正在发生时
:focus input::focus 选择获得焦点的 input 元素
:root :root 选择文档的根元素即 html。
:empty p:empty 选择没有子元素的每个 p 元素(包括文本节点)。
:first-child p:first-child 选择属于父元素的第一个子元素的每个 p 元素
:last-child p:last-child 选择属于其父元素最后一个子元素每个 p 元素。
:first-of-type p:first-of-type 选择属于其父元素的首个 p 元素的每个 p 元素
:last-of-type p:last-of-type 选择属于其父元素的最后 p 元素的每个 p 元素。
:only-of-type p:only-of-type 选择属于其父元素唯一的 p 元素的每个 p 元素。
:only-child p: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

权重应用

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

通配符的权限为 0,而继承的规则没有权重

相关文章
|
9天前
|
前端开发
【前端web入门第四天】02 CSS三大特性+背景图
本文详细介绍了CSS的三大特性:继承性、层叠性和优先级,并深入讲解了背景图的相关属性,包括背景属性、背景图的平铺方式、位置设定、缩放、固定以及复合属性。其中,继承性指子元素自动继承父元素的文字控制属性;层叠性指相同属性后定义覆盖前定义,不同属性可叠加;优先级涉及选择器权重,包括行内样式、ID选择器等。背景图部分则通过具体示例展示了如何设置背景图像的位置、大小及固定方式等。
235 91
|
9天前
|
前端开发
【前端web入门第四天】01 复合选择器与伪类选择器
本文档详细介绍了CSS中的复合选择器与伪类选择器。复合选择器包括后代选择器、子代选择器、并集选择器和交集选择器,能够更精确地定位和样式化元素。后代选择器用于选中某元素的所有后代,子代选择器仅选中直接子元素。并集选择器可为多个标签设置相同样式,而交集选择器则选中同时满足多个条件的元素。此外,还介绍了伪类选择器,如鼠标悬停效果和超链接的不同状态。
45 32
【前端web入门第四天】01 复合选择器与伪类选择器
|
9天前
|
前端开发
【前端web入门第三天】02 CSS字体和文本
本文详细介绍了CSS中字体和文本的相关属性。字体部分涵盖字体大小、粗细、样式、行高、字体族及`font`复合属性,通过具体示例展示了如何设置和使用这些属性。文本部分则讲解了文本缩进、对齐方式、修饰线及文字颜色等属性,并提供了实用的代码示例。此外,还简要介绍了调试工具中的一些细节,如错误属性标识和属性生效状态的控制。
43 28
|
11天前
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`&lt;ul&gt;`嵌套`&lt;li&gt;`)、有序列表(`&lt;ol&gt;`嵌套`&lt;li&gt;`)和定义列表(`&lt;dl&gt;`嵌套`&lt;dt&gt;`和`&lt;dd&gt;`)。
38 19
|
9天前
|
前端开发 JavaScript
【前端web入门第三天】01 css定义和引入方式 四种标签选择器
本文档详细介绍了CSS的基础知识及其应用。内容涵盖了CSS的定义、CSS在HTML中的引入方式,包括内部样式表、外部样式表及行内样式表的使用场景与方法。此外,还深入解析了不同种类的选择器:标签选择器、类选择器、ID选择器以及通配符选择器的功能与应用场景,并提供了实例帮助理解。最后,通过具体的新属性示例,指导如何使用这些选择器来实现基本的盒子绘制。适合初学者系统学习CSS。
29 15
|
11天前
|
前端开发 Windows
【前端web入门第一天】02 HTML图片标签 超链接标签 音频标签 视频标签
本文档详细介绍了HTML中的图片、超链接、音频和视频标签的使用方法。首先讲解了`&lt;img&gt;`标签的基本用法及其属性,包括如何使用相对路径和绝对路径。接着介绍了`&lt;a&gt;`标签,用于创建超链接,并展示了如何设置目标页面打开方式。最后,文档还涵盖了如何在网页中嵌入音频和视频文件,包括简化写法及常用属性。
28 13
|
8天前
|
前端开发
|
8天前
|
前端开发
【前端web入门第五天】01 结构伪类选择器与伪元素选择器
本文介绍了CSS中的结构伪类选择器和伪元素选择器。结构伪类选择器如`nth-child`可根据元素结构关系进行选择,例如将列表中首个`&lt;li&gt;`元素背景设为绿色。伪元素选择器用于创建装饰性内容。
|
10天前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
8天前
|
前端开发
【前端web入门第六天】01 CSS浮动
这是关于CSS布局第六天学习目标的介绍,主要解决多个`&lt;div&gt;`标签在同一行显示的问题,即一个在左边,另一个在右边。文中介绍了标准流、浮动及flex布局的概念,重点推荐使用flex布局。文章详细讲解了浮动的基本使用、布局技巧及清除浮动的方法,包括额外标签法、单伪元素法、双伪元素法和`overflow`隐藏法,并提供了示例代码帮助理解。