(18)0907_CSS选择器详解
选择器的优先级(决定那个样式生效):
important; > 内联样式 > id选择器> 类和伪类 > 元素选择器 > 通配选择器> 继承样式无优先级
最大 > 1000 > 100 > 10 > 1 > 0 > 无
(内联样式,也叫 行内样式)
在 CSS 里面定义自增函数 counter-increment
#list li {
background-color: red; counter-increment: num; // 定义自增函数
}
// 相当于
// function counter(){ var num; num++; } #list li:nth-child(10n)::before {
content: counter(num); // 调用自增函数 position: absolute;
top: 30px;
left: 0px;
}
id选择器:
#nav {
background-color: yellow;
}
类选择器:
.article {
background-color: skyblue;
}
属性选择器:
// 含 title 属性的元素
p[title] { background-color: red; } // title="photos" 的元素
p[title = "photos"] { background-color: red; } // title 的属性值以 "pho" 开头的元素
p[title ^= "pho"] { background-color: red; } // title 的属性值以 "s" 结尾的元素
p[title $= "s"] { background-color: red; } // title 的属性值含有 "pho" 的元素
p[title *= "pho"] { background-color: red; } // title 的属性值含有 "photos" 单词的元素
p[title ~= "photos"] { background-color: red; }
伪类选择器:
// 最佳顺序
:link {
color: blue;
} :visited {
color: pink;
} :hover {
color: yellow;
} :active {
color: red;
}:focus {
background-color: #bfc;
}
- 不使用 js 实现轮播图
bottom:target {
/* 操作<a href="#bottom"> 超链接 点击 a元素,跳转到目标元素 */
/* 给目标元素加样式 */
border: 1px solid red;
}
 
- 文不能内容选中样式
::selection {
color:yellow;
background-color: black;
}
 
子元素的伪类选择器(CSS3 结构类):
选中没有任何子节点的元素
// <div id="test_box"></div> #test_box:empty { background-color: skyblue; }
根据索引
p:first-child { background-color: blue; } // 第一个子元素
p:last-child { background-color: blue; } // 最后一个子元素
p:only-child { background-color:red; } // 唯一子元素 // 第一个元素的索引为 1
p:nth-child(1) { background-color: blue; } // 最后一个元素开始计算,索引为 1 的元素
p:nth-last-child(1) { background-color: red; } // 实质上是从 0 开始计算,但是并没有第 0 个子元素
// 之所以从 0 开始,是为了 使用表达式选择元素
p:nth-child(2n){ background-color: blue; } // 偶数索引的元素
p:nth-child(2n+1){ background-color: blue; } // 奇数索引的元素
p:nth-child(3n+1){ background-color: blue; } // 索引 1 4 7...的元素 // 偶数索引的元素
p:nth-child(even) { background-color: blue; } // 奇数索引的元素
p:nth-child(odd) { background-color: blue; }
- 根据类型
// 1. 先找到 修饰元素 的类型 此处为 li
// 2. 再找到所有此类型的同类同辈元素,根据表达式计算索引,选中元素
// 3. n 从 0 开始,从顺数第一个特定类型的元素开始 // 顺数,子元素为 li 的 偶数索引的 子元素
li:nth-of-type(2n){ background-color: blue; } li:first-of-type(){ background-color: blue; } // 第一个 li
li:last-of-type(){ background-color: blue; } // 最后一个 li
li:only-of-type(){ background-color: blue; } // 唯一子元素 li // 1. 先找到 修饰元素 的类型 此处为 li
// 2. 再找到所有此类型的同类同辈元素,根据表达式计算索引,选中元素
// 3. n 从 0 开始,从倒数第一个特定类型的元素开始 // 倒数,子元素为 li 的 奇数索引的 子元素
li:nth-last-of-type(2n+1){ background-color: blue; }
 
元素的伪类选择器(严格语法要求 ::) : 
p::first-letter { background-color: red; } p::first-line { background-color: blue; } p::before {
content: "段前的内容" /* 段前行内伪元素 相当于 <p><span>段前的内容</span> 哈哈哈哈哈哈</p> */
} p::after {
content: "段后的内容" /* 段后行内伪元素 相当于 <p>哈哈哈哈哈哈<span>段后的内容</span></p> */
}
// 伪元素 与 元素:
// 1. 无法通过 js 获取其 DOM对象
// 2. 无法通过浏览器直接查看伪元素
// 3. 无法被鼠标选中(unable to select)
// 4. 伪元素的默认类型是 inline // 伪元素 与 伪类:
// 1. 有两个冒号的 :: 一定是伪元素
// 2. 伪类修饰元素的状态,而伪元素是一个特殊的元素(假行内元素,默认类型是 inline) // 使用伪元素注意事项:
// 1. ::before 和 ::after 必须设置 content,否则不生效
// 2. ::before 和 ::after 显示背景图,必须 display 设置为块元素
// 3. ::before 和 ::after 设置为 display: inline-block; 时,必须额外设置 vertcal-align: middle;
否定伪类选择器:
p:not(.white_boy) { background-color: blue; } ul :not(span){ background-color: red; }
元素选择器:
div {}
统配选择器:
* {} div > * {}
后代元素选择器:
div span{}
子元素选择器:
div>span {}
紧接着的兄弟元素选择器:
span + p {}
后所有的兄弟元素选择器:
span ~ p {}
(18)0907_CSS选择器详解的更多相关文章
- CSS选择器详解(伪类)  转 http://blog.csdn.net/Panda_m/article/details/50084699
		
CSS选择器详解 之 伪类 伪类对大小写不敏感 结构伪类选择器 结构伪类是CSS3新增的类型选择器,利用DOM树实现元素过滤,通过文档结构的相互关系来匹配元素,可以减少class和id属性的定义,使文 ...
 - CSS3 基础(1)——选择器详解
		
CSS3选择器详解 一. 属性选择器 在CSS3中,追加了三个属性选择器分别为:[att*=val].[att^=val]和[att$=val],使得属性选择器有了通配符的概念. 选择器 示例 描述 ...
 - Jquery 选择器 详解   js 判断字符串是否包含另外一个字符串
		
Jquery 选择器 详解 在线文档地址:http://tool.oschina.net/apidocs/apidoc?api=jquery 各种在线工具地址:http://www.ostools ...
 - CSS系列(8) CSS后代选择器和子选择器详解
		
一.CSS后代选择器详解 1, 生动介绍基本概念 一个标签嵌B在另一个标签A内部,B就是A的后代. 而且,B的后代也是A的后代,这就叫“子子孙孙无穷尽也”. 比如: <div> < ...
 - web前端学习(三)css学习笔记部分(6)-- 选择器详解
		
9.选择器详解 9.1 属性选择器 CSS3 属性选择器,在 CSS3 中,追加了三个属性选择器分别为:[att*=val].[att^=val]和[att$=val],使得属性选择器有了通配符的概 ...
 - web前端学习(三)css学习笔记部分(4)-- CSS选择器详解
		
4. 元素选择器详解 4.1 元素选择器 4.2 选择器分组 用英文逗号","相连,使用相同的样式表 使用通配符对所有元素进行通用设定. 4.3 类选择器详解 4.3.1. ...
 - 第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法
		
第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法 上节介绍了Python中类的静态方法,本节将结合案例详细说明相关内容. 一. 案例说明 本节定义了类Sta ...
 - css 10-CSS3选择器详解
		
10-CSS3选择器详解 #CSS3介绍 CSS3在CSS2基础上,增强或新增了许多特性, 弥补了CSS2的众多不足之处,使得Web开发变得更为高效和便捷. #CSS3的现状 浏览器支持程度不够好,有 ...
 - 18.Java 封装详解/多态详解/类对象转型详解
		
封装概述 简述 封装是面向对象的三大特征之一. 封装优点 提高代码的安全性. 提高代码的复用性. "高内聚":封装细节,便于修改内部代码,提高可维护性. "低耦合&quo ...
 
随机推荐
- GIT-Bonobo.Git.Server的使用
			
GIT-Bonobo.Git.Server的使用 登录 (默认用户:admin/admin) 创建用户: 创建团队,勾选用户 创建新库 保存完成!
 - SQL注入绕过技巧总结
			
1.SQL注入过程中的处理# 终端payload编码------>web服务器解码-------->CGI脚本解码------>web应用解码----->数据库解码 浏览器.代 ...
 - Django小技巧——使用package管理app
			
在一个学习视频上看见的小技巧,遂记录下来. 1. 如下图所示,项目中有多个app,本技巧要解决的问题是集中管理这多个app,将其放入一个package下集中管理,改善项目的视图环境 2. 建立一个pa ...
 - Java线程安全队列BlockingQueue
			
线程安全队列BlockingQueue 用法跟普通队列没有区别,只是加入了多线程支持. 这里主要说说add和put,以及poll和take的区别: add和put都是用来忘队列里面塞东西的,而poll ...
 - C#处理非托管资源
			
using System; //处理非托管资源 //例如:文件句柄.网络连接.数据库连接 //实现IDisposable不意味着也应该实现一个终结器,终结器会带来额外开销 //发布本机资源,要释放本机 ...
 - 第七节,Python的可视化包——matplotlib
			
1.2D图表 import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt # 通过rcParams设置全局横 ...
 - 编程入门视频【 Python、PHP、ThinkPHP、Laravel、Mysql、微信小程序】
			
免费分享 Python.PHP.ThinkPHP.Laravel.Mysql.微信小程序等学习视频 点击进入搜刮 免费分享 Python.PHP.ThinkPHP.Laravel.Mysql.微信小程 ...
 - torch.linspace,unsqueeze()以及squeeze()函数
			
1.torch.linspace(start,end,steps=100,dtype) 作用是返回一个一维的tensor(张量),其中dtype是返回的数据类型. import torch print ...
 - TCP-IP详解笔记7
			
TCP-IP详解笔记7 TCP: 传输控制协议(初步) 使用差错校正码来纠正通信问题, 自动重复请求(Automatic Repeat Request, ARQ). 分组重新排序, 分组复制, 分组丢 ...
 - JVM虚拟机
			
一.JAVA虚拟机内存模型: 1.程序计数器:非常小的内存,用于存放下一条运行的指令: 每一个线程都必须有一个独立的程序计数器,用于记录下一条要运行的指令,是一块线程私有的内存空间,CPU时间切片 2 ...