css选择器标签选择器 七种基本的css选择器
各位老铁们好,相信很多人对css选择器标签选择器都不是特别的了解,因此呢,今天就来为大家分享下关于css选择器标签选择器以及七种基本的css选择器的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
css3有哪些选择器
css3选择器如下:
一、通配符选择器(*)
通配符选择器是用来选择所有元素,,也可以选择某个元素下的所有元素。
二、元素选择器(E)
元素选择器,是css选择器中最常见而且最基本的选择器。
三、类选择器(.className)
类选择器是以一独立于文档元素的方式来指定样式,使用类选择器之前需要在html元素上定义类名
四、id选择器(#ID)
ID选择器和上面说的类选择器是很相似的,在使用ID选择器之前也需要先在html文档中加注ID名称,这样在样式选择器中才能找到相对应的元素,不同的是ID选择器是一个页面中唯一的值,我们在类使用时是在相对应的类名前加上一个“.”号(.className)而id选择器是在名称前使用"#"如(#id),
五、后代选择器(E F)
后代选择器也被称作包含选择器,所起作用就是可以选择某元素的后代元素,比如说:E
F,前面E为祖先元素,F为后代元素,所表达的意思就是选择了E元素的所有后代F元素,请注意他们之间需要一个空格隔开。
六、子元素选择器(E>F)
子元素选择器只能选择某元素的子元素,其中E为父元素,而F为子元素,其中E>F所表示的是选择了E元素下的所有子元素F。这和后代选择器(E
F)不一样,在后代选择器中F是E的后代元素,而子元素选择器E> F,其中F仅仅是E的子元素而以。
七、相邻兄弟元素选择器(E+ F)
相邻兄弟选择器可以选择紧接在另一元素后的元素,而且他们具有一个相同的父元素,换句话说,EF两元素具有一个相同的父元素,而且F元素在E元素后面,而且相邻,这样我们就可以使用相邻兄弟元素选择器来选择F元素。
怎么提高CSS选择器效率
首先我们需要清楚,浏览器是如何读取选择器,以识别样式,并将相应的样式附于对应的HTML元素,达到美化页面的效果。Chris
Coyier曾在《Efficiently Rendering
CSS》一文中说过“浏览器读取你的选择器,遵循的原则是从选择器的右边到左边读取。换句话说,浏览器读取选择器的顺序是由右到左进行”。比如说:
div.nav> ul li a
上面的实例来说,浏览器首先会尝试在你的HTML标签中寻找“a”元素,接着在匹配“li和ul”,最后在去匹配“div.nav”。这就是前成所主的“选择器从右到左的原则”。
选择器的最后一部分,也就是选择器的最右边(在这个例子中就是a[title]部分)部分被称为“关键选择器”,它将决定你的选择器的效率如何?是高还是低。
老版本的浏览器可以过滤掉不匹配的选择器,而直接匹配更高效的选择器。记得David Hyatt在《Writing efficient
CSS for use in the Mozilla
UI》说过:“这个关键选择器可以大大提高选择器的性能,少检查一个给定的元素规则,就可以更有效的将样式匹配给对应的HTML元素。”那么如何让关键选
择器更有效,性能化更高呢?其实很简单,主要把握一点“越具体的关键选择器,其性能越高”
那么什么样类型的选择器,其性能高?什么样的类型的选择器性能低呢?下面我们就针对两个问题来展开具体的学习。
CSS选择器的效率
如果你阅读了本站的有关于选择器类型的介绍的话,你对选择器并不会感到陌生。就算你没读过,我想CSS选择器不会让我们觉得是新东西,比如我们
常用的基本选择器“元素标签选择器div”、“id选择器#header”、“类选择器.class”,或者说我们很少见的伪类选择器“:focus”以
及更复杂的css3选择器“:nth-child”等等。
选择器有一个固有的效率,我们来看Steve Souders给排的一个顺序:
id选择器(#myid)
类选择器(.myclassname)
标签选择器(div,h1,p)
相邻选择器(h1+p)
子选择器(ul> li)
后代选择器(li a)
通配符选择器(*)
属性选择器(a[rel="external"])
伪类选择器(a:hover,li:nth-child)
上面九种选择器的效率是从高到低排下来的,基中ID选择器的效率是最高,而伪类选择器的效率则是最底。详细的介绍大家还可以点击Writing efficient CSS selectors。
综合上面的顺序,我们清楚的知道,id和类名用于关键选择器上效率是最高的,而CSS3的仿伪类和属性选择器,虽然使用方便,但其效率却是最低的。我们下面一起来看几个实例的对比:
div#myid
效率要比下面的高:
#myid div
第一种选择器比第二种选择器效率高,大家或许会问为什么?其实根据前面所介绍的我们就不难理解了,因为第一个选择器的“关键选择器”使用了
“ID选择器”,而第二个选择器的“关键选择器”使用的是“标签选择器”,对比下来,“ID选择器”效率高过“标签选择器”,所以说第一个选择器的效率要
高于第二个选择器。
在类名或ID名前面加上标签也会致使选择器效率变低的,比如说:
div
#myid
上面两个选择的效率要高于下面的选择器:
p#mydiv
p.myclassname
来自Mozilla的几点建议
David在《Use efficient CSS selectors》中介绍了几种书写高效率的CSS选择器的方法,下面我将他们移到这里来让大家参考:
写道
1避免普遍规则
2不要在ID选择器前加标签名或类名
3不要在类名选择器前加标签名
4尽可能使用具体的类别
5避免使用后代选择器
6标签分类规则中不应该包含一个子选择器
7子选择器的问题
8借助相关继承关系
9使用范围内的样式表
如果你不够清楚上面所讲的是什么,你可以点击这里,他会让你更容易了解这些规则。
我们应该怎么做
前面说“ID选择器”的效率是最高的,那么今天我们写样式,为了提高选择器的效率,是不是我们要在每一个文档的HTML元素中都加入ID名呢?
我想这样的做法是没有的。对于一个有语义的代码编写和如何提高性能,以前他们之间如何的平衡?其实这个选择器的效率低一点,对于大多数网站来说并不会有太
大的影响,但对于一个大型的网站,产生大量的流量这就会有差别了,也就很值得我们去对他进行优化。那么我们就很有必要的去了解他们是如何工作,比如说,一
般情况下哪些选择器的使用效率更高。来看两个简单的例子:
#myid
上面的选择器高于下面的:
p#myid
后者的写法我发现还是有很多朋友这样写,但我不知道你为什么需要在ID前面加一个标签?难道你同一个页面会有多个相同的ID不成?
我们接下来在来看一个实例,用于列表上的,比如说我们制作导航菜单的:
#nav a
高效于:
#nav li a
上面只是介绍了两个常碰到的实例,在这里说这两个实例,主要目的是让你在今后的编写样式时,能注意这方面的的细节,从而加快你的代码效率。
css选择器
CSS(Cascading Style Sheet),中文译为层叠样式表,可以让设计者方便灵活地控制Web页面的外观表现。CSS是1996年由W3C审核通过并且推荐使用的。CSS的引入,就是为了使HTML语言更好地适应网页的美工设计。CSS详细规范说明要查阅CSS手册,或登录W3C官网( )。
使用CSS,要了解常用的各种选择器。
1.标记选择器:
一个HTML页面由很多不同的标记组成,而CSS选择器就是声明哪些标记采用哪种CSS样式。每一种HTML标记的名称都可以作为相应的标记选择器的名称。示例:
每一个选择器都包含选择器本身、属性和值,其中属性和值可以设置多个,从而实现对同一标记名称声明多种样式。CSS语言对于所有属性和值都有相对严格的要求,如果声明的属性在CSS规范中没有,或者某个属性的值不符合该属性的要求,都不能使该CSS语句生效。还有一种通配选择器“*”,表示其中设置的样式会应用于所有的网页元素。示例:
<html><head><title>class选择器</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>
<html><head><title>ID选择器</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>
<html><head><title>交集选择器</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>
<html><head><title>并集选择器</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>
<html><head><title>后代选择器</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选择器的答案你都知道了吗?欢迎再次光临本站哦!