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样式一致 我 ...
随机推荐
- Hackrank Kingdom Division 树形DP
题目链接:传送门 题意: 给你一棵树,n个点 每个点可以染成红色和蓝色 但是红色的点与其相邻的点中必须有红色节点,蓝色也是 问你有多少种染色的方案 题解: 树形dp 先转化为有根树,取1为根 设定dp ...
- Linq:int类型使用Contains方法
获取的是前台传过来的String类型的值,例如:1,123,44,59 具体代码如下 if (!string.IsNullOrEmpty(str)) { string[] strArr = str.S ...
- 深入理解Java执行时数据区
前情回想 在本专栏的前12篇博客中. 我们主要大致介绍了什么是JVM, 而且具体介绍了class文件的格式. 对于深入理解Java, 或者深入理解运行于JVM上的其它语言, 深入理解class文件格式 ...
- shell系统管理
背景知识 对于 Linux 系统管理员来说,没有比 shell 脚本编程更有用处的了.通常,Linux 系统管理员每天需要完成无数项任务,从监视系统磁盘空间和系统用户到备份重要文件.Shell 脚本可 ...
- POJ - 3308 Paratroopers(最大流)
1.这道题学了个单词,product 还有 乘积 的意思.. 题意就是在一个 m*n的矩阵中,放入L个敌军的伞兵,而我军要在伞兵落地的瞬间将其消灭.现在我军用一种激光枪组建一个防御系统,这种枪可以安装 ...
- Ubuntu10.04安装与配置nfs服务器(转载)
转自:http://blog.chinaunix.net/uid-25885064-id-3177969.html 1.安装nfs服务 $ sudo apt-get install nfs-ker ...
- ThinkPHP3.2.3学习笔记3---视图
一.说明 每个模块的模板文件是独立的,为了对模板文件更加有效的管理,ThinkPHP对模板文件进行目录划分,默认的模板文件定义规则是:视图目录/[模板主题/]控制器名/操作名+模板后缀 默认的视图目录 ...
- 洛谷 P4015 运输问题 【最小费用最大流+最大费用最大流】
s向仓库i连ins(s,i,a[i],0),商店向t连ins(i+m,t,b[i],0),商店和仓库之间连ins(i,j+m,inf,c[i][j]).建两次图分别跑最小费用最大流和最大费用最大流即可 ...
- zoj 2760 How Many Shortest Path【最大流】
不重叠最短路计数. 先弗洛伊德求一遍两两距离(其实spfa或者迪杰斯特拉会更快但是没必要懒得写),然后设dis为st最短距离,把满足a[s][u]+b[u][v]+a[v][t]==dis的边(u,v ...
- QB学堂济南游记
七天很快就过去了,今天的测试意味着集训也将结束.回首七天来,与许多dalao同处一室,见识到了各种厉害的老师.厉害的算法.厉害的数据结构. 前两天jzh与yl老师讲课的时候还是全程在线,然而讲到数据结 ...