通常就分为这三大类:
* 选定所有对象。通配选择符(Universal Selector)通常不建议使用通配选择符,因为它会遍历并命中文档中所有的元素,出于性能考虑,需酌情使用
一、标签选择器,以开始标签作为选择器使用。
二、id选择器以唯一标识符id属性识别(表示#name)
#name{
font-size:16px;
}
三、class类选择器以不同于ID选择符的唯一性,类选择符可以同时定义多个(表示.name)
.name{
font-size:16px;
}
类选择符高级用法:多类选择符
.a.b {
color: #000;
}
<div class="a b">多类选择符使用方法</div>
包含选择符
.demo div {border:1px solid #fff;}
子选择符
.demo > div {border:1px solid #fff;}
区别与子选择符(子选择符只能命中子元素)不同的是,包含选择符将会命中所有符合条件的后代。

相邻选择符

p+p{color:#f00;}

兄弟选择符

p~p{color:#f00;}
区别与兄弟选择符(兄弟选择符会命中所有符合条件的兄弟元素)不同的是,相邻选择符只会命中符合条件的相邻的兄弟元素。
属性选择器的几种用法:
普通:
<style>
img[alt] {
margin: 10px;
}
</style>
<img src="图片url" alt="" /> /*这张被选中*/
<img src="图片url" />

第一种:(选择具有xxx属性且属性值等于xxx的元素。)
<style>
input[type="text"] {
border: 1px solid #000;
}
</style>
<input type="text" />
<input type="submit" />

第二种:[选择具有xxx属性且属性值为一用空格分隔的字词列表,其中一个等于a的元素(包含只有一个值且该值等于a的情况)]
<style>
div[class~="a"] {
border: 1px solid #000;
}
</style>
<div class="a">1</div> /*第一个、第三个选中*/
<div class="b">2</div>
<div class="a b">3</div>

第三种:(选择具有xxx属性且属性值为以a开头的字符串的元素。)
<style>
div[class^="a"] {
border: 1px solid #000;
}
</style>
<div class="abc">1</div> /*第一个、第二个选中*/
<div class="acb">2</div>
<div class="bac">3</div>

第四种:(选择具有xxx属性且属性值为以c结尾的字符串的元素)
<style>
div[class$="c"] {
border: 1px solid #000;
}
</style>
<div class="abc">1</div> /*第一个、第三个选中*/
<div class="acb">2</div>
<div class="bac">3</div>

第五种:(选择具有xxx属性且属性值为包含b的字符串的元素。)
<style>
div[class*="b"] {
border: 1px solid #000;
}
</style>
<div class="abc">1</div> /*全部选中*/
<div class="acb">2</div>
<div class="bac">3</div>

第六种:(选择具有xxx属性且属性值为以a开头并用连接符"-"分隔的字符串的元素,如果属性值仅为a,也将被选择)
<style>
div[class|="a"] {
border: 1px solid #000;
}
</style>
<div class="a-test">1</div> /*第一个选中*/
<div class="b-test">2</div>
<div class="c-test">3</div>

伪类选择器:(访问前,鼠标悬停,当前被点击,已访问)
a:link {}
a:visited {}
a:hover {}
a:active {}
从上到下的顺序

xxx:focus
设置对象在成为输入焦点(该对象的onfocus事件发生)时的样式。
webkit内核浏览器会默认给:focus状态的元素加上outline的样式。

xxx:lang(fr) 匹配使用特殊语言的xxx元素。

xxx:not(s) 匹配不含有s选择符的元素
有了这个选择符,那么你将可以很好的处理类似这样的场景:假定有个列表,每个列表项都有一条底边线,但是最后一项不需要底边线
.demo li:not(:last-child) {
border-bottom: 1px solid #ddd;
}

xxx:first-child/xxx:last-child匹配父元素的第一个/最后一个子元素。
要使该属性生效,xxx元素必须是某个元素的子元素,xxx的父元素最高是body,即xxx元素可以是body的子元素

xxx:only-child 匹配父元素仅有的一个子元素。
要使该属性生效,xxx元素必须是某个元素的子元素,xxx元素的父元素最高是body,即xxx元素可以是body的子元素

xxxx:nth-child(n) 匹配父元素的第n个子元素xxx,假设该子元素不是xxx,则选择符无效。
如:
li:nth-child(2n){color:#fff;} /* 偶数 */
li:nth-child(2n+1){color:#000;} /* 奇数 */

xxx:nth-last-child(n) 匹配父元素的倒数第n个子元素xxx,假设该子元素不是xxx,则选择符无效。

xxx:first-of-type 匹配同类型中的第一个同级兄弟元素xxx。
xxx:last-of-type 匹配同类型中的最后一个同级兄弟元素xxx。
要使该属性生效,xxx元素必须是某个元素的子元素,xxx的父元素最高是html,即xxx可以是html的子元素,也就是说xxx可以是body
该选择符总是能命中父元素的第1个/最后一个为xxx的子元素,不论第1个/最后一个子元素是否为E

xxx:only-of-type 匹配同类型中的唯一的一个同级兄弟元素xxx。
p:only-of-type {
color: #000;
}
<div class="test">
<p>结构性伪类选择符 xxx:only-of-type</p>
</div>

xxx:nth-of-type(n) 匹配同类型中的第n个同级兄弟元素xxx。
<div>
<p>第1个p</p>
<p>第2个p</p>
<span>第1个span</span>
<p>第3个p</p>
<span>第2个span</span>
</div>
如上HTML,假设要命中第一个span:
span:nth-of-type(1){color:#000;}
如果使用xxx:nth-child(n):
span:nth-child(3){color:#000;}

xxx:nth-last-of-type(n) 匹配同类型中的倒数第n个同级兄弟元素xxx。
xxx:empty匹配空节点元素

xxx:checked 匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时)
input:checked + span {
background: #f00;
}
input:checked + span:after {
content: " 我被选中了"; /*使用样式追加文字*/
}

xxx:enabled 匹配用户界面上处于可用状态的元素E。 / xxx:disabled 匹配用户界面上处于禁用状态的元素xxx。
input[type="text"]:enabled {
border: 1px solid #000;
background: #fff;
color: #000;
}
input[type="text"]:disabled {
border: 1px solid #333;
background: #ff9933;
color: #666;
}
<ul>
<li><input type="text" value="可用状态" /></li>
<li><input type="text" value="可用状态" /></li>
<li><input type="text" value="禁用状态" disabled="disabled" /></li>
<li><input type="text" value="禁用状态" disabled="disabled" /></li>
</ul>

伪对象选择器
xxx:first-letter/xxx::first-letter 设置对象内的第一个字符的样式。(如首字下沉)
此伪对象仅作用于块对象。内联对象要使用该伪对象,必须先将其设置为块级对象。
该伪类常被用来配合font-size属性和float属性制作首字下沉效果。

xxx:first-line/xxx::first-line 设置对象内的第一行的样式。
此伪对象仅作用于块对象。内联对象要使用该伪对象,必须先将其设置为块级对象。

xxx:placeholder 设置对象文字占位符的样式。
兼容写法:除了Firefox是 ::[prefix]placeholder,其他浏览器都是使用 ::[prefix]input-placeholder
input::-webkit-input-placeholder {
color: #999;
}
input:-ms-input-placeholder { // IE10+
color: #999;
}
input:-moz-placeholder { // Firefox4-18
color: #999;
}
input::-moz-placeholder { // Firefox19+
color: #999;
}

xxx::selection 设置对象被选择时的样式。
需要注意的是,::selection只能定义被选择时的background-color,color及text-shadow(IE11尚不支持定义该属性)。

css选择器的对比样式代码精简的更多相关文章

  1. Css选择器(上) 让样式无孔不入

    css选择器    一个可以选择样式的工具, 这里适用于无论是内部代码还是外部引用 abc.css 这类型的文件. 基本选择器*{ }        就是一个简单的*, 代表应用于全部. 不适合于个性 ...

  2. CSS 选择器及各样式引用方式

    Css :层叠样式表 (Cascading Style Sheets),定义了如何显示HTML元素. 目录 1. 选择器的分类:介绍ID.class.元素名称.符合.层次.伪类.属性选择器. 2. 样 ...

  3. css选择器权重、样式继承、默认样式

    学过css的小伙伴都是指css选择器的权重 !important Infinity 行间样式 1000 id   100 class|属性|伪类 10 标签|伪元素 1 通配符 0 权重相同 相同cs ...

  4. html Css PC 移动端 公用部分样式代码整理

    css常用公用部分样式代码整理: body, html, div, blockquote, img, label, p, h1, h2, h3, h4, h5, h6, pre, ul, ol, li ...

  5. CSS 选择器【详解】

    转自:http://www.cnblogs.com/polk6/archive/2013/07/19/3142142.html CSS 选择器及各样式引用方式介绍 一个好的界面,是一个Web吸引人们最 ...

  6. C#使用CSS选择器抓取页面内容

    最近在查wpf绘图资料时,偶然看到Python使用CSS选择器抓取网页的功能.觉得很强,这里用C#也实现一下. 先介绍一下CSS选择器 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. ...

  7. css选择器(基础)

    CSS选择器:     一个样式的语法是由选择器+属性+属性值三部分组成: 到底什么是选择器呢? 答:个人直白的理解为:选择一种要对它进行操作的标签的方法就叫做选择器.也就是说选择器就是一种选择元素的 ...

  8. CSS选择器(CCS第三版)

    什么是选择器? CSS选择器就是使样式找到应用对象. 简单选择器(Simple selectors) 在日常开发中,最常用的选择器,也是最基本的选择器. 元素选择器(Type selector) 针对 ...

  9. 去除冗余 – 精简您的CSS样式代码

    讲讲常见的一些没有必要使用CSS代码情况,而这些不起作用可以去掉的CSS代码可能是我们经常忽视的.越是对CSS理解不够,越容易出现这些问题. 二.一些常见不必要CSS样式 1.与默认CSS样式一致 我 ...

随机推荐

  1. HEX文件格式学习笔记

    这也是一篇学习摘抄:原文地址:http://blog.csdn.net/syrchina/article/details/7004998        为了编写一个可以按照自己的要求进行ISP的程序, ...

  2. HDU1698 Just a Hook —— 线段树 区间染色

    题目链接:https://vjudge.net/problem/HDU-1698 In the game of DotA, Pudge’s meat hook is actually the most ...

  3. YTU 2980: 几点了

    2980: 几点了 时间限制: 1 Sec  内存限制: 128 MB 提交: 37  解决: 9 题目描述 现有一个Time类可以用来记录时间,请输出Time记录的时间加上s秒后的时间. 只需提交补 ...

  4. jQuery简单纯文字提示条

    如何制作jQuery简单纯文字提示条,先介绍提示条(tooltip)的意思是用户鼠标悬停经过事件发生提示title.它们已经呈现在大多数浏览器中,当你可以提供一个链接或图片的title属性,就是用户将 ...

  5. Linux 打包classes

    进入项目后 tar -zcvf ~/${HOSTNAME}-${PWD##*/}-$(date +%Y-%m-%d)-classes.tar.gz webapps/ROOT/WEB-INF/class ...

  6. 并不对劲的uoj276. [清华集训2016]汽水

    想要很对劲的讲解,请点击这里 题目大意 有一棵\(n\)(\(n\leq 50000\))个节点的树,有边权 求一条路径使该路径的边权平均值最接近给出的一个数\(k\) 输出边权平均值下取整的整数部分 ...

  7. 并不对劲的cdq分治解三维偏序

    为了反驳隔壁很对劲的太刀流,并不对劲的片手流决定与之针锋相对,先一步发表cdq分治解三维偏序. 很对劲的太刀流在这里->  参照一.二维偏序的方法,会发现一位偏序就是直接排序,可以看成通过排序使 ...

  8. URAL2104. Game with a Strip(博弈)

    There is a strip 1 × n with two sides. Each square of the strip (their total amount is 2n, n squares ...

  9. Django之django-redis对数据进行简单缓存

    最近公司老大抱怨,产品某部分内容访问速度奇慢无比,由于是之前接手的别人的代码,不太清楚业务的具体逻辑,不过,经过查看,内容为无需实时更新的内容,so  直接上缓存. 什么是缓存? 对于后端来说,要做的 ...

  10. python的termcolor模块

    termcolor是一个python包,可以改变控制台输出的颜色,支持各种terminal(WINDOWS的cmd.exe除外). 它支持下列的文字颜色: grey, red, green, yell ...