关于 CSS 选择器

今天刚开通博客,先自我介绍一下,Mike,大学没填志愿就跑到某培训机构学了两年,2012年出道,工作历程可谓坎坷,就不多说了,反正最终选择从
事web前端的工作。
结合出道至今的工作以及学习,写下今天这篇博文,与大家分享,并希望各位指点一二,感激不尽。
当年语文没学好,文采不好,我就直奔主题了。(主要写一下属性以及伪类吧)
1、元素选择器。
这个东西最简单,也最常见,就是以元素为选择器来添加样式
例:
html {color:black;} //设置html元素颜色black
div {color:gray;} //设置div元素颜色gray
h1 {color:silver;} //设置h1元素颜色gray

就是说,你想让某个元素使用某个样式,就直接写 元素{样式} 即可。

2、选择器分组
分组就是把某几个元素写一起设置相同的样式即可
例:
div,p,strong{color:#FF0} //设置div,p,strong它们的颜色色值为 FF0
.part_one div a,.part_two a,.part_three p{color:#FFF} //设置.part_one div a 和 .part_two a 和 .part_three p 的文本颜色值为 FFF

3、类选择器
即元素中带有属性class在设置样式的时候可以使用 .classname{style} 这种方式来设置样式
例:
<div class="mydiv">This is content.</div>
.mydiv{color:#F00;}
这样就设置了class为mydiv的元素的文本颜色值为 F00

4、ID 选择器
即元素中带有属性id在设置样式的时候可以使用 #idname{style} 这种方式来设置样式
例:
<div id="mydiv1">This is content.</div>
#mydiv1{color:#F00;}
这样就设置了id为mydiv的元素的文本颜色值为 F00
(其实跟类选择器没有什么大的区别,只是权重的区别,同一个元素id选择器的样式会覆盖类选择器的样式,这里就不做详细讲解了,)

5、后代选择器
这个也是很常见的一个选择器,只是可能名称听起来有点不太熟悉
举个例子大家就明白了
例:
div ul{color:#FF0}
这就是一个简单的后代选择器,就是谁下面的谁,就是这样了

6、子元素选择器
这个选择器,在最开始的时候,莫名其妙的就被我忽略了,知道后来,突然间看到了一个案例,才又想起来 - -、
还是用例子说话比较好
例:
div > h1{color:red;}
<div><h1>my h1</h1></div> //这个有效
<div><div><h1>li h1</h1></div></div> //这个有效
<div><ul><li><h1>li h1</h1></li></ul></div>

这个例子中只会选择到第一行和第二行div中的h1而不会选择到第三行里面的h1,
因为这个子元素选择器只会选择它直属的子元素而不会选择它的孙子级别,或者孙子级别以下的元素,
而第三行里面的h1就属于li的直属子元素,而非div的直属子元素了,所以就不起效

7、相邻兄弟选择器
选择紧接在另一个元素后的元素,且二者有相同的父元素
h1 + p {color:red;}
<h1>header</h1>
<p>text</p>
<p>text</p>
这里会选择到h1下面的第一个p,而选择不到第二个p,因为第二个p并不是紧接在h1后面

li + li {font-weight:bold;}
<ul>
<li>li1</li>
<li>li2</li>
<li>li3</li>
</ul>
<ol>
<li>li1</li>
<li>li2</li>
<li>li3</li>
</ol>
这个样式,只能应用到ul和ol里面的第二、三个li元素,因为第一个li它的上面已经没有紧接着的li了,所以就不会有效果

8、伪类
听起来很高大上,但是如果说起来a:link,a:visited,a:hover,a:active 这些都是伪类的一种的话,是不是就比较亲民了,其实这个a的叫伪锚类(这名

字就更高大上了。。)
:focus
这个比较实用,可以用在input text 里面设置背景
input:focus{background-color:yellow;}
<input type="text" name="fname" />
<input type="text" name="lname" />
<input type="submit" value="Submit" />
这样的话,按钮点下去的时候也会背景变黄,这就有点不爽了,可以随便扩展一下
如:
input[type="text"]:focus{background-color:yellow;}
这样submit按钮就点下去的时候不会变黄了

:first-child
必须声明 DOCTYPE,这样 :first-child 才能在 IE 中生效。
p:first-child {font-weight: bold;}
li:first-child {font-weight: bold;}

<p>test words1</p>
<ul>
<li>li1</li>
<li>li2</li>
<li>li3</li>
</ul>
<ul>
<p>test words ul p</p>
<li>li1</li>
<li>li2</li>
<li>li3</li>
</ul>
<p>test words2</p>
<p>test words3<p>test words4</p></p>
first-child伪类,刚开始理解的时候有点无奈,总是以为是谁下面的第一个元素,搞半天,才弄明白,原来是第一个这个元素
就想上面的html一样
css会选择到的是 第一个p 即:<p>test words1</p>,和第二个ul中的p <p>test words ul p</p>,剩余的p都不会被选择
同样会选择到每个ul中的第一个li,因为他们拥有不同的父级
注:如果已规定 !DOCTYPE,那么 Internet Explorer 8 (以及更高版本)支持 :focus 伪类。

:lang
说实话,这个,我还真搞不明白什么时候用它比较好 - -、 希望哪个看到的大大同样能为大家解答一下,tks~!
:lang 类为带有值为 "no" 的 lang 属性的 q 元素定义引号的类型
q:lang(no){quotes: "~" "~" }
<p>text <q lang="no">what?</q></p>

9、伪元素(这块我使用到的比较少,查了一下用法,给大家上写实例吧)
:first-letter 向文本的第一个字母添加特殊样式(只能用于块级元素)
p:first-letter{color:#ff0000;font-size:xx-large;}
这样就设置了p中的首字母颜色 F00 字体大小为 xx-large

伪元素可以与 CSS 类配合使用:
p.article:first-letter{color: #FF0000;}
<p class="article">This is a paragraph in an article。</p>
上面的例子会使所有 class 为 article 的段落的首字母变为红色。

下面的属性可应用于 "first-letter" 伪元素:
font
color
background
margin
padding
border
text-decoration
vertical-align (仅当 float 为 none 时)
text-transform
line-height
float
clear

:first-line 向文本的首行添加特殊样式
这个我自己感觉没什么用,挺少见有只给首行加不同样式的
p:first-line{color:#0000ff;}

:before 在元素之前添加内容
这种我经常用在清楚浮动上面,效果挺不错
div:after{clear:both;content:".";display:block;height:0;visibility:hidden;font-size:0;}下面是网上的案例:
h1:before{content:url(images/logo.gif)}
在h1之前添加一个图片

:after 在元素之后添加内容
h1:after {content:url(images/logo.gif)}
在h1之后添加一个图片

10、属性选择器
对于 IE8 及更早版本的浏览器中的 [attribute=value],必须声明 <!DOCTYPE>。
下面列举出来属性选择器的用法
[attribute] 用于选取带有指定属性的元素。
例:
[title]{color:F00;}
<h1 title="hello css">hello h1~!</h1>
<h2>hello h2~!</h2>
这样就可以设置元素带有title属性的文本颜色为 F00 ,即h1的颜色将会被设置为 F00 ,但h2的将不被控制
*[title]{color:F00;} //设置带有title属性的元素文本颜色为 F00
a[title]{color:F00;} //设置带有title属性的a元素颜色为 F00
.mydiv ul li a[title]{color:F00;} //设置类名为mydiv下面的ul下面的li下面的带有title属性的a元素颜色为 F00
#mydiv ul li a[title]{color:F00;} //设置id名为mydiv下面的ul下面的li下面的带有title属性的a元素颜色为 F00

[attribute=value] 用于选取带有指定属性和值的元素。
这个功能在某些特定情况下是很实用的,比如高亮,就不用使用jq或者后台程序来判断,只用css来就可以实现
例:
a[target="_blank"]{color:yellow;} //这样就设置了所有target属性值为_blank的a元素的颜色为yellow
h1[title="mytitle"]{color:yellow;} //这样就设置了所有title属性值为mytitle的h1元素的颜色为yellow
上面两个例子看过之后,是否就会想出在某些特定情况下的高亮实现方法了呢?

[attribute~=value] 用于选取属性值中包含指定词汇的元素。
这种用法,第一次见到的时候还是在wordpress里面,这里就以一个简单的例子来看一下
img[title~="first"]{border:3px solid yellow} //这样就设置了下方图片title 属性中包含单词first的图片会带有黄色边框

<img src="a.jpg" title="this is first img" />
<img src="b.jpg" title="this is second img" />

[attribute|=value] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。

[class|=my]{background:yellow;}
<h1 class="my-header">this is header</h1>
<p class="my-text">this is text</p>
<p class="my-content">this is content</p>
<p class="my">this is content</p>
<p class="my content">this is content</p>
<p class="mycontent">this is content</p>
<p class="my_content">this is content</p>
只有前四个才会应用样式,后三个都不行。但是我不明白为什么第五个就也不行,希望有能为为大家解答的大大出现

[attribute^=value] 匹配属性值以指定值开头的每个元素。
这个用法也是在wordpress里面常见的,控制性很强大
div[class^="my"]{background:#FF0;}
<div class="my">this is first</div> //这个会有效果
<div class="my_first">this is first</div> //这个会有效果
<div class="my-first">this is first</div> //这个会有效果
<div class="second">this is second</div>
<div class="third_my">this is third</div>

[attribute$=value] 匹配属性值以指定值结尾的每个元素。
这个功能就跟上面的差不多了,上一个是开头,这个是结尾
div[class$="my"]{background:#ffff00;}
<div class="my_first">this is first</div>
<div class="second">this is second</div>
<div class="third_my">this is third</div> //这个会有效果
<div class="third-my">this is third</div> //这个会有效果
<div class="my">this is third</div> //这个会有效果

[attribute*=value] 匹配属性值中包含指定值的每个元素。
上面两个,一个开头,一个结尾,这个就是包含了
div[class*="my"]{background:#ffff00;}
div[class$="my"]{background:#ffff00;}
<div class="my_first">this is first</div> //这个会有效果
<div class="second">this is second</div>
<div class="secmyond">this is second</div> //这个会有效果
<div class="sec-my-ond">this is second</div> //这个会有效果
<div class="third_my">this is third</div> //这个会有效果
<div class="third-my">this is third</div> //这个会有效果
<div class="my">this is third</div> //这个会有效果

这些东西,不知道在博客园里面会有多少人能看到,我就当是记录自己的一些东西吧。
这篇博文并不深入,而且我自己的见解并不多,还有很多要学习的,只是在我工作学习中看到、使用到的一些总结,如果有错误的地方,还希望大家能

为我指点出来,互相学习感激不尽。

最后,发现写这个东西还挺累,真不知道那些几百几千篇博文的大大们,咋写的,膜拜一下他们,哈哈!

关于 CSS 选择器

时间: 2024-11-06 06:50:30

关于 CSS 选择器的相关文章

CSS选择器

CSS选择器有:id选择器.派生选择器 1.id选择器 id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式. id 选择器以 "#" 来定义. #red {color:red;} #green {color:green;} <p id="red">这个段落是红色.</p> <p id="green">这个段落是绿色.</p> 2.派生选择器 在现代布局中,id 选择器常常用于建立派生

CSS选择器优先级【转】

样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External style sheet <(内部样式)Internal style sheet <(内联样式)Inline style 有个例外的情况,就是如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式. 示例如下: <head>     <style type="text/css&

关于css选择器的一些事 第一章 基本选择器!

关于选择器,好多人小伙伴只用了最基本的几个选择器,感觉这玩意没有啥学的,讲道理,确实也没啥学的.但是,选择器种类掌握的越多,编写代码起来就会越轻松,为啥呢.举个例子吧!先上一串代码和效果,就知道我想表达什么了! 上面一个五列的li,代码如下 <style> *{margin:0;padding: 0;list-style: none} ul{display: flex} li{flex: 1;text-align: center;border-left: 1px solid red} li:n

Day48:HTML(form标签)、CSS选择器

一.表单标签<form> 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互. 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含textarea.select.fieldset和 label标签. 表单属性 action: 表单提交到哪.一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理,比如https://www.sogou.com/web method: 表单的提交方式 post/get默认取值就是ge

最常用的五类CSS选择器

一些新手朋友对选择器一知半解,不知道在什么情况下运用什么样的选择器,这是一个比较头疼的问题,针对新手朋友,对CSS选择器作一些简单的说明,希望能对大家的学习工作有一定的帮助,更多的CSS知识请参考Webjx.com的其他文章. 准确而简洁的运用CSS选择器会达到非常好的效果.我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果.在实际工作中,最常用的选择器有以下五类: 一.标签选择器: 顾名思议,标签选择器是直接将HTML标签作为选择器,可以是p.

【CSS】使用CSS选择器

CCS选择器的作用是找出某类元素.以便使我们使用style元素或者外部样式表对这类元素设置样式. 1.使用CSS基本选择器 有些选择器使用起来非常简单,我们把这部分选择器称为基本选择器(basic selector).开发人员可使用这类选择器在文档中进行比较宽泛的选择,也可以将其看作结合多种选择器进行特殊选择的基础. 1.1 选择所有元素 通用选择器匹配文档中的所有元素.它是最基本的选择器,不过使用很少,因为匹配过于广泛. 下面代码是一个使用通用选择器的样式示例: <!DOCTYPE html>

CSS选择器优先级比较

CSS选择器的优先级,一般根据就近原则,更准确一点,根据选择器的权值大小比较,权值越高,则优先级越高.如果加上!important则优先级最高. 权值大小: !important 1000 id 100 class 10 属性 10 伪类 10 伪元素 10 标签 1 通配符* 0

CSS选择器总结

最近在www.w3school.com.cn学习了CSS选择器,下面做一个知识汇总.部分源码来自www.w3school.com.cn! 插入样式表的方法有三种: 第一种:外部样式表 <head> <link rel="stylesheet" type="text/css" href="mystyle.css" /> </head> 第二种:内部样式表 <head> <style type=&

第 13 章 CSS 选择器[上]

学习要点: 1.选择器总汇 2.基本选择器 3.复合选择器 4.伪元素选择器 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 选择器,通过选择器定位到想要设置样式的元素.目前 CSS 选择器的版本已经升级至第三代,即 CSS3 选择器.CSS3 选择器提供了更多.更丰富的选择器方式,主要分为三大类. 一.选择器总汇 本节课主要涉及到三种选择器:基本选择器.复合选择器和伪元素选择器,具体如下: 选择器 名称 说明 CSS 版本 * 通用选择器 选择所有元素 2 <type> 元素选择器

CSS 选择器大全

CSS选择器用于选择你想要的元素的样式的模式. "CSS"列表示在CSS版本的属性定义(CSS1,CSS2,或对CSS3). 选择器 示例 示例说明 CSS .class .intro 选择所有class="intro"的元素 1 #id #firstname 选择所有id="firstname"的元素 1 * * 选择所有元素 2 element p 选择所有<p>元素 1 element,element div,p 选择所有<