引言:CSS样式规则有两个主要部分。选择器决定将格式化应用到哪些元素。声明则定义要应用的格式化。

  • 构造选择器

选择器可以定义五个不同的标准来选择要进行格式化的元素。

  1. 元素的类型或者名称。如下所示。

    h1{
    color:red;
    }
  2. 元素所在的上下文。如下所示。
    h1 em{
    color:red;
    }
  3. 元素的类或ID。如下所示。
    /*类选择器*/
    .error{
    color:red;
    }
    /*ID 选择器*/
    #gaudi{
    color:red;
    }
  4. 元素的伪类或伪元素。如下所示。
    a:link{
    color:red;
    }
  5. 元素是否有某些属性和值。如下所示。
    a[title]{
    color:red
    }
  • 按名称选择元素

选择要格式化的元素,最常见的标准可能是元素的名称。如下所示:

h2{
color:red;
}

按照类型选择要格式化的元素   

  1. 输入selector,其中selector是目标元素的类型名称。
  2. 输入{。
  3. 输入希望应用到选中元素的样式,用属性:值得形式表示。
  4. 输入}结束样式规则。
  • 按类或ID选择元素

元素中标识了class或id,可以在选择器中使用这个标准,从而支队已标识的元素进行格式化。推荐使用类选择器。如下所示:

/*类选择器*/
.error{
color:red;
}
/*ID 选择器*/
#gaudi{
color:red;
}

    按类选择要格式化的元素

  1. 输入.(点号)。
  2. 不加空格,直接输入classname.
  3. 输入{。

  4. 输入希望应用到选中元素的样式,用属性:值得形式表示。

  5. 输入}结束样式规则。

按id选择要格式化的元素

  1. 输入#(井号)。
  2. 不加空格,直接输入id。
  3. 输入{。
  4. 输入希望应用到选中元素的样式,用属性:值得形式表示。
  5. 输入}结束样式规则。
  • 按上下文选择元素

根据元素的祖先、父元素或同胞元素来定位需要格式化的元素。

祖先(ancestor)是包含目标(后代,descendant)元素的任何元素,不管它们之间隔了多少代。

按祖先元素选择要格式化的元素

  1. 输入希望格式化的元素的祖先元素的选择器。
  2. 输入一个空格。
  3. 如果需要,对后续的每个祖先元素重复以上两步。
  4. 输入希望格式化的元素的选择器。
    .architect p{
    color:red;
    }

按父元素选择要格式化的元素

  1. 输入希望格式化的元素的父元素的选择器。
  2. 输入>(大于号)。
  3. 如果需要,对后续每代父元素重复以上两步。
  4. 输入希望格式化的元素的选择器。
    .architect>p{
    color:red;
    }

按相邻同胞元素选择要格式化的元素

  1. 输入包含在同一父元素中的、直接出现在目标元素前面的元素选择器。
  2. 输入+(加号)。
  3. 如果需要,对每个后续的同胞元素重复以上两步。
  4. 输入要格式化的元素的选择器。
    .architect p+p{
    color:red;
    }
  • 选择第一个或者最后一个子元素

有时需要选择仅作为某元素第一个或最后一个子元素的元素。需要使用伪类:firsh-child和:last-child。如下:

li:frist-child{
color:red;
} li:last-child{
color:red;
}

选择某元素的第一个或者最后一个子元素进行格式化

  1. 输入代表我们想应用样式的第一个或者最后一个子元素。
  2. 选择第一个子元素输入:first-child。最后一个子元素输入:last-child。
  • 选择元素的第一个字母或者第一行

分别使用:first-letter和:first-line伪元素只选择元素的第一个字母或第一行。如下:

P:first-letter{
color:red;
font-size:1.4em;
font-weight:bold;
} p:first-line{
color:red;
}

选择元素的第一个字母

  1. 输入要对其格式化的元素选择器。
  2. 输入:first-letter。 

选择元素的第一行

  1. 输入要对其第一行进行格式化的元素的选择器。
  2. 输入:first-line。 
  • 按状态选择链接元素

CSS允许根据链接的当前状态对他们进行格式化。

按状态选择要格式化的链接元素的步骤

  1. 输入a(a是链接元素的名称)。
  2. 输入:(冒号),前后都没有空格。
  3. 完成第2步后,执行下列操作影响链接状态。
  4. 输入link以设置从未被激活或指向,当前页没有被激活或指向的链接的外观。
  5. 输入visited以设置访问者已激活过链接的外观。
  6. 输入focus,前提是链接是通过键盘选择并已准备好激活的。
  7. 输入hover以设置光标指向链接时链接的外观。
  8. 输入active以设置激活过的链接的外观。
    /*未访问过*/
    a:link{
    color:red;
    }
    /*访问过的链接*/
    a:visited{
    color:orange;
    }
    /*链接获取焦点*/
    a:focus{
    color:purple;
    }
    /*光标停留在连接上*/
    a:hover{
    color:green;
    }
    /*激活链接时*/
    a:active{
    color:blue;
    }

    一定要按照以下的顺序定义规则:link、visited、focus、hover、active(缩写为LVFHA)。

  • 按属性选择元素

对给定属性或属性值的元素进行格式化。例如:

p[class]{
color:red;
}

按属性选择要格式化的元素

  1. 输入要考察其属性的元素的选择器。
  2. 输入[。
  3. 输入选择元素需要考察的属性的名称。
  4. 根据需要输入属性的匹配符号和匹配值。
  5. 输入。如果想要为元素指定其他属性或者属性值。重复2-4步骤。
属性选择器参考表
选择器 属性值
[attribute] 匹配指定属性,不论具体指是什么。
[attribute="value"] 完全匹配指定属性值。
[attribute~="value"] 属性值是以空格分隔的多个单词,其中有一个完全匹配指定值。
[attribute|="value"] 属性值以value-打头。
[attribute^="value"] 属性值以value开头,value为完成的单词或单词的一部分。
[attribute$="value"] 属性值以value结尾,value为完整的单词或单词的一部分。
[attribute*="value"] 属性值为指定值的子字符串。
/*选择rel属性值等于external的a元素*/
a[rel="external"]{
color:red;
} /*配置以空格相隔的多个单词中的一个*/
article[class~="barcelona"]{
color:red;
} /*这个选择器也能匹配,因为这个选择器匹配部分字符串*/
article[class*="barcelona"]{
color:red;
} /*选择任何带有lang属性且属性值以es开头的h2*/
h2[lang|="es"]{
color:red;
} /*选择任何带有lang属性且属性值以es开头的元素*/
*[lang|="es"]{
color:red;
} /*选择既有href属性,又有任意是属性值包含单词howdy的title属性的a元素*/
a[href][title~="howdy"]{
color:red;
} /*选择既有href属性,又有任意属性值包含how的title属性的a元素*/
a[href][title*="how"]{
color:red;
} /*匹配href属性值以http://开头的a元素*/
a[href^="http://"]{
color:red;
} /*匹配任何src属性值完全等于logo.png的img元素*/
img[src="logo.png"]{
border:1px solid green;
} /*匹配任何src属性值以.png结尾的img元素*/
img[src$=".png"]{
border:1px solid green;
}
  • 指定元素组

对于使用相同样式规则的多个元素,可以使用元素组设置样式规则。

将样式应用于元素组的步骤

  1. 输入第一个元素名称。
  2. 输入,(逗号)。
  3. 输入第二个元素名称。
  4. 对其他元素重复第二和第三步。
    h1,
    h2{
    color:red;
    }
  • 组合使用选择器

现实中常常需要组合使用以上技术,才能找到要格式化的元素。如:

/*选择em元素,包含在p元素中,这样的p元素是lang属性值以es开头的h2元素的直接相邻同胞元素,且class等于project的任何元素的子元素*/
.project h2[lang|="es"]+p em{
color:red;
}

css3 定义选择器的更多相关文章

  1. CSS系列:CSS3新增选择器

    1. CSS1定义的选择器 选择器 类型 说明 E 类型选择器 选择指定类型的元素 E#id ID选择器 选择匹配E的元素,且匹配元素的id为“id”,E选择符可以省略. E.class 类选择器 选 ...

  2. 【前端开发系列】—— CSS3属性选择器总结

    想想自己为什么要学CSS,作为一个开发过前端的人员来说,调试一个图片花了半天的时间,最后发现分隔符用错了,实在是一件很丢人的事情.因此,痛下决心来学习CSS,最近一周也会更新下相关的学习笔记. CSS ...

  3. CSS3 教程 选择器 标记一下防止 要找时404

    客 » Airen的博客 CSS3 选择器——基本选择器 作者:大漠 日期:2011-08-09 点击:6418  CSS的选择器,我想大家并不会陌生吧,因为天天在使用,但对于CSS3的选择器,要运 ...

  4. CSS选择器及CSS3新增选择器

    转自:http://www.cnblogs.com/libingql/p/4375354.html 1. CSS1定义的选择器 选择器 类型 说明 E 类型选择器 选择指定类型的元素 E#id ID选 ...

  5. css3的选择器

    先来做一下准备工作 页面的效果: 看到上面的框框了吗?我们就是通过给这些框框添加背景色的方式,来让大家,了解css3的选择器的效果,下面正式开始: 关联选择器 E1~E2 选择 E1 后面的兄弟 E2 ...

  6. CSS3常用选择器(三)

    在CSS3的选择器中,除了结构性伪类选择器外,还有一种UI元素状态伪类选择器.这些选择器的共同特征: 指定的样式只有当元素处于某种状态时才起作用,在默认状态下不起作用. 1.hover.focus.a ...

  7. CSS3 ::selection选择器

    一.介绍 之前看到有些网站选中内容的颜色和背景色都不是平时看到的蓝色和白色.今天有兴趣查看了一下,原来是一个很简单的CSS3的选择器::selection的用法. 上例子: <style> ...

  8. CSS3属性选择器与(:not)选择器

    一:css3属性选择器: img[alt]{ border:2px dashed #000; } 这个选择器会匹配页面标签中任何一个含有alt属性的图片标签.   还可以通过设定属性值来缩小匹配范围: ...

  9. CSS3之选择器

    总结了下CSS3新增的一些选择器. CSS3的选择器有基本选择器.属性选择器.伪类选择器几类. CSS3选择器 选择器 举例 例子描述 element1~element2 p~a 选择前面有 < ...

随机推荐

  1. Wix 安装部署(二)自定义安装界面和行为

    上一篇介绍了如何联合MSBuild来自动生成打包文件和对WIX的一些初步认识,http://www.cnblogs.com/stoneniqiu/p/3355086.html . 这篇会在上篇的基础上 ...

  2. 微软MSDN订阅用户已可提前手工下载Windows 10安装包

    在Windows 10发布之夜,当全世界都在翘首以盼Windows 10免费发布推送的到来,MSDN订阅用户可以立马享受一项令人项目的特殊待遇:手工下载Windows 10完整安装包+免费使用的激活密 ...

  3. C++ 面向对象编程

    <C++ Primer 4th>读书笔记 面向对象编程基于三个基本概念:数据抽象.继承和动态绑定.在 C++ 中,用类进行数据抽象,用类派生从一个类继承另一个:派生类继承基类的成员.动态绑 ...

  4. FreeIconMaker - 在线创建免费和时尚的图标

    在设计一个网站或 Web 应用程序时,你不能否认网页设计工具的重要性,这些工具有助于简化您的任务和完成您的项目.FreeIconMaker.com 是一个免费的在线图标制作工具,您也可以创建自己的模板 ...

  5. vbscript调用WMI一键式式发布网站

    作为.net开发,在window环境下,不得不熟悉些脚本语言,来减轻些日常开发中所遇到的一些繁杂的事情,比如自动发布网站,自动发布网站等等. WMI windows管理程序接口,可用各种与语言调用,方 ...

  6. 重学JAVA基础(六):多线程的同步

    1.synchronized关键字 /** * 同步关键字 * @author tomsnail * @date 2015年4月18日 下午12:12:39 */ public class SyncT ...

  7. 【锁】Oracle锁系列

    [锁]Oracle锁系列 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ...

  8. Leetcode-203 Remove Linked List Elements

    #203.   Remove Linked List Elements Remove all elements from a linked list of integers that have val ...

  9. android: 使用 IntentService

    9.5.2 使用 IntentService 话说回来,在本章一开始的时候我们就已经知道,服务中的代码都是默认运行在主线程 当中的,如果直接在服务里去处理一些耗时的逻辑,就很容易出现 ANR(Appl ...

  10. Cause for NullPointerException android.support.v7.widget.RecyclerView.onMeasure

    because you have not set LinearLayoutManager to RecyclerView. for example: mRecyclerView = (Recycler ...