css选择器的对比样式代码精简
通常就分为这三大类:
* 选定所有对象。通配选择符(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选择器的对比样式代码精简的更多相关文章
- Css选择器(上) 让样式无孔不入
css选择器 一个可以选择样式的工具, 这里适用于无论是内部代码还是外部引用 abc.css 这类型的文件. 基本选择器*{ } 就是一个简单的*, 代表应用于全部. 不适合于个性 ...
- CSS 选择器及各样式引用方式
Css :层叠样式表 (Cascading Style Sheets),定义了如何显示HTML元素. 目录 1. 选择器的分类:介绍ID.class.元素名称.符合.层次.伪类.属性选择器. 2. 样 ...
- css选择器权重、样式继承、默认样式
学过css的小伙伴都是指css选择器的权重 !important Infinity 行间样式 1000 id 100 class|属性|伪类 10 标签|伪元素 1 通配符 0 权重相同 相同cs ...
- html Css PC 移动端 公用部分样式代码整理
css常用公用部分样式代码整理: body, html, div, blockquote, img, label, p, h1, h2, h3, h4, h5, h6, pre, ul, ol, li ...
- CSS 选择器【详解】
转自:http://www.cnblogs.com/polk6/archive/2013/07/19/3142142.html CSS 选择器及各样式引用方式介绍 一个好的界面,是一个Web吸引人们最 ...
- C#使用CSS选择器抓取页面内容
最近在查wpf绘图资料时,偶然看到Python使用CSS选择器抓取网页的功能.觉得很强,这里用C#也实现一下. 先介绍一下CSS选择器 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. ...
- css选择器(基础)
CSS选择器: 一个样式的语法是由选择器+属性+属性值三部分组成: 到底什么是选择器呢? 答:个人直白的理解为:选择一种要对它进行操作的标签的方法就叫做选择器.也就是说选择器就是一种选择元素的 ...
- CSS选择器(CCS第三版)
什么是选择器? CSS选择器就是使样式找到应用对象. 简单选择器(Simple selectors) 在日常开发中,最常用的选择器,也是最基本的选择器. 元素选择器(Type selector) 针对 ...
- 去除冗余 – 精简您的CSS样式代码
讲讲常见的一些没有必要使用CSS代码情况,而这些不起作用可以去掉的CSS代码可能是我们经常忽视的.越是对CSS理解不够,越容易出现这些问题. 二.一些常见不必要CSS样式 1.与默认CSS样式一致 我 ...
随机推荐
- 第一个WordCount类运行
import java.io.IOException; import java.util.*; import org.apache.hadoop.fs.Path; import org.apache. ...
- MFC项目实战(1)文件管理器--准备篇
本程序主要实现如下功能: 程序通过左边的树形控件显示本地计算机中目录的结构,右边的列表控件则负责响应树形控件中选择的目录节点并把此节点中的所有项在列表框中显示出来,列表框支持奇偶行颜色设置,选中颜色设 ...
- Linux 对比 Windows 缺点
SELinux_百度百科 https://baike.baidu.com/item/SELinux/8865268?fr=aladdin 虽然Linux比起 Windows来说,它的可靠性,稳 ...
- Ant 打包 问题
Ant 打包问题及解决归纳总结: 1.build.xml注意设置basedir: <project name="s2si" default="dist" ...
- hdu4908 & BestCoder Round #3 BestCoder Sequence(组合数学)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4908 BestCoder Sequence Time Limit: 2000/1000 MS (Jav ...
- JavaScript中面向对象那点事
鉴于自己在JavaScript这方面比較薄弱.所以就找了一本书恶补了一下(被称为犀利书的JavaScript权威指南).书的内容尽管多了点,但这也充分说明了js中的东西还是挺多的.尽管我们的定位不是前 ...
- Mac 下设置Android 环境变量 NDK
1. 启动终端Terminal 2. 进入当前用户的home目录 输入cd ~ 3. 创建.bash_profile 输入touch .bash_profile4. 编辑.bash_profil ...
- [NOI 2012] 美食节
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2879 [算法] 首先 , 将每种食物建一个点 , 将每位厨师做的每一道菜建一个点 建 ...
- UVa 11440 Help Tomisu (数论欧拉函数)
题意:给一个 n,m,统计 2 和 n!之间有多少个整数x,使得x的所有素因子都大于M. 析:首先我们能知道的是 所有素数因子都大于 m 造价于 和m!互质,然后能得到 gcd(k mod m!, m ...
- Ubuntu 12.04的gnome classic panel添加程序快捷键(转载)
How to add applets to the Gnome classic panel in Ubuntu 12.04 转自:http://www.borfast.com/blog/how-add ...