css选择器

CSS(Cascading Style Sheet),中文译为层叠样式表,可以让设计者方便灵活地控制Web页面的外观表现。CSS是1996年由W3C审核通过并且推荐使用的。CSS的引入,就是为了使HTML语言更好地适应网页的美工设计。CSS详细规范说明要查阅CSS手册,或登录W3C官网(http://www.w3c.org)。
使用CSS,要了解常用的各种选择器。
1.标记选择器:
一个HTML页面由很多不同的标记组成,而CSS选择器就是声明哪些标记采用哪种CSS样式。每一种HTML标记的名称都可以作为相应的标记选择器的名称。示例:

<style>     
h1 {   
         color: red;         
         font-size:25px;  
}   
    </style>

每一个选择器都包含选择器本身、属性和值,其中属性和值可以设置多个,从而实现对同一标记名称声明多种样式。CSS语言对于所有属性和值都有相对严格的要求,如果声明的属性在CSS规范中没有,或者某个属性的值不符合该属性的要求,都不能使该CSS语句生效。 还有一种通配选择器“*”,表示其中设置的样式会应用于所有的网页元素。示例:

 * {    font-family:Verdada,Arial,sans-serif;   }```
**2.类选择器:**
类选择器的名称可以由用户自定义,属性和值与标记选择器一样,必须符合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>

 任何一个class选择器都适用于所有HTML标记,只需要用HTML标记的class属性即可。

**3.ID选择器:**
ID选择器只能在HTML页面中使用一次,利用HTML标记中的ID属性,有更强的针对性。示例:   

<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>


ID选择器也可以用于多个标记,但因为JavaScript等脚本语言也使用id,如果一个HTML中有两个相同的id标记,会导致查找id时出错,所以一个id最好只能赋予一个HTML标记。ID选择器不支持像class那样的多风格同时使用。

**4.交集选择器:**
交集选择器由两个选择器直接连接构成,其结果是选中二者各自元素范围的交集,其中第1个必须是标记选择器,第2个必须是类别选择器或者ID选择器。交集选择器是两个选择器连续书写,之间不能有空格。示例:

<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>

上面的代码中,定义了<p>标记的样式,也定义了.special类别的样式,此外还单独定义了p.special用于特殊的控制,而这个p.special中定义的风格样式仅仅适用于 <p class="special">标记,而不会影响使用了.special样式的其他标记。
**5.并集选择器:**
并集选择器,也称为集体声明,是同时选中各个基本选择器所选择的范围。任何形式的选择器都可以作为并集选择器的一部分。并集选择器是多个选择器通过逗号连接而成。示例:

<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>

 显示结果中,所有颜色都是紫色purple,字体大小都为15px。 对于网站中的一些小页面,例如弹出的小对话框和上传附件的小窗口等,希望这些页面中所有标记都使用同一种CSS样式,可以使用全局选择器“*”,就不用逐个声明了。

** 6.后代选择器**
可以通过嵌套的方式对特殊位置的HTML标记进行声明,把外层标记写在前面,内层标记写在后面,之间用空格分隔。当标记发生嵌套时,内层标记就成为外层标记的后代。嵌套示例:   <p>最外层文字<span>中间层文字<b>最内层文字</b></span></p> 后代选择器示例:

<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>

 后代选择器的使用很广泛,不仅标记选择器可以这样组合,类别选择器和ID选择器都可以进行嵌套。示例:   .special i{color:red;}   #one li{padding-left:5px;}   td.out .inside strong{font-size:16px;} 三层嵌套的对应HTML为:   <td class="out">      <p class="inside">         其他内容<strong>CSS控制的部分</strong>其他内容      </p>   </td> 选择器的嵌套在CSS编写中可以大大减小对class和id的声明,因此在构建页面HTML框架时通常只给外层标记定义class或者id,内层标记能通过嵌套表示的则利用嵌套的方式,而不需要再定义新的class或者专用id。只有当子标记无法利用此规则时,才单独进行声明。例如一个<ul>标记中包含多个<li>标记,而需要对其中某个<li>单独设置CSS样式时才赋给该<li>一个单独id或者类别,而其他<li>同样采用“ul li{...}”的嵌套方式设置。
**7.子选择器:**
后代选择器产生的影响不仅限于元素的直接后代,而且会影响到它的各级后代。因此,CSS还规定了子选择器,也就是只对直接后代有影响的选择器,而对以后的多个层的后代不产生作用。子选择器是用>连接。示例:   p>span{      color:blue;   }
**8. 相邻兄弟选择器**:
相邻选择器描述的是页面标记里两个元素左右相邻的关系。示例:   li+li {      color:blue;   } 相邻选择器用+来连接。
**9. 属性选择器:**
  a[link]{      text-decoration:none;   }   input[type="text"]{      width:33%;   }
**10.伪类:**
常用的伪类是基于超链接的a:link、a:visited、a:hover和a:active,分别表示平常的超链接、以点击过的超链接、鼠标移动经过的超链接和激活的超链接样式。 还有3个伪类,分别是first-child、:focus和:lang(n)。

:hover :visited :active :first-line :first-letter :first-child :nth-child :nth-of-type :nth-last-child
:nth-last-of-type

**11.伪元素:**
开发者还可以使用伪元素,而不必依赖元素标记来样式化Web文档里的某个项目。示例:      p:first-letter{        font-size:200%;         font-weight:bold;      } 伪元素包括:first-letter、:first-line、:before和:after。可以使用“:first-line”样式化第1行元素:      p:first-line{        font-size:200%;         font-weight:bold;      }

**以上选择器可以总结为下表:**

![692F.tmp.jpg](http://upload-images.jianshu.io/upload_images/1647763-8b58d3b5a9b31afd.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**1.属性选择符:**
CSS3中,属性选择符已经构成了非常强大的标记属性过滤体系:

![BEC0.tmp.jpg](http://upload-images.jianshu.io/upload_images/1647763-d05a056b5954e93d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**2.结构伪类选择符:**
可以通过文档结构的相互关系来匹配特定的元素。对于有规律的文档结构,可以减少class属性和id属性的定义。

![767C.tmp.jpg](http://upload-images.jianshu.io/upload_images/1647763-f33c746381439cf8.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**3.状态伪类选择符:**
可以设置元素处在某种状态下的样式:

![B745.tmp.jpg](http://upload-images.jianshu.io/upload_images/1647763-5ba5885f724c2991.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**4.伪元素选择符:**
CSS3还有一种伪元素选择符,针对CSS已经定义好的伪元素使用:

![B5C1.tmp.jpg](http://upload-images.jianshu.io/upload_images/1647763-4381ab77a33aed83.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

推荐阅读更多精彩内容

  • 1.CSS 元素选择器 最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。如果设置 H...
    饥人谷_小侯阅读 850评论 0 1
  • 其实平时用得多的选择器无非也就是那么几个,时间久了,许多不常用的选择器就慢慢忘记了。为了不让自己忘记这些选择器,今...
    盛夏晚清风阅读 1,810评论 0 5
  • 一、CSS选择器 关于CSS选择器,首先请看这里:CSS 选择器参考手册 通过以上,我们可以将CSS选择器分为以下...
    fehysunny阅读 2,237评论 0 2
  • 一、CSS选择器常见的有几种? 基本选择器 通配选择器~选择文档中所有的html元素,用一个*表示 元素选择器~选...
    dengpan阅读 959评论 0 3
  • CSS选择器结构逻辑图 接下来按照结构逻辑图具体讲解各个选择器的作用及用法; 基本选择器 基本选择器主要有以下5类...
    FoolishFlyFox阅读 555评论 0 8