常用选择器

元素选择器,即html标记如div,ul,li,p,h1~h6,table等。

  1. p { font-size:14px; }
  2. h1 { color:#F00; }

复合选择器, 由两个选择器直接构成,第一个必须是元素选择器,第二个必须是类选择器和ID选择器,这两个选择器之间不能有空格。

  1. p.special { color:#red}
  2. .special { color:#green; }

后代选择器,用来寻找特定元素或元素组的后代,后代选择器由其他两个选择器之间的空格表示。在这里只有h2标记里面的字体显示为红色,并且有10px的内边距。

  1. <div>测试1
  2. <h2>测试1</h2>
  3. </div>
  1. div h2{color:#F00;padding:10px;}

id选择器,标有特定 id 的 HTML 元素指定特定的样式,用#来表示。id 属性只能在每个 HTML 文档中出现一次。

  1. <div id="main"></div>
  1. #main {font-size:18px;}

类选择器,标有class的 HTML 元素指定特定的样式,用.来表示。类名的第一个字符不能使用数字。

  1. <div class="main"></div>
  1. .main {font-size:18px;}

伪类,表示表单元素或链接的状态。

如a:link,a:hover,a:visited,a:active,分别为用于链接尚未被用户访问的状态,用于用户移动他们的鼠标在元素上,而尚未触发或点击它的时候,用于用户访问过的链接,用于用户点击元素的情况。

通用选择器

像通配符的作用,可以匹配所有元素,由*表示,对页面上所有的元素应用样式。例如删除每个元素上默认的浏览器内边距和外边距。但是使用*这种方式加载很慢,不建议使用。

  1. * {margin:; padding:;}

高级选择器

子选择器,选择元素的直接后代。这个与后代选择器不一样,后者指选择一个元素的所有后代。

  1. <ul id="nav">
  2. <li>1</li>
  3. <li>1</li>
  4. <li>
  5. <ul>
  6. <li>2</li>
  7. <li>2</li>
  8. </ul>
  9. </li>
  10. </ul>
  1. #nav>li {padding-left:20px;}

在这个例子中,只有外层列表的li会有20px的左边距,内层嵌套的不会有影响。

相邻同胞选择器,定位同一个父元素下某个元素之后的元素。

  1. h2 + p {font-size:18px;}

属性选择器,根据某个元素的属性是否存在或属性值来寻找元素。

  1. a[title=”test”] {color:#F00;}

CSS的优先级

如何计算指定选择器的优先级?如果你考虑到将优先级表示为用逗号隔开的四个数字就会相当简单,比如:1, 1, 1, 1 或0, 2, 0, 1

  1. 第一个数字(a)通常就是0,除非在标签上使用style属性;
  2. 第二个数字(b)是该选择器上的id的数量的总和;
  3. 第三个数字(c)是用在该选择器上的其它属性选择器和伪类的总和。这里包括class (.example) 和属性选择器(比如 li[id=red]);
  4. 第四个数字(d)计算元素(就像table、p、div等等)和伪元素(就像:first-line等);
  5. 通用选择器(*)是0优先级;
  6. 如果两个选择器有同样的优先级,在样式表中后面的那个起作用。

让我们看几个例子,这样或许比较容易理解些:

  • #sidebar h2 — 0, 1, 0, 1
  • h2.title — 0, 0, 1, 1
  • h2 + p — 0, 0, 0, 2
  • #sidebar p:first-line — 0, 1, 0, 2

在下面的例子中,第一个将会起作用,因为它比第二个优先级高:

  • #sidebar p#first { color: red; } — 0, 2, 0, 1
  • #sidebar p:first-line { color: blue; } — 0, 1, 0, 2

文章参考

http://www.qianduan.net/taming-advanced-css-selectors.html

http://www.ruanyifeng.com/blog/2009/03/css_selectors.html

作者: ForEvErNoME
出处: http://www.cnblogs.com/ForEvErNoME/
欢迎转载或分享,但请务必声明文章出处。如果文章对您有帮助,希望你能 推荐 或 关注

 
 
 
 
 

CSS基础(三):选择器的更多相关文章

  1. HTML&CSS基础-属性选择器

    HTML&CSS基础-属性选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.html源代码 <!DOCTYPE html> <html> & ...

  2. HTML&CSS基础-常用选择器

    HTML&CSS基础-常用选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.html源代码 <!DOCTYPE html> <html> & ...

  3. CSS基础和选择器

    什么是CSS? CSS是指层叠样式表(Cascading Style Sheets),样式定义如何显示HTML元素,样式通常又会存在于样式表中.也就是说把HTML元素的样式都统一收集起来写在一个地方或 ...

  4. 李洪强和你一起学习前端之(3)Css基础和选择器

    大家好! 经过了前面的学习,是不是对前端的学习有了初步的了解.虽然我之前有iOS开发的经验,现在接触一门新的语言,对我来说 有一定的优势,但是一门技术对于谁来说都是公平的,我承认,我在接触新知识的时候 ...

  5. CSS基础--属性选择器、伪类选择器

    属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  6. CSS基础之选择器

    一:CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到,一个样式表时,就会按照. 二:CSS语法 每个CSS有两部分组成:选择器和声明 ...

  7. CSS基础及选择器

    CSS层叠样式表与表相分离.常用CSS2和CSS3. HTML引入CSS 1.行内样式 <div style="color:red"></div> 2.内部 ...

  8. Css基础-id选择器

    id 选择器以#来定义 <p id="pid">Hello css</p> #pid { color:red; } <div id="div ...

  9. CSS 基础 优先级 选择器 继承

    1.样式优先级 (内联样式)Inline style     >    (内部样式)Internal style sheet     >     (外部样式)External style ...

  10. CSS基础2——选择器

    前面说过样式规则.也知道了样式规则语法形式为:选择器+声明块 如:div{ color:black:padding:10px; }   div即表示选择器(此处是元素选择器),花括号里的内容就是声明块 ...

随机推荐

  1. 切身体验苹果Reminders的贴心设计

    今天吃晚饭时在iPhone的Reminders上添加了一个任务并且设定了时间. 回来后忘了这个任务,在iPad上看优酷视频时,iPad上的Reminders突然跳出提示框,优酷视频随之暂停. MacB ...

  2. C语言 线性表 链式表结构 实现

    一个单链式实现的线性表 mList (GCC编译). /** * @brief 线性表的链式实现 (单链表) * @author wid * @date 2013-10-21 * * @note 若代 ...

  3. tomcat安全配置

    1. 注释或删除 tomcat-users.xml 所有用户权限,看上去如下: <tomcat-users></tomcat-users> 2.  隐藏tomcat版本信息 1 ...

  4. nginx location模块--匹配规则

    Location语法语法:location [=|~|~*|^~] /uri/ { … } = --> 开头表示精确匹配 ^~ --> 开头表示uri以某个常规字符串开头,理解为匹配url ...

  5. SSL双向认证java实现(转)

    本文通过模拟场景,介绍SSL双向认证的java实现 默认的情况下,我认为读者已经对SSL原理有一定的了解,所以文章中对SSL的原理,不做详细的介绍. 如果有这个需要,那么通过GOOGLE,可以搜索到很 ...

  6. ServiceStack Web Service 创建与调用简单示列

    目录 ServiceStack 概念 ServiceStack Web Service 创建与调用简单示列 上篇文章介绍了ServiceStack是什么,本章进入主题,如何快速简单的搭建Service ...

  7. OJ-上海交大-1021. 从前有座山

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  8. iOS开发-友盟分享(3)

    iOS 友盟分享 这个主要是提到如何通过友盟去自定义分享的步骤: 一.肯定要去友盟官网下载最新的SDK包,然后将SDK导入到你的工程文件夹里面去: 二.注册友盟账号,将你的APP添加到你的账号里面然后 ...

  9. Django基础——Form&Ajax篇

    一 Form 在实际的生产环境中,登录和注册时用户提交的数据浏览器端都会使用JavaScript来进行验证(比如验证输入是否为空以及输入是否合法),但是浏览器可能会禁用JavaScirpt,同时也有人 ...

  10. [推荐]Zookeeper大型分布式系统的可靠协调系统知识介绍

    [推荐]Zookeeper大型分布式系统的可靠协调系统知识介绍 基于Zookeeper的锁开发手册 http://wenku.baidu.com/view/acbb8fc6102de2bd960588 ...