css选择器

选择器

CSS 选择器用于“查找”(或选取)要设置样式的 HTML 元素。
我们可以将 CSS 选择器分为五类:

1.简单选择器(根据名称、id、类来选取元素)
2.组合器选择器(根据它们之间的特定关系来选取元素)
3.伪类选择器(根据特定状态选取元素)
4.伪元素选择器(选取元素的一部分并设置其样式)
5.属性选择器(根据属性或属性值来选取元素

1.简单选择器

CSS 元素选择器

元素选择器根据元素名称来选择 HTML 元素。

p {
  text-align: center;
  color: red;
}
id 选择器

id 选择器使用 HTML 元素的 id 属性来选择特定元素。
元素的 id 在页面中是唯一的,因此 id 选择器用于选择一个唯一的元素!
要选择具有特定 id 的元素,请写一个井号(#),后跟该元素的 id。

<!DOCTYPE html>
<html>
<head>
<style>
#para1 {
  text-align: center;
  color: red;
}
</style>
</head>
<body>

<p id="para1">Hello World!</p>
<p>本段不受样式的影响。</p>

</body>
</html>
类选择器

类选择器选择有特定 class 属性的 HTML 元素。如需选择拥有特定 class 的元素,请写一个句点(.)字符,后面跟类名。
HTML 元素也可以引用多个类。

<p class="center large">这个段落引用两个类。</p>
.center {
  text-align: center;
  color: red;
}
.large {
  text-align: center;
  color: red;
}
通用选择器

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

分组选择器

分组选择器选取所有具有相同样式定义的 HTML 元素。

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

2.组合器

组合器是解释选择器之间关系的某种机制。
CSS 选择器可以包含多个简单选择器。在简单选择器之间,我们可以包含一个组合器。

CSS 中有四种不同的组合器:
后代选择器 (空格)
子选择器 (>)
相邻兄弟选择器 (+)
通用兄弟选择器 (~)

后代选择器
div p {
  background-color: yellow;
}
子选择器
div > p {
  background-color: yellow;
}
相邻兄弟选择器

相邻兄弟选择器匹配所有作为指定元素的相邻同级的元素。指定元素后面得一个
兄弟(同级)元素必须具有相同的父元素,“相邻”的意思是“紧随其后”。
下面的例子选择紧随 <div> 元素之后的所有 <p> 元素:

<!DOCTYPE html>
<html>
<head>
<style>
div + p {
  background-color: yellow;
}
</style>
</head>
<body>

<h1>相邻兄弟选择器</h1>
<p>相邻的同胞选择器(+)选择所有作为指定元素的相邻的同级元素。</p>

<div>
  <p>div 中的段落 1。</p>
  <p>div 中的段落 2。</p>
</div>

<p>段落 3。不在 div 中。</p>
<p>段落 4。不在 div 中。</p>

</body>
</html>
通用兄弟选择器

通用兄弟选择器匹配属于指定元素后面的同级元素的所有元素。

<!DOCTYPE html>
<html>
<head>
<style>
div ~ p {
  background-color: yellow;
}
</style>
</head>
<body>

<h1>通用兄弟选择器</h1>
<p>通用的兄弟选择器(~)选择指定元素的所有同级元素。</p>


<p>段落 1。</p>
<div>
  <p>段落 2。</p>
</div>

<p>段落 3。</p>
<code>一些代码。</code>
<p>段落 4。</p>

</body>
</html>

3.伪类

伪类用于定义元素的特殊状态。

例如,它可以用于:
设置鼠标悬停在元素上时的样式
为已访问和未访问链接设置不同的样式
设置元素获得焦点时的样式

a:hover 必须在 CSS 定义中的 a:link 和 a:visited 之后,才能生效!a:active 必须在 CSS 定义中的 a:hover 之后才能生效!伪类名称对大小写不敏感。

伪类和 CSS 类

伪类可以与 CSS 类结合使用:

当您将鼠标悬停在例子中的链接上时,它会改变颜色:

a.highlight:hover {
  color: #ff0000;
}
简单的工具提示悬停
p {
  display: none;
  background-color: yellow;
  padding: 20px;
}

div:hover p {
  display: block;
}
:first-child 伪类

:first-child 伪类与指定的元素匹配:该元素是另一个元素的第一个子元素。
匹配首个 <p> 元素

p:first-child {
  color: blue;
}
:lang 伪类

:lang 伪类允许您为不同的语言定义特殊的规则。

<html>
<head>
<style>
q:lang(en) {
  quotes: "~" "~";
}
</style>
</head>
<body>

<p>Some text <q lang="no">A quote in a paragraph</q> Some text.</p>

</body>
</html>

4.伪元素

CSS 伪元素用于设置元素指定部分的样式。
设置元素的首字母、首行的样式
在元素的内容之前或之后插入内容

::first-line

::first-line 伪元素用于向文本的首行添加特殊样式。 伪元素只能应用于块级元素。

  • 字体属性
  • 颜色属性
  • 背景属性
  • word-spacing
  • letter-spacing
  • text-decoration
  • vertical-align
  • text-transform
  • line-height
  • clear
    在 CSS3 中,双冒号取代了伪元素的单冒号表示法。这是 W3C 试图区分伪类和伪元素的尝试。
    在 CSS2 和 CSS1 中,伪类和伪元素都使用了单冒号语法。
    为了向后兼容,CSS2 和 CSS1 伪元素可接受单冒号语法。
::first-letter 伪元素

::first-letter 伪元素用于向文本的首字母添加特殊样式。

伪元素可以与 CSS 类结合使用
<!DOCTYPE html>
<html>
<head>
<style>
p.intro::first-letter {
  color: #ff0000;
  font-size: 200%;
}  
</style>
</head>
<body>

<p class="intro">这是一段简介!</p>
<p>这是一段文字。以及更多的文字。</p>

</body>
</html>
::before 伪元素 ::after 伪元素

::before 伪元素可用于在元素内容之前插入一些内容。
::after 伪元素可用于在元素内容之后插入一些内容。

h1::before {
  content: url(smiley.gif);
}
h1::after {
  content: url(smiley.gif);
}
::selection 伪元素

::selection 伪元素匹配用户选择的元素部分。
以下 CSS 属性可以应用于 ::selection:
color
background
cursor
outline

5.属性选择器

为带有特定属性的 HTML 元素设置样式
我们可以设置带有特定属性或属性值的 HTML 元素的样式。

CSS [attribute] 选择器
[attribute] 选择器用于选取带有指定属性的元素。
CSS [attribute="value"] 选择器
a[target="_blank"] { 
  background-color: yellow;
}
CSS [attribute~="value"] 选择器

[attribute~="value"] 选择器选取属性值包含指定词的元素。
下例选取 title 属性包含 "flower" 单词的所有元素:

[title~="flower"] {
  border: 5px solid yellow;
}
CSS [attribute|="value"] 选择器

[attribute|="value"] 选择器用于选取指定属性以指定值开头的元素。
下例选取 class 属性以 "top" 开头的所有元素:
注释:值必须是完整或单独的单词,比如 class="top" 或者后跟连字符的,比如 class="top-text"。

[class|="top"] {
  background: yellow;
}
CSS [attribute^="value"] 选择器

[attribute^="value"] 选择器用于选取指定属性以指定值开头的元素。下例选取 class 属性以 "top" 开头的所有元素:提示:值不必是完整单词!

[class^="top"] {
  background: yellow;
}
CSS [attribute$="value"] 选择器

[attribute$="value"] 选择器用于选取指定属性以指定值结尾的元素。
下例选取 class 属性以 "test" 结尾的所有元素:
提示:值不必是完整单词!

[class$="test"] {
  background: yellow;
}
CSS [attribute*="value"] 选择器

[attribute*="value"] 选择器选取属性值包含指定词的元素。
下例选取 class 属性包含 "te" 的所有元素:
提示:值不必是完整单词

[class*="te"] {
  background: yellow;
}
设置表单样式
<!DOCTYPE html>
<html>
<head>
<style>
input[type=text] {
  width: 150px;
  display: block;
  margin-bottom: 10px;
  background-color: yellow;
}

input[type=button] {
  width: 120px;
  margin-left: 315px;
  display: block;
}
</style>
</head>
<body>

<h1>添加表单样式</h1>

<form name="input" action="" method="get">
  Firstname:<input type="text" name="Name" value="Bill" size="20">
  Lastname:<input type="text" name="Name" value="Gates" size="20">
  <input type="button" value="Example Button">
</form>

</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • CSS选择器是学习CSS的一个核心部分,HTML页面中的元素就是通过CSS选择器来进行控制的,熟练使用CSS选择器...
    颭夏阅读 628评论 0 6
  • 类型选择器(type selector) 或 元素选择器文档的元素就是最基本的选择器;元素选择器又称为类型选择...
    googoler阅读 257评论 0 0
  • CSS 元素选择器CSS 选择器分组CSS 类选择器详解CSS ID 选择器详解CSS 属性选择器详解CSS 后代...
    safiriGitHub阅读 462评论 0 1
  • 选择器的种类有很多,可以到 w3cschool 去看看了解一下。也可以在 慕课网 中实践一下。 一、上下文选择器 ...
    天承本草2020阅读 814评论 0 0
  • 一、选择器 CSS选择器是CSS规则的第一部分 它是元素和其他部分组合起来告诉浏览器哪个HTML元素应当是被选为应...
    微笑猪_1210阅读 123评论 0 0