CSS:选择器大全

简介:

一、概念:

    CSS主要的作用就是给网页中的dom元素设置样式,选择器则是用来匹配dom元素的。

         CSS中的选择器有很多种,常用的分别是标签选择器(根据元素标签名称),类选择器(根据元素class属性),id选择器(根据元素id属性),并且三种选择器可以相互结合使用

 

二、更多:

选择器是CSS的核心,从最初的元素、class/id选择器,演进到伪元素、伪类,以及CSS3中提供的更丰富的选择器,定位页面上的任意元素开始变得愈发的简单。

 

三、选择器表:

  

四、详解:

  1、元素选择器

    这是最基本的CSS选择器,HTML文档中的元素本身就是一个选择器:

      p {line-height:1.5em; margin-bottom:1em;}  //设置p元素行高1.5em,距离外填充1em 

 

  2、关系选择器

      E F:后代选择器,该选择器定位元素E的后代中所有元素F

       ul li {margin-bottom:0.5em;} // 定位ul内的所有li元素

     E > F:子选择器,该选择器定位元素E的直接子元素中的所有元素F,它将忽略任何进一步的嵌套:

        ul > li {list-style:none;} //仅限ul的直接子元素li,如果li里面还嵌套着另一个 ul 结构时,最里面的 li 将被忽略

      E + F:相邻兄弟选择器,该选择器定位与元素E具有相同父元素且在标记中紧邻E的元素F:

        li + li {border-top:1px solid #ddd;} //定位具有相同父元素ul里除第一个li之外的所有li

      E ~ F:一般兄弟选择器,该选择器定位与元素E具有相同父元素且在标记中位于E之后的所有元素F:

        h1 ~ p {color:#f00;} //定位具有相同父元素的,h1标签之后的所有p标签

 

  3、属性选择器

    E[attr]:该选择器定位具有属性attr的任何元素E:

      input[required] {border:1px solid #f00;} //定位页面里所有具有必填属性"required"的input

    E[attr=val]:该选择器定位具有属性attr且属性值为val的任何元素E:

      input[type=password] {border:1px solid #aaa;} //定位页面里的密码输入框

    E[attr|=avl]:该选择器定位具有属性attr且属性值为val或以val-开始的任何元素E:

      p[class|=a] {color:#333;} //定位页面里所有的P段落里具有class属性且属性值为a或是a-开始的,比如class="a"以及class="a-b"

    E[attr~=val]:该选择器定位具有属性attr且属性值为完整单词 val 的任何元素E:

      div[title~=english] {color:#f88;} //定位页面里所有具有属性title且属性值里拥有完整单词english的div容器,比如title="english"以及title="a english"

    E[attr^=val]:该选择器定位具有属性attr且属性值以val开头的任何元素E:

      div[class^=a] {color:#666;} //定位页面里具有属性class且属性值以a开头的div容器,比如class="a"以及class="ab"

    E[attr$=val]:该选择器与E[attr^=val]正好相反,定位具有属性attr且属性值以val结尾的任何元素E:

      div[class$=a] {color:#f00;} //定位页面里具有属性class且属性值以a结尾的div窗口,比如class="nba"以及class="cba"

    E[attr*=val]:该选择器与E[attr~=val]相似,但更进一步,定位具有属性attr且属性值任意位置包含val的元素E,val可以是一个完整的单词,也可以是一个单词中的一部分:

      a[title*=link] {text-decoration:underline;} //定位所有title里具有link字符串的a链接

 

  4、伪类

    :link:未访问的链接;

         a:link {color:black font-size:12px;}//未访问时,字体为黑色,字体大小为12像素

    :visited:已访问的链接,不建议使用;

      a:visited {color:red  font-size:22px;}//访问后,字体为红色,字体大小为22像素

    :hover:鼠标移动到容器,不仅限于链接,可用于页面中的任何元素;

      a:hover {color:blue font-size:16px;} //鼠标按住并悬停时,字体为蓝色,字体大小为16像素

    :active:被激活时的状态,不仅限于链接,可用于任何具有tabindex属性的元素;

      a:active {color:purple font-size:18px;}//鼠标一松开时,字体为紫色,字体大小为18像素

    :focus:获得焦点时状态,不仅限于链接,可用于任何具有tabindex属性的无线:

      input:focus {border:1px solid #333;} //输入框获得焦点时的样式

    :enabled:已启用的界面元素:

      input:enabled {border:1px solid #899;} //输入框输入功能启用时的样式

    :disabled:已禁用的界面元素:

      input:disabled {background:#eee;} //输入框输入功能被禁用时的样式

    :target:该选择器定位当前活动页面内定位点的目标元素:

      #info:target {font-size:24px;} //当访问的URL网址为 123.html#info 时,id="info"将加载这个字体样式

    :default:应用于一个或多个作为一组类似元素中的默认元素的UI元素;

    :valid:应用于有效元素:

      input:valid {border:1px solid #6a6;} //当输入框验证为有效时加载这个边框样式,基于type或pattern属性

    :invalid:应用于空的必填元素,以及未能与type或pattern属性所定义的需求相匹配的元素:

      input:invalid {border:1px solid #f00;} //当输入框为空且必填时,或已填写但验证无效时,加载此边框样式

    :in-range:应用于具有范围限制的元素,其中该值位于限制内;比如具有min和max属性的number和range输入框;

    :out-of-range:与:in-range选择相反,其中该值在限制范围外;

    :required:应用于具有必填属性required的表单控件;

    :optional:应用于没有必填属性required的所有表单控件

    :read-only:应用于其内容无法供用户修改的元素;

    :read-write:应用于其内容可供用户修改的元素,比如输入框;

    :root:根元素,始终指html元素;

    E F:nth-child(n):该选择器定位元素E的第n个子元素的元素F:

      div.class p:nth-child(3) {color:#f00;} //class="class"的div容器里的第3个元素p,如果第3个子元素不是p,此样式将失效

    E F:nth-last-child(n):该选择器定位元素E的倒数第n个子元素的元素F;

    E:nth-of-type(n):该选择器定位元素E的第n个指定类型子元素;

    E:nth-lash-of-type(n):该选择器定位元素E的导数第n个指定类型子元素:.class p:nth-child(2) 与 .class p:nth-of-type(2) 的区别在于,如果.class里的第2个子元素不是P元素时,.class p:nth-child(2) 的样式将无效,而.class p:nth-of-type(2) 将定位在 .class 里的第2个p元素 。nth-child(n)、nth-last-child(n)、nth-of-type(n)、nth-last-of-type(n),这其中的 n 可以使用数字静态式,比如 .nth-child(2n+1) 将匹配第1、3、5...个元素

    E:first-child:父元素的第一个子元素E,与:nth-child(1)相同;

    E:last-child:父元素的倒数第一个子元素E;

    E:first-of-type:与:nth-of-type(1)相同;

    E:last-of-type:与:nth-last-of-type(1)相同;

    E:only-child:父元素中唯一的子元素E;

    E:only-of-type:父元素中唯一具有该类型的元素E;

    E:empty:没有子元素的元素,没有子元素包括文本节点;

    E:lang(en):具有使用双字母缩写(en)表示的语言的元素;

    E:not(exception):该选择器将选择与括号内的选择器不匹配的元素:

      p:not(.info) {font-size:12px;} //匹配所有class值不为info的p元素

 

  5、伪元素

    伪元素可用于定位文档中包含的文本,为与伪类进行区分,伪元素使用双冒号 :: 定义,但单冒号 : 也能被识别。

    ::first-line:匹配文本首行;

    ::first-letter:匹配文本首字母;

    ::before 与 ::after :使用 contnet 属性生成额外的内容并插入在标记中:

      a[href^=http]::after {content:"link"} //在页面的a链接的后面插入文字link

    ::selection:匹配突出显示的文本:

      ::selection {background:#444; color:#fff;} //定义选中的文本颜色与背景色

    当然,如果要方便的使用这些强大的CSS选择器的话,使用Chrome、Firefox之类的浏览器吧,最起码得抛弃IE9以下的IE版本浏览器吧。

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/5864140.html ,如需转载请自行联系原作者
相关文章
|
2月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
34 1
|
2月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
46 1
|
6天前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
23 2
|
2月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
2月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
73 1
|
27天前
|
前端开发
CSS常见的选择器
CSS常见的选择器
15 0
|
2月前
|
前端开发 JavaScript
【CSS】选择器
【CSS】选择器
|
3月前
|
前端开发
CSS3选择器
【8月更文挑战第23天】CSS3选择器。
31 1
|
3月前
|
前端开发
CSS中的层级选择器&伪类选择器和伪元素选择器
CSS中的层级选择器&伪类选择器和伪元素选择器
|
3月前
|
前端开发
HTML+CSS基础知识(2)选择器的使用、盒子模型的讲解、列表的使用
该博客文章详细介绍了HTML和CSS的基础知识,包括CSS样式的应用方式、语法规则、选择器的使用、盒子模型、内边距、外边距、元素的显示类型以及overflow属性处理溢出内容的方法,并通过代码示例和测试结果截图展示了这些知识点在网页设计中的应用。
HTML+CSS基础知识(2)选择器的使用、盒子模型的讲解、列表的使用