zoukankan      html  css  js  c++  java
  • css selector

    css 选择器

    选择器分组 

    选择器多声明
    1. 元素选择器 h1

    • 1.1 通配符选择器(*)
    • 1.2 类型/元素选择器(E)
    • 1.3 ID选择器(E#id)
    • 1.4 类选择器(E.class)

    2. 关系选择器

    • 包含选择器 E F{rules} 包含选择符将会命中所有符合条件的后代,包括儿子,孙子,孙子的孙子...
    • 子选择器 E>F 选择所有作为E元素的子元素F。子选择符只能命中子元素,而不能命中孙辈。
    • 相邻选择器 E+F 选择紧贴在E元素之后F元素,元素E与F必须同属一个父级。
    • 兄弟选择符(E~F) 选择E元素后面的所有兄弟元素F,元素E与F必须同属一个父级。

    需要注意的是,选择的只是同级的元素F,后代中的元素F不会被选择。

    出现在E元素之前的元素F,不会被选择到。

    3. 属性选择器

    • E[att] { sRules } 可以是多个[att1][att2], 可以是元素加上属性a[href]
    • E[att="val1"] 选择具有att属性且属性值等于val的E元素。
    • E[att~="val"] 选择具有att属性且属性值为一用空格分隔的字词列表,多个字词
    • 其中一个等于val的E元素(包含只有一个值且该值等于val的情况)
    • E[att^="val"] 选择具有att属性且属性值为以val开头的字符串的E元素
    • E[att$="val"] 选择具有att属性且属性值为以val结尾的字符串的E元素
    • E[att*="val"] 选择具有att属性且属性值为包含val的字符串的E元素
    • E[att|="val"] 元素E拥有att属性,并且值为val,或者值是以val-开头的,那么E将会被选择

    4. 伪劣选择器

    • E:link {sRules} 设置超链接a在未被访问前的样式。此时这里设置成元素在未被访问前的样式
    • 如果需要给超链接定义:访问前,鼠标悬停,当前被点击,已访问这4种伪类效果,
    • 超链接状态顺序: l(link)ov(visited)e h(hover)a(active)te, 即用喜欢(love)和讨厌(hate)两个词来概括
    • E:visited 设置超链接a在其链接地址已被访问过时的样式。
    • E:hover 设置元素在其鼠标悬停时的样式。
    • E:active 设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式。
    • E:focus 设置对象在成为输入焦点(该对象的onfocus事件发生)时的样式。
    • webkit内核浏览器会默认给:focus状态的元素加上outline的样式。
    • E:lang(fr) 匹配使用特殊语言的E元素,一般设置样式
    • E:not(s) ..css3 匹配不含有s选择符的元素E。
    • E:root 匹配E元素在文档的根元素。在HTML中,根元素永远是HTML
    • 根据这个特性,可以做IE8的Hack
    • E:first-child 匹配父元素的第一个子元素E。E作为元素集合,:first-child是针对E元素集合进行过滤的,
    • 去的第一个子元素
    • 设置第一个li的样式,那么代码应该写成li:first-child{sRules},而不是ul:first-child{sRules}
    • E:first-child选择符,E必须是它的兄弟元素中的第一个元素,换言之,E必须是父元素的第一个子元素。
    • 与之类似的伪类还有E:last-child,只不过情况正好相反,需要它是最后一个子元素。
    • E:last-child 匹配父元素的最后一个子元素E。
    • E:last-child 匹配父元素的最后一个元素E
    • 要使该属性生效,E元素必须是某个元素的子元素,E的父元素最高是body,即E可以是body的子元素
    • E:last-child选择符,E必须是它的兄弟元素中的最后一个元素,换言之,E必须是父元素的最后一个子元素。
    • 与之类似的伪类还有E:first-child,只不过情况正好相反,需要它是第一个子元素。
    • E:only-child 匹配父元素仅有的一个子元素E。
    • E:nth-child(n) 匹配父元素的第n个子元素E,假设该子元素不是E,则选择符无效
    • 要使该属性生效,E元素必须是某个元素的子元素,E的父元素最高是body,即E可以是body的子元素
    • 该选择符允许使用一个乘法因子(n)来作为换算方式,比如我们想选中所有的偶数子元素E,
    • 那么选择符可以写成:E:nth-child(2n)
    • 使用E:nth-child(n)实现奇偶:
    • 该选择符允许使用一些关键字,比如:odd, even
    • E:nth-last-child(n) 匹配父元素的倒数第n个子元素E,假设该子元素不是E,则选择符无效。
    • E:first-of-type 匹配同类型中的第一个同级兄弟元素E。
    • 要使该属性生效,E元素必须是某个元素的子元素,E的父元素最高是html,即E可以是html的子元素,
    • 也就是说E可以是body
    • 该选择符总是能命中父元素的第1个为E的子元素,不论第1个子元素是否为E
    • E:last-of-type 匹配同类型中的最后一个同级兄弟元素E。
    • 该选择符总是能命中父元素的倒数第1个为E的子元素,不论倒数第1个子元素是否为E
    • E:only-of-type 匹配同类型中的唯一的一个同级兄弟元素E
    • E:nth-of-type(n) 匹配同类型中的第n个同级兄弟元素E
    • E:nth-last-of-type 匹配同类型中的倒数第n个同级兄弟元素E
    • E:empty 匹配没有任何子元素(包括text节点)的元素E
    • E:checked 匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时)
    • E:enabled 匹配用户界面上处于可用状态的元素E
    • E:disabled 匹配用户界面上处于禁用状态的元素E。
    • E:target 匹配相关URL指向的E元素。
    • URL后面跟锚点#,指向文档内某个具体的元素。这个被链接的元素就是目标元素(target element),:target选择器用于选取当前活动的目标元素。









    在css中
    .classA .classB{color: red;} 表示 包含选择器,
    在html中,
    class="classA classB" 表示多类选择器
    css中
    .classA,.classB{font-weight:bold;} 表示多类选择器
    .classA.classB{font-weight:bold;} 表示在html中class="classA classB",
    仅可以选择同时包含这些类名的元素,可以多与这几个类名的元素
    比如:class="classA classB classC"

    **层叠次序**
    一般而言,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,其中数字 4 拥有最高的优先权。

    •   浏览器缺省设置
    •   外部样式表
    •   内部样式表(位于 标签内部)
    •   内联样式(在 HTML 元素内部)
  • 相关阅读:
    java cocurrent并发包
    阻塞队列只有一个线程在同一时刻对其进行或者读或者写
    在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。
    深入理解生产者消费者
    java并发编程阻塞队列
    高并发
    ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗
    JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
    Java并发编程-Executor框架(转)
    Java主线程等待所有子线程执行完毕再执行解决办法(转)
  • 原文地址:https://www.cnblogs.com/alisonGavin/p/7107741.html
Copyright © 2011-2022 走看看