css的选择器的详细介绍_第1页
css的选择器的详细介绍_第2页
css的选择器的详细介绍_第3页
css的选择器的详细介绍_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

css的选择器的详细介绍、,-、•前言css选择器,是前端的基本功,只要你是一个前端,这个一定要掌握!今天之所以要重温一下css选择器,主要是和大家再复习一下css选择器中的一些常用符号的使用,例如“+、〜、人、$、>、*”等的使用!之所以要复习呢,是因为我一个写后端的哥们,前端写的也很好,但是他今天突然问我,css中加号和大于号是啥意思?我说,这个貌似jquery中也有吧!好吧,可能这些符号不常用,造成我们对这些符号的陌生!那么今天,我们一起再来复习一下吧!大家在右侧搜索框中搜索“选择器”,会发现,我之前写过css用伪类nth-child,进行奇偶行的选择。今天,关于css3伪类选择器,我就不多描述了!同时大家也可以看一下我之前写的“jquery常用选择器总结”,其实,jquery选择器和css选择器类似!特别是在属性选择和组合选择上面!基本选择器ID选择器:#header{}类选择器:.header{}元素选择器:div{}子选择器:ul>li{}后代选择器:divp{}伪类选择器:a:hover{}属性选择器:input[type="text"]{}id优先级高于类class;后面的样式覆盖前面的;指定的高于继承;css选择器之特殊符号1、 >(大于号)大于号代表选择子元素,这个我们经常用,值得注意的是hl>strong和hlstrong的区别这2个都是选择子元素,但是h1>strong只选择某个元素的子元素。例如如下:<hl>Thisis<strongclass="haorooms">very</strong><strong>very</strong>important.</hl><hl>Thisis<em>really<strong>very</strong></em>important.</hl>h1>strong,只有第一个h1下面的strong被选中,第二个不起作用。但是h1strong,所有的hl下面的strong都被选中了。2、 +号选择相邻兄弟,这点和jquery相同。例如:<h1>Thisisaheading.</h1><p>Thisisparagraph.</p><p>Thisisparagraph.</p>h1+p{margin-top:50px;}〃h1后面的第一个p元素会有50px的间距。代表选择紧接在h1元素后出现的段落属性选择器css属性选择器用处也比较多,之前参加第二节css开发者大会的时候,有的老师分享,他们公司基本上都是用属性选择器来写css,这样字面明了,他们都不怎么用class。我感觉这个要分情况,那个老师讲的项目是angularjs的,因此属性选择器比较实用!举几个例子1、 把包含标题(title)的所有元素变为红色如下写:*[title]{color:red;}2、 将同时有href和title属性的HTML超链接的文本设置为红色a[href][title]{color:red;}3、 指定将/post/css_wl_wys这篇文字颜色变红a[href="/post/css_wl_wys"]{color:red;}当然也可以多个属性一起,这里就不多举例了!4、 属性与属性值必须完全匹配我们来看一个class的div<pclass="importanthaorooms">Thisparagraphisaveryimportantwarning.</p>我们用class选择,大家都晓得,很简答,但是用属性选择,我们用如下:p[class="important"]是选择不到的,因为还有一个haorooms。因此,必须这样写:p[class="importanthaorooms"]{color:red;}5、 根据部分属性值选择看到上面多个属性必须完全匹配,很不爽,那么有没有可以部分匹配属性的方法呢?答案是有的。还是上面的例子,我们如下选择就可以了!p[class~="haorooms"]{color:red;}如果需要根据属性值中的词列表的某个词进行选择,则需要使用波浪号(~)。6、 字符串匹配属性选择器上面说到了~(波浪号选择),有朋友会把他和*=搞混,例如,如下例子:<phaorooms="importanthaorooms">Thisparagraphisaveryimportantwarning.</p>我们可以用[haorooms*="haoroom"]来选择,这个和〜的区别就是包含,〜是几个属性直接有空格,空格中的一个。*=没有空格,但是包含某个字符。除此之外,还有开头选择和结尾选择,和jquery类似:[haoroomsA="haorooms"] 选择haorooms属性值以"haorooms"开头的所有元素[haorooms$="haorooms"] 选择haorooms属性值以"haorooms"结尾的所有元素7、 特定属性选择类型请看下面的例子:*[lang|="en"]{color:red;}上面这个规则会选择lang属性等于en或以en-开头的所有元素。因此,以下示例标记中的前三个元素将被选中,而不会选择后两个元素:<plang="en">Hello!</p><plang="en-us">Greetings!</p><plang="en-au">G'day!</p><plang="fr">Bonjour!</p><plang="cy-en">Jrooana!</p>CSS的基本选择器1、元素选择器这是最基本的CSS选择器,HTML文档中的元素本身就是一个选择器:p{line-height:1.5em;margin-bottom:1em;}2、关系选择器EF:后代选择器,该选择器定位元素E的后代中所有元素F:ulli{margin-bottom:0.5em;}E>F:子选择器,该选择器定位元素E的直接子元素中的所有元素F,它将忽略任何进一步的嵌套:ul>li{list-style:none;}//仅限ul的直接子元素li,如果li里面还嵌套着另一个ul结构时,最里面的li将被忽略E+F:相邻兄弟选择器,该选择器定位与元素E具有相同父元素且在标记中紧邻E的元素F:li+li{border-top:lpxsolid#ddd;}//定位具有相同父元素ul里除第一个li之外的所有liE〜F:一般兄弟选择器,该选择器定位与元素E具有相同父元素且在标记中位于E之后的所有元素F:hl〜p{color:#f00;}〃定位具有相同父元素的,hl标签之后的所有p标签3、 属性选择器E[attr]:该选择器定位具有属性attr的任何元素E:input[required]{border:1pxsolid#f00;}〃定位页面里所有具有必填属性"required"的inputE[attr=val]:该选择器定位具有属性attr且属性值为val的任何元素E:input[type=password]{border:lpxsolid#aaa;}//定位页面里的密码输入框E[attrl=avl]:该选择器定位具有属性attr且属性值为val或以val-开始的任何元素E:p[classl=a]{color:#333;}//定位页面里所有的P段落里具有class属性且属性值为a或是a-开始的,比如class="a"以及class="a-b"E[attr~=val]:该选择器定位具有属性attr且属性值为完整单词val的任何元素E:div[title〜=english]{color:#f88;}//定位页面里所有具有属性title且属性值里拥有完整单词english的div容器,比如title="glish"以及title="aenglish"E[attrA=val]:该选择器定位具有属性attr且属性值以val开头的任何元素E:div[classA=a]{color:#666;}〃定位页面里具有属性class且属性值以a开头的div容器,比如class="a"以及class="ab"E[attr$=val]:该选择器与E[attrA=val]正好相反,定位具有属性attr且属性值以val结尾的任何元素E:div[class$=a]{color:#f00;}〃定位页面里具有属性class且属性值以a结尾的div窗口,比如class="nba"以及class="cba"E[attr*=val]:该选择器与E[attr~=val]相似,但更进一步,定位具有属性attr且属性值任意位置包含val的元素E,val可以是一个完整的单词,也可以是一个单词中的一部分:a[title*=link]{text-decoration:underline;}〃定位所有title里具有link字符串的a链接4、 伪类:link:未访问的链接;:visited:已访问的链接,不建议使用;:hover:鼠标移动到容器,不仅限于链接,可用于页面中的任何元素;:active:被激活时的状态,不仅限于链接,可用于任何具有tabindex属性的元素;:focus:获得焦点时状态,不仅限于链接,可用于任何具有tabindex属性的无线:input:focus{border:lpxsolid#333;}//输入框获得焦点时的样式:enabled:已启用的界面元素:input:enabled{border:lpxsolid#899;}:disabled:已禁用的界面元素:input:disabled{background:#eee;}:target:该选择器定位当前活动页面内定位点的目标元素:#info:target{font-size:24px;}〃当访问的URL网址为123.html#info时,id="info"将加载这个字体样式:default:应用于一个或多个作为一组类似元素中的默认元素的UI元素;:valid:应用于有效元素:input:valid{border:1pxsolid#6a6;}〃当输入框验证为有效时加载这个边框样式,基于type或pattern属性:invalid:应用于空的必填元素,以及未能与type或pattern属性所定义的需求相匹配的元素:input:invalid{border:1pxsolid#f00;}//当输入框为空且必填时,或已填写但验证无效时,加载此边框样式:in-range:应用于具有范围限制的元素,其中该值位于限制内;比如具有min和max属性的number和range输入框;:out-of-range:与:in-range选择相反,其中该值在限制范围外;:required:应用于具有必填属性required的表单控件;:optional:应用于没有必填属性required的所有表单控件:read-only:应用于其内容无法供用户修改的元素;:read-write:应用于其内容可供用户修改的元素,比如输入框;:root:根元素,始终指html元素;EF:nth-child(n):该选择器定位元素E的第n个子元素的元素F:div.classp:nth-child(3){color:#f00;}〃class="class"的div容器里的第3个元素p,如果第3个子元素不是p,此样式将失效EF:nth-last-child(n):该选择器定位元素E的倒数第n个子元素的元素F;E:nth-of-type(n):该选择器定位元素E的第n个指定类型子元素;E:nth-lash-of-type(n):该选择器定位元素E的导数第n个指定类型子元素:.classp:nth-child(2)与.classp:nth-of-type(2)的区别在于,如果.class里的第2个子元素不是P元素时,.classp:nth-child(2)的样式将无效,而.classp:nth-of-type(2)将定位在.class里的第2个p元素nth-child(n)、nth-last-child(n)、nth-of-type(n)、nth-last-of-type(n),这其中的n可以使用数字静态式,比如.nth-child(2n+1)将匹配第1、3、5...个元素E:first-child:父元素的第一个子元素E,与:nth-child(1)相同;E:last-child:父元素的倒数第一个子元素E;E:first-of-type:与:nth-of-type(1)相同;E:last-of-typ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论