CSS选择符

2016-02-19 19:34 5 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的CSS选择符教程,一起来看看吧!超容易上手~

【 tulaoshi.com - Web开发 】

  一.选择符模式

  模式/含义/内容描述

  *

  匹配任意元素。(通用选择器)

  E

  匹配任意元素 E (例如一个类型为 E 的元素)。(类型选择器)

  E F

  匹配元素 E 的任意后代元素 F 。(后代选择器)

  E F

  匹配元素 E 的任意子元素 F 。(子选择器)

  E:first-child

  当元素 E 是它的父元素中的第一个子元素时,匹配元素 E 。(:first-child 伪类)

  E:link E:visited

  如果 E 是一个目标还没有访问过(:link)或者已经访问过(:visited)的超链接的源锚点时匹配元素 E 。(link 伪类)

  E:active E:hover E:focus

  在确定的用户动作中匹配 E 。(动态伪类)

  E:lang(c)

  如果类型为 E 的元素使用了(人类)语言 c (文档语言确定语言是如何被确定的),则匹配该元素。(:lang() 伪类)

  E + F

  如果一个元素 E 直接在元素 F 之前,则匹配元素 F 。(临近选择器)

  E[foo]

  匹配具有”foo”属性集(不考虑它的值)的任意元素 E 。(属性选择器)

  E[foo="warning"]

  匹配其“foo”属性值严格等于“warning”的任意元素 E 。(属性选择器)

  E[foo~="warning"]

  匹配其“foo”属性值为空格分隔的值列表,并且其中一个严格等于“warning”的任意元素 E 。(属性选择器)

  E[lang|="en"]

  匹配其“lang”属性具有以“en”开头(从左边)的值的列表的任意元素 E 。(属性选择器)

  DIV.warning

  仅 HTML。用法同 DIV[class~="warning"]。(类选择器)

  E#myid

  匹配 ID 等于“myid”的任意元素 E 。(ID 选择器)

  From:http://www.w3.org/TR/CSS2/selector.html

  我们用下面的例子来解释“[s]父元素[/s]”、“[s]子元素[/s]”、“[s]父/子[/s]”及“[s]相邻[/s]”这几个概念。

  div title="这是一个div"

  h1这是是h1的内容/h1

  p这是一个段落p的内容!strong这里是strong的内容/strong这是一个段落p的内容!/p

  /div

  从以上代码中,我们可以找出这样的关系:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  h1 和 p 同为 div 的“儿子”,两者分别同 div 形成“父/子”关系。

  h1,p,strong 都是 div 的“子元素”。(三者都包含在 div 之内)

  div 是 h1 和 p 的“父元素”。

  strong 和 p 形成“父/子”关系,strong 的“父元素”是 p 。

  但 strong 和 div 并非“父/子”关系,而是“祖孙”关系,但 strong 依然是 div 的“子(孙)元素”。

  div 是 h1 p strong 三者的“祖先”,三者是 div 的“子(孙)元素”。

  h1 和 p 两者是相邻的。

  继承上面的实例来具体演示一下E F的关系:假如,我们需要将 strong 内的内容二字变为绿色,我们可以有哪些方法呢?

  div strong {color:green;} /* - 正确。strong 是 div 的“子元素”*/

  p strong {color:green;} /* - 正确。strong 和 p 是“父/子”关系*/

  div strong {color:green;} /* - 错误!strong 虽然是 div 的“子(孙)元素”,但两者乃是“祖孙”关系,而非“父/子”关系,因此不能用 符号连接*/

  临近选择器和通用选择器:通用选择器以星号“*”表示,可以用于替代任何 tag 。

  实例:

  h2 + * { color:green }/*所有紧随 h2 的元素内的文字都将呈现红色*/

  二.选择符分类介绍

  1.通配选择符

  语法:

  * { sRules }

  说明:

  通配选择符。选定文档目录树(DOM)中的所有类型的单一对象。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  假如通配选择符不是单一选择符中的唯一组成,“*”可以省略。

  示例:

  *[lang=fr] { font-size:14px; width:120px; }

  *.div { text-decoration:none; }

  2.类型选择符

  语法:

  E { sRules }

  说明:

  类型选择符。以文档语言对象(Element)类型作为选择符。

  示例:

  td { font-size:14px; width:120px; }

  a { text-decoration:none; }

  3.属性选择符

  语法:

  E [ attr ] { sRules }

  E [ attr = value ] { sRules }

  E [ attr ~= value ] { sRules }

  E [ attr |= value ] { sRules }

  说明:

  属性选择符。

  选择具有 attr 属性的 E

  选择具有 attr 属性且属性值等于 value 的 E

  选择具有 attr 属性且属性值为一用空格分隔的字词列表,其中一个等于 value 的 E 。这里的 value 不能包含空格

  选择具有 attr 属性且属性值为一用连字符分隔的字词列表,由 value 开始的 E

  示例:

  h[title] { color: blue; }

  /* 所有具有title属性的h对象 */

  span[class=demo] { color: red; }

  div[speed="fast"][dorun="no"] { color: red; }

  a[rel~="copyright"] { color:black; }

  4.包含选择符

  语法:

  E1 E2 { sRules }

  说明:

  包含选择符。选择所有被 E1 包含的 E2 。即 E1.contains(E2)==true 。

  示例:

  table td { font-size:14px; }

  div.sub a { font-size:14px; }

  5.子对象选择符

  语法:

  E1 E2 { sRules }

  说明:

  子对象选择符。选择所有作为 E1 子对象的 E2 。

  示例:

  [Copy to clipboard] [ - ]CODE:

  body p { font-size:14px; }

  /* 所有作为body的子对象的p对象字体尺寸为14px */

  div ulli p { font-size:14px; }

  6.ID选择符

  语法:

  #ID { sRules }

  说明:

  ID选择符。以文档目录树(DOM)中作为对象的唯一标识符的 ID 作为选择符。

  示例:

  #note { font-size:14px; width:120px;}

  7.类选择符

  语法:

  E.className { sRules }

  说明:

  类选择符。在HTML中可以使用此种选择符。其效果等同于E [ class ~= className ] 。请参阅属性选择符( Attribute Selectors )。

  在IE5+,可以为对象的 class 属性(特性)指定多于一个值( className ),其方法是指定用空格隔开的一组样式表的类名。例如:div class="class1 class2"。

  示例:

  div.note { font-size:14px; }

  /* 所有class属性值等于(包含)"note"的div对象字体尺寸为14px */

  .dream { font-size:14px; }

  /* 所有class属性值等于(包含)"note"的对象字体尺寸为14px */

  8.选择符分组

  语法:

  E1 , E2 , E3 { sRules }

  说明:


  选择符分组。将同样的定义应用于多个选择符,可以将选择符以逗号分隔的方式并为组。

  示例:

  .td1,div a,body { font-size:14px; }

  td,div,a { font-size:14px; }

  9.伪类及伪对象选择符

  语法:

  E : Pseudo-Classes { sRules }

  E : Pseudo-Elements { sRules }

  说明:

  伪类及伪对象选择符。

  伪类选择符。请参阅伪类( Pseudo-Classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]。

  伪对象选择符。请参阅伪对象( Pseudo-Elements )[:first-letter :first-line :before :after]。

  示例:

  div:first-letter { font-size:14px; }

  a.fly :hover { font-size:14px; color:red; }

来源:http://www.tulaoshi.com/n/20160219/1621318.html

延伸阅读
标签: Web开发
坦率的说,我写CSS时,有至少1/4的时间是在纠结选择符该如何命名。随意的命名,会让你陷入尴尬。 举个例子,我们需要在一段文字里将某些词标红。所以为此建了一个.red { color: red; }。结果产品经理觉得,红色太刺眼了,改成橘色比较好吧。这下头大啦,难道写成.red { color: orange; }么...
标签: Web开发
说说nth-child(an+b)。 nth-child()这个东西,是CSS3中的一个伪类选择符,jQuery也拿来用了。 国内翻译教材《jQuery基础教程》中有一句这样的翻译“......因此CSS选择符$('div:nth-child(1)')取得的是作为其父元素第1个子元素的所有div。”初读此句,总觉得不易理解,于是便有了google的冲动(在这里要强烈BS一下教育...
标签: Web开发
选择符可以认为是一个增强版的getElementById方法。getElementById方法返回的是一个HTML元素,jQuery选择符返回的是HTML元素的一个包装。利用这个包装集,jQuery赋予了HTML元素更多的可以操作的方法。在JQuery中,处于核心地位的一个函数就是$。对,它就是一个函数,名字有点古怪。这个函数就是选择函数,其一般用法是 var obj=$(selector); ...
标签: Web开发
本文是《Even Faster Web Sites: Performance Best Practices for Web Developers (Paperback)》的最后一章。上篇帖子《Performance Impact of CSS Selectors》(中文版)最后提出了一段假设: 对大多数网站而言,优化CSS选择器活得的性能提升很小,不值得去计较。有些配合Javascript交互的CSS规则会明显的拖慢页面。这是应该关注的焦点。...
标签: Web开发
PPT:Taming CSS Selectors 作者:Nicole Sullivan 翻译:ytzong CSS 文件的大小和所引起的 HTTP 的请求数 是 CSS 性能的最关键因素 回流(reflow)和渲染时间 (非常!)没那么重要 副本(duplication)比陈旧的规则(stale rules)更糟糕 因为我们有工具处理后者 定义缺省值 不要在每处都重复编码 不好的: #weatherModule h3{co...

经验教程

11

收藏

86
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部