1、类型选择器
创新互联建站专注于聂荣网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供聂荣营销型网站建设,聂荣网站制作、聂荣网页设计、聂荣网站官网定制、微信平台小程序开发服务,打造聂荣网络公司原创品牌,更为您提供聂荣网站排名全网营销落地服务。
CSS中的一种选择器是元素类型的名称。使用这种选择器(称为类型选择器),可以向这种元素类型的每个实例上应用声明。例如,以下简单规则的选择器是H1,因此规则作用于文档中所有的H1元素。
2、简单属性选择器
CLASS属性
CLASS属性允许向一组在CLASS属性上具有相同值的元素应用声明。BODY内的所有元素都有CLASS属性。从本质上讲,可以使用CLASS属性来分类元素,在样式表中创建规则来引用CLASS属性的值,然后浏览器自动将这些属性应用到该组元素。
类选择器以标志符(句点)开头,用于指示后面是哪种类型的选择器。对于类选择器,之所以选择句点是因为在很多编程语言中它与术语"类"相关联。翻译成英语,标志符表示"带有类名的元素"。
ID属性
ID属性的操作类似于CLASS属性,但有一点重要的不同之处:ID属性的值在整篇文档中必须是唯一的。这使得ID属性可用于设置单个元素的样式规则。包含ID属性的选择器称为ID选择器。
需要注意的是,ID选择器的标志符是散列符号(#)。标志符用来提醒浏览器接下来出现的是ID值。
STYLE属性
尽管在选择器中可以使用CLASS和ID属性值,STYLE属性实际上可以替代整个选择器机制。不是只具有一个能够在选择器中引用的值(这正是ID和CLASS具有的值),STYLE属性的值实际上是一个或多个CSS声明。
通常情况下,使用CSS,设计者将把所有的样式规则置于一个样式表中,该样式表位于文档顶部的STYLE元素内(或在外部进行链接)。但是,使用STYLE属性能够绕过样式表将声明直接放置到文档的开始标记中。
3、组合选择器类型
可以将类型选择器、ID选择器和类选择器组合成不同的选择器类型来构成更复杂的选择器。通过组合选择器,可以更加精确地处理希望赋予某种表示的元素。例如,要组合类型选择器和类选择器,一个元素必须满足两个要求:它必须是正确的类型和正确的类以便使样式规则可以作用于它。
外部信息:伪类和伪元素
在CSS1中,样式通常是基于在HTML源代码中出现的标记和属性。对于很多设计情景而言这种做法完全可行,但是它无法实现设计者希望获得的一些常见的设计效果。
设计伪类和伪元素可以实现其中的一些效果。这两种机制扩充了CSS的表现能力。在CSS1中,使用伪类可以根据一些情况改变文档中链接的样式,如根据链接是否被访问,何时被访问以及用户和文档的交互方式来应用改变。借助于伪元素,可以更改元素的第一个字母和第一行的样式,或者添加源文档中没有出现过的元素。
伪类和伪元素都不存在于HTML;也就是说,它们在HTML代码中是不可见的。这两种机制都得到了精心设计以便能够在CSS以后的版本中做进一步地扩充;也就是说实现更多的效果。
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
主要的css选择器如下:
1、标签选择器
2、类选择器
3、ID选择器
4、全局选择器
5、组合选择器
6、继承选择器
7、伪类选择器
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
如果我们的页面上存在非常多的样式,譬如有我们开发页面的时候的自定义样式,也有引入的组件库样式。这时候样式将会非常混乱难以管理。
当我们想覆盖一些本身非我们书写的样式时候,往往不得不通过使用优先级权重更高的样式名,去覆盖那些样式。
同时,当样式优先级感到难以控制时,开发者习惯滥用 !important 去解决,这又循环导致了后续更混乱的样式结构。
基于让 CSS 得到更好的控制和管理的背景,CSS @layer 应运而生。
CSS Cascade Layers,也叫做CSS级联层,是Cascading and Inheritance Level5 规范中新增了一个新的 CSS 特性。
这样,我们就创建一个名为 utilities 的 @layer 级联层。
@layer规则可以通过三种方式其一来创建级联层。第一种方法如上方代码所示,它创建了一个块级的@规则,其中包含作用于该层内部的CSS规则。
一个级联层同样可以通过 @import 来创建,规则存在于被引入的样式表内:
你也可以创建带命名的级联层,但不指定任何样式。例如,单一的命名层:
或者,多个命名层也可以被同时定义。例如:
因此,在上面的例子中,如果 theme 层和 utilities 层中存在冲突的规则,那么 utilities 层中的将优先被应用。
即使 utilities 层中规则的 优先级低于 theme 层中的,该规则仍会被应用。一旦级联层顺序建立之后,优先级和出现顺序都会被忽略。
这将使创建CSS选择器变得更加简单,因为你不需要确保每一个选择器都有足够高的优先级来覆盖其他冲突的规则,你只需要确保它们出现在一个顺序更靠后的级联层中。
级联层允许嵌套,例如:
向 layout 层内部的 framework 层附加规则,只需用 . 连接这两层。
如果创建了一个级联层但并未指定名字,例如:
那么则称为创建了一个匿名层。除创建后无法向其添加规则外,该层和其他命名层功能一致。
1、使用@layer 块规则,并立即为其分配样式:
2、使用规则@layer 语句,没有指定任何样式:
3、将@import 与layer关键字或layer()函数一起使用
以上每一个都创建了一个名为 的级联层reset。
在下面的例子中,我们建立四个级联层:reset,base,theme,和utilities。
重复使用级联层名称时,样式将附加到现有级联层。级联层的顺序保持不变,因为只有第一次的出现已经确定顺序:
重新使用级联层名称时层顺序保持不变的使@layer 语法变得更加方便和严谨。使用它,可以预先建立图层顺序,然后将所有 CSS 附加到它:
按以往CSS级联来进行分析的话,form input(多层级)的优先级会大于input,但是由于级联层所起的作用,@layer theme的input会取胜。
级联层支持嵌套使用,如下:
在这个例子中有两个级联外层:
base
framework
该framework层本身也包含两层:
base
theme
如果要将样式附加到嵌套级联层,需要使用以下全名来引用它,
如果第一个@media (min-width: 30em)匹配(基于视口尺寸),则layout级联层层将在图层顺序中排在第一位。如果只有@media (prefers-color-scheme: dark)匹配,theme则将是第一层。
如果两者匹配,则图层顺序将为layout, theme。如果没有匹配,则不定义层。
CSS(Cascading Style Sheet),中文译为层叠样式表,可以让设计者方便灵活地控制Web页面的外观表现。CSS是1996年由W3C审核通过并且推荐使用的。CSS的引入,就是为了使HTML语言更好地适应网页的美工设计。CSS详细规范说明要查阅CSS手册,或登录W3C官网( )。
使用CSS,要了解常用的各种选择器。
1.标记选择器:
一个HTML页面由很多不同的标记组成,而CSS选择器就是声明哪些标记采用哪种CSS样式。每一种HTML标记的名称都可以作为相应的标记选择器的名称。示例:
每一个选择器都包含选择器本身、属性和值,其中属性和值可以设置多个,从而实现对同一标记名称声明多种样式。CSS语言对于所有属性和值都有相对严格的要求,如果声明的属性在CSS规范中没有,或者某个属性的值不符合该属性的要求,都不能使该CSS语句生效。 还有一种通配选择器“*”,表示其中设置的样式会应用于所有的网页元素。示例:
htmlheadtitleclass选择器/title
style type="text/css"
.red{ color: red; font-size:18px; }
.green{ color: green; font-size:20px; }
/style/head
body
p class="red"class选择器1/p
p class="green"class选择器2/p
h3 class="green"h3使用class/h3
/body
/html
htmlheadtitleID选择器/title
style type="text/css"
#bold{ font-weight: bold; }
#green{ font-size:30px; color:#009900; }
/style/head
body
p id="bold"ID选择器1/p
p id="green"ID选择器2/p
/body/html
htmlheadtitle交集选择器/title
style type="text/css"
p{ / 标记选择器 / color: blue; }
p.special{ / 标记.类别选择器 / color: red; }
.special{ / 类别选择器 / color: green; }
/style/head
body
p 普通段落文本(蓝色)……/p
h3 普通标题文本(黑色)……/h3
p class="special"指定了.special类别的段落文本(红色)……/p
h3 class="special"指定了.special类别的标题文本(绿色)……/h3
/body
/html
htmlheadtitle并集选择器/title
style type="text/css"
h1,h2,h3.h4.h5.p{ / 并集选择器 / color: purple; font-size:15px; }
h2.special,.special,#one{ / 集体声明 / text-decoration:underline; }
/style/head
body
h1 示例文字h1……/h1
h2 class=”special” 示例文字h2……/h2
h3 示例文字h3……/h3
p 示例文字p1……/p
p class="special"示例文字p2……/p
p id="one"示例文字p3……/p
/body/html
htmlheadtitle后代选择器/title
style type=”text/css”
p span{ / 嵌套声明 / color: red; }
span{ color:blue; }
/style/head
body
p 嵌套使span用CSS(红色)/span标记的方法/p
嵌套之外的span标记(黑色)/span不生效
/body/html
:hover :visited :active :first-line :first-letter :first-child :nth-child :nth-of-type :nth-last-child
:nth-last-of-type
CSS层叠样式表:
css可以用来为网页创建样式表,通过样式表可以对网页进行装饰。css可以分别为网页的各个层次设置样式。
语法:
选择器 {样式名:样式值;样式名:样式值 ; }
p {color:red ; font-size:12px;}
行内样式:
p style="color: red;font-size: 30px"/p
内部样式表:
style
p{color:red; font-size: 30px;}
/style
外部样式表:
link rel="stylesheet" type="text/css" href="style.css"
元素选择器:
元素选择器(标签选择器),可以根据标 签的名字来从页面中选取指定的元素。
语法:
标签名 { }
比如p则会选中页面中的所有p标签,h1会 选中页面中的所有h1标签。
类选择器:
类选择器,可以根据元素的class属性值选 取元素。
语法:
.className { }
比如.hello会选中页面所有class属性为hello的元素。
ID选择器:
ID选择器,可以根据元素的id属性值选取 元素。
语法:
比如#box会选中页面中id属性值为box的 元素,和class属性不同,id属性是不能重 复的。
复合选择器(交集选择器):
复合选择器,可以同时使用多个选择器, 这样可以选择同时满足多个选择器的元素。
语法:
– 选择器1选择器2{}
例如div.box1会选中页面中具有box1这个class的div元素。
群组选择器(并集选择器):
群组选择器,可以同时使用多个选择器, 多个选择器将被同时应用指定的样式。
语法:
选择器1,选择器2,选择器3 { }
比如p,.hello,#box会同时选中页面中p元素,class为hello的元素,id为box的元素。
通用选择器:
通用选择器,可以同时选中页面中的所有 元素。
语法:
{ }
标签之间的关系:
祖先元素:
直接或间接包含后代元素的元素。
后代元素:
直接或间接被祖先元素包含的元素。
父元素:
直接包含子元素的元素。
子元素:
直接被父元素包含的元素。
兄弟元素:
拥有相同父元素的元素。
后代选择器:
后代选择器可以根据标签的关系,为处在 元素内部的代元素设置样式。
语法:
祖先元素 后代元素 后代元素 { }
比如p strong 会选中页面中所有的p元素 内的strong元素。
伪类和伪元素:
有时候,你需要选择本身没有标签,但是 仍然易于识别的网页部位,比如段落首行 或鼠标滑过的连接。CSS为他们提供一些选 择器:伪类和伪元素。
链接定义样式:
有四个伪类可以让你根据访问者与该链接的交 互方式,将链接设置成4种不同的状态。
正常链接
a:link
访问过的链接
a:visited(只能定义字体颜色)
鼠标滑过的链接
a:hover
正在点击的链接
a:active
其他:
获取焦点
:focus
指定元素前
:before
指定元素后
:after
选中的元素
::selection
属性选择器:
属性选择器可以挑选带有特殊属性的标签。
语法:
[属性名]
[属性名="属性值"]
[属性名~="属性值"]
[属性名|="属性值"]
[属性名^="属性值"]
[属性名$="属性值"]
[属性名="属性值"]
子元素选择器:
子元素选择器可以给另一个元素的子元素 设置样式。
语法:
父元素 子元素{}
比如body h1将选择body子标签中的所 有h1标签。
其他子元素选择器:
:first-child
选择第一个子标签
:last-child
择最后一个子标签
:nth-child
选择指定位置的子元素
:first-of-type
:last-of-type
:nth-of-type
选择指定类型的子元素
兄弟选择器:
除了根据祖先父子关系,还可以根据兄弟 关系查找元素。
语法:
查找后边一个兄弟元素
兄弟元素 + 兄弟元素{}
查找后边所有的兄弟元素
兄弟元素 ~ 兄弟元素{}
否定伪类:
否定伪类可以帮助我们选择不是其他东西 的某件东西。
语法:
:not(选择器){}
比如p:not(.hello)表示选择所有的p元素但 是class为hello的除外。
选择器的权重:
在页面中使用CSS选择器选中元素时,经常都是一个元素同时被多个 选择器选中。
比如:
body h1
h1
上边的两个选择器都会选择h1元素,如果两个选择器设置的样式不一 致那还好不会产生冲突,但是如果两个选择器设置的是同一个样式, 这样h1到底要应用那个样式呢?CSS中会默认使用权重较大的样式, 权重又是如何计算的呢?
权重的计算:
不同的选择器有不同的权重值:
内联样式:权重是 1000
id选择器:权重是 100
类、属性、伪类选择器:权重是 10
元素选择器:权重是 1
通配符:权重是 0
计算权重需要将一个样式的全部选择器相加,比如上边的body h1的权重是20,h1的权重是10,所以第一个选择器设置的样 式会优先显示。
第一题: plate(元素选择器)
第二题:bento(元素选择器)
第三题:#fancy(id选择器)
第四题:plate apple(后代元素选择器)
第五题:#fancy pickle(复合选择器)
第六题:.small(类选择器)
第七题:bento .small,plate .small(并集选择器)
第八题:bento orange(后代元素选择器)
第九题:plate,bento,plate(并集选择器)
第十题:*(通配选择器)
第十一题:plate(后代元素选择器)
第十二题:plate + apple(兄弟元素选择器)
第十三题:bento~pickle(兄弟元素选择器)
第十四题:plate apple(子类元素选择器)
第十五题:orange:first-child(子元素选择器)
第十六题::only-child(子元素选择器)
第十七题:.small:last-child(子元素选择器)
第十八题:plate:nth-child(3)(子元素选择器)
第十九题::nth-last-child(4)(子元素选择器)
第二十题:apple:first-of-type(子元素选择器)
第二十一题:plate:nth-of-type(even)(子元素选择器)
第二十二题:plate:nth-of-type(2n+3)(子元素选择器)
第二十三题:apple:only-of-type(子元素选择器)
第二十四题:.small:nth-child(even)(子元素选择器)
第二十五题:bento:empty(子元素选择器)
第二十六题:apple:not(.small)(not选择器)