CSS 学习笔记——CSS Selector
CSS1 中定义的选择器
类型选择器
用于选择指定类型的元素(其实他就是 html 标签选择器),常见用法如下:
body {
    /*对 body 元素定义样式*/
}
body,div {
    /*同时选择多种标签元素*/
}ID 选择器
用于选择指定 ID 的 html 元素,常见使用方法如下:
<div id="nav">
</div>
<style>
    #nav {
        /*定义 ID 为 nav 的元素的样式*/
    }
</style>因为 CSS 的渲染顺序是从右往左进行渲染的,而 ID 则是全唯一的,那么就可以省略掉前面的类型选择器。
类选择器
用于选择指定类名的 html 元素,常见使用方法如下:
<div class="nav">
</div>
<style>
    .nav {
        /*定义 class 为 nav 的元素的样式*/
    }
</style>包含选择器
用于选择层级嵌套的元素,常见使用方法如下:
<div class="nav">
    <div class="nav-tools">
    </div>
</div>
<div class="nav">
    <div>
        <div class="nav-tools">
        </div>
    </div>
</div>
<style>
    .nav .nav-tools {
        /*定义元素的父级元素 class 包含 nav,且子元素class 包含 nav-tools 的元素*/
    }
</style>需要注意的是:包含选择器不关心层级,只要后面的选择器是被包含在前一个元素中的即可。如上述例子,两个 nav-tools 都会被选择器选中!
伪类选择器
:link——链接伪类选择器
用于定义链接未被访问状态时的样式,常见使用方法如下:
<div class="nav">
    <div class="nav-tools">
        <ul>
            <li><a href="#"></a></li>
        </ul>
    </div>
</div>
<style>
    a:link {
        text-decoration: none;
        color: blue;
    }
</style>:visited——链接伪类选择器
用于定义已被访问的链接样式,常见使用方法如下:
<style>
    a:visited {
        text-decoration: none;
        color: red;
    }
</style>:active——用户操作伪类选择器
用于定义被激活的元素样式,常见使用方法如下:
<style>
    a:active {
        text-decoration: none;
        color: green;
    }
</style>:hover——用户操作伪类选择器
用于定义鼠标经过元素是的样式,常见使用方法如下:
<style>
    a:hover {
        text-decoration: none;
        background-color: #F4F4F4;
    }
</style>:focus——用户操作伪类选择器
用于定义获得焦点的元素样式,常见使用方法如下:
<style>
    input:focus {
        text-decoration: none;
        background-color: #F4F4F4;
    }
</style>::first-line
用于定义元素内第一行文本的样式,常见使用方法如下:
<div class="doc">
    <p>层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。</p>
</div>
<style>
    .doc {
        width: 360px;
    }
    .doc>p::first-line {
        color: red;
    }
</style>::=first-letter
用于定义元素内第一个字符的样式,常见使用方式如下:
<style>
    .doc {
        width: 360px;
    }
    .doc>p::first-letter {
        font-size: 2em;
        color: red;
    }
</style>CSS2中定义的选择器
*——通配选择器
用于定义 DOM 中所有元素的共同样式,常见使用方法如下:
<div class="nav">
    <div>
        <div class="nav-tools">
        </div>
    </div>
</div>
<style>
    .nav * {
        margin: 0;
    }
</style>如果要重置默认样式的话,不建议使用通配选择器
[attribute]——属性选择器
用于定义元素包含属性为attribute的元素的样式,常见使用方法如下:
<div class="nav">
    <div>
        <div class="nav-tools">
            <ul>
                <li active>Menu</li>
                <li>Index</li>
            </ul>
        </div>
    </div>
</div>
<style>
    li[active] {
        color: red;
    }
</style>[attribute=“value”]——属性选择器
用于定义元素属性的值为指定的值样式,常见使用方法如下:
<div class="nav">
    <div>
        <div class="nav-tools">
            <ul>
                <li active="active">Menu</li>
                <li active>Index</li>
            </ul>
        </div>
    </div>
</div>
<style>
    li[active="active"] {
        color: red;
    }
</style>[attribute~="value"]——属性选择器
用于定义属性中包含指定值且以空格来分隔属性值得元素,常见使用方法如下:
<div class="nav">
    <div>
        <div class="nav-tools">
            <ul>
                <li active="test active">Menu</li>
                <li active="active-test">Index</li>
            </ul>
        </div>
    </div>
</div>
<style>
    li[active~="active"] {
        color: red;
    }
</style>如上所示,只有第一个 li 的前景色会被定义为红色!
[attribute|="value"]——属性选择器
用于定义属性中包含指定值且以连字符(-)链接的属性值,常见使用方法如下:
<div class="nav">
    <div>
        <div class="nav-tools">
            <ul>
                <li active="test active">Menu</li>
                <li active="active-test">Index</li>
            </ul>
        </div>
    </div>
</div>
<style>
    li[active|="active"] {
        color: red;
    }
</style>如上所示:只有第二个 li 的前景色会被定义为红色!
:first-child——结构伪类选择器
用于定义元素的第一个元素的样式,常见使用方式如下:
<div class="nav">
    <div>
        <div class="nav-tools">
            <ul>
                <li active="test active">Menu</li>
                <li active="active-test">Index</li>
            </ul>
        </div>
    </div>
</div>
<style>
    li:first-child {
        color: red;
    }
</style>注意 :first-child 是作用于同级,且相同标签的第一个元素。如上所示,如果要定义第一个 li 的样式,那么久需要使用 li:first-child,而不是 ul:first-child!
:lang(en)
用于定义属性为 lang=“en” 的元素样式,常见使用方法如下:
<div>
    <p lang="en">Hello World</p>
</div>
<style>
    p:lang(en) {
        color: red;
    }
</style>::before
用于定义元素之前的内容和样式,常见使用方法如下:
<div>
    <a>World</a>
</div>
<style>
    a::before {
        content: "Hello ";
    }
</style>::after
用于定义元素之后的内容和样式,常见使用方法如下:
<div>
    <a>Hello</a>
</div>
<style>
    a::after {
        content: "World";
    }
</style>div > p
用于定义元素的第一级子元素的样式,常见方法使用如下:
<div class="nav">
    <div>
        <div class="nav-tools">
            <ul>
                <li active="test active">Menu</li>
                <li active="active-test">Index</li>
            </ul>
        </div>
    </div>
</div>
<style>
    .nav-tools > ul {
        background-color: red;
    }
    .nav-tools > li {
        /*这个不会生效,因为 li 不是 ul 的直接子元素*/
    }
</style>h1 + p
用于定义元素相邻的元素样式,常见使用方法如下:
<div>
    <h1>CSS</h1>
    <p>层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。</p>
</div>
<style>
    h1 + p {
        color: red;
    }
</style>CSS3 新增属性选择器
[foo^="bar"]
用于定义元素属性以 bar 开头的元素的样式
<div>
    <a href="http://www.betterde.com">Betterde Inc.</a>
    <a href="https://www.betterde.com">Betterde Inc.</a>
</div>
<style>
    a[href^="https"] {
        color:green;
    }
</style>如上所示,标记 https 链接为绿色。
[foo$="bar"]
用于定义元素属性以 bar 结尾的元素的样式
<div>
    <a href="http://www.betterde.com/logo.png">logo.png</a>
    <a href="http://www.betterde.com/style.css">style.css</a>
    <a href="http://www.betterde.com/main.js">main.js</a>
</div>
<style>
    a[href$="png"] {
        background: url(system/filetype/png.png) no-repeat left center;
        padding-left: 18px;
    }
    a[href$="css"] {
        background: url(system/filetype/css.png) no-repeat left center;
        padding-left: 18px;
    }
    a[href$="js"] {
        background: url(system/filetype/js.png) no-repeat left center;
        padding-left: 18px;
    }
</style>如上所示,识别超链接的所链接的文件格式,并在前面添加文件类型图标!
[foo*="bar"]
用于定义元素属性中包含 bar 的元素的样式,需要注意的是,这里是包含,也就是说无论是什么样的组合,只要属性值还有这bar 这三个连续字母的都会被选中!
<div>
    <h1 class="title big full-right"></h1>
    <h2 class="title big full-right"></h1>
    <h1 class="big-title"></h1>
</div>
<style>
    a[class*="title"] {
        color: red;
    }
</style>如上所示:div 内的三个元素都将会被渲染为红色字体!
虽然 CSS3 中任然保留 CSS2 中定义的属性选择器,但是建议使用 CSS3 的属性选择器来替代!
结构伪类选择器
:root
用于定义 html 标签元素的样式
:nth-child(n)
用于定义子元素的样式,n 表示第几个子元素。n 可以是数字,或关键字odd、even或公式。常见使用方法如下:
<table>
    <tbody>
        <tr>
            <td>name</td>
            <td>gender</td>
            <td>age</td>
        </tr>
        <tr>
            <td>George</td>
            <td>Male</td>
            <td>23</td>
        </tr>
        <tr>
            <td>Kevin</td>
            <td>Male</td>
            <td>28</td>
        </tr>
        <tr>
            <td>Angule</td>
            <td>Male</td>
            <td>23</td>
        </tr>
    </tbody>
</table>
<style>
    tr:nth-child(even) {
        background-color: red;
    }
</style>:nth-last-child(n)
与 :nth-child(n)用法相同,只是排序方式是从后往前!
:nth-of-type(n)
用于定义相同元素的第 n 个元素的样式,常见使用方法如下:
<table>
    <tbody>
        <tr>
            <td>name</td>
            <td>gender</td>
            <td>age</td>
        </tr>
        <tr>
            <td>George</td>
            <td>Male</td>
            <td>23</td>
        </tr>
        <tr>
            <td>Kevin</td>
            <td>Male</td>
            <td>28</td>
        </tr>
        <tr>
            <td>Angule</td>
            <td>Male</td>
            <td>23</td>
        </tr>
    </tbody>
</table>
<style>
    tr:nth-of-type(even) {
        background-color: red;
    }
</style>:nth-last-of-type(n)
与 :nth-of-type(n)用法相同,只是排序方式是从后往前!
:last-child
用于定义最后一个元素的样式,常见使用方法如下:
<table>
    <tbody>
        <tr>
            <td>name</td>
            <td>gender</td>
            <td>age</td>
        </tr>
        <tr>
            <td>George</td>
            <td>Male</td>
            <td>23</td>
        </tr>
        <tr>
            <td>Kevin</td>
            <td>Male</td>
            <td>28</td>
        </tr>
        <tr>
            <td>Angule</td>
            <td>Male</td>
            <td>23</td>
        </tr>
    </tbody>
</table>
<style>
    tr:last-child {
        background-color: red;
    }
</style>:first-of-type
定义第一个元素相同类型元素的样式,与 :nth-of-type(1) 效果一样
:last-of-type
定义最后一个元素相同类型元素的样式,常见使用方法如下:
<table>
    <tbody>
        <tr>
            <td>name</td>
            <td>gender</td>
            <td>age</td>
        </tr>
        <tr>
            <td>George</td>
            <td>Male</td>
            <td>23</td>
        </tr>
        <tr>
            <td>Kevin</td>
            <td>Male</td>
            <td>28</td>
        </tr>
        <tr>
            <td>Angule</td>
            <td>Male</td>
            <td>23</td>
        </tr>
    </tbody>
</table>
<style>
    tr:last-of-type {
        background-color: red;
    }
</style>:only-child
用于定义子元素只有一个且与制定元素标签相同,常见使用方法如下:
<div>
    <h1>Hello</h1>
</div>
<style>
    h1:only-child {
        /*如果 div 中还有其他任何元素,则h1不会按照该选择器中定义的样式渲染*/
    }
</style>:only-of-type
用于定义只包含一个制定的标签元素的样式,常见使用方法如下:
<div>
    <h1>Hello</h1>
</div>
<style>
    h1:only-of-type {
        /*如果 div 中还有其他任何元素,则h1不会按照该选择器中定义的样式渲染*/
    }
</style>:empty
用于定义,一个元素中没有包含任何子元素的样式,常见使用方法如下:
<div>
</div>
<style>
    div:empty {
        display: none;
    }
</style>CSS3 新增的其他选择器
E ~ F
用于定义兄弟元素的样式,常见使用方法如下:
<div>
    <p>Hello</p>
</div>
<p>CSS</p>
<style>
    div ~ p {
        color: red;
    }
</style>div 元素中的 p 不会被渲染为红色字体,只有跟 div 是同级的 p 才会被渲染为红色!
:not(s)
用于定义指定元素,并且过滤 s 所指定的选择器元素,常见使用方法如下:
<div>
    <p class="red">Hello</p>
    <p class="blue">World</p>
    <p>Welcome!</p>
</div>
<style>
    p:not(.red) {
        color: blue;
    }
</style>注意:s 是一个简单的结构选择器,不能使用复合选择器,该选择器只匹配第一个复合条件的元素。如上所示,最后一个 p 不会被渲染为蓝色!
:target
用于定义被访问的锚链样式,常见使用方法如下:
<div>
    <div id="text-one">
        <p>这是第一个文本段</p>
    </div>
    <div id="text-two">
        <p>这是第二个文本段</p>
    </div>
</div>
<style>
    div:target {
        color: red;
    }
</style>注意:当我们激活锚链时(url中包含 #text-one 或 #text-two),对应的 div 内的元素字体会被渲染为红色!
CSS3 UI 元素状态伪类选择器
:enabled
用于定义元素的 enabled 时的样式,常见使用方式如下:
<div>
    <input type="text">
</div>
<style>
    input:enabled {
        background: #ffff00;
    }
</style>注意:元素默认状态为 enabled
:disabled
用于定义元素处于禁用状态时的样式,常见使用方法如下:
<div>
    <input type="text" disabled="disabled"/>
</div>
<style>
    input:disabled {
        background: #dddddd;
    }
</style>:checked
用于定义元素被选中时的样式,常见使用方式如下:
<div>
    <form>
        <input type="checkbox" />
    </form>
</div>
<style>
    input:checked {
        color: green;
    }
</style>CSS 学习笔记——CSS Selector的更多相关文章
- Html和Css学习笔记-css进阶-盒模型
		我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 此篇博客是我的复习笔记,html和css学的时间太久了,忘得差不多了,最近要使用一下,所以重新打开html的书略读,后记录了标签 ... 
- Html和Css学习笔记-css基础知识
		我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 此篇博客是我的复习笔记,html和css学的时间太久了,忘得差不多了,最近要使用一下,所以重新打开html的书略读,后记录了标签 ... 
- CSS学习笔记——CSS选择器样式总结
		<style type="text/css"> * { padding:0; margin:0; } .box h2 { //内边距左边的距离 padding-left ... 
- CSS学习笔记——CSS中定位的浮动float
		昨天在解决了盒模型的问题之后又出现了新的知识模糊点:浮动和绝对定位?今天先解决浮动相关的问题,首先列举出想要解决的问题: 1.浮动到底是怎么样的? 2.浮动对元素的影响有什么? 3.浮动主要用来干什么 ... 
- w3school之CSS学习笔记
		由于web自动化测试中,会用到比较复杂的定位方式:CSS定位,这种定位方式比较简洁,定位速度较快,所以继续学习前端的CSS知识,总结下学习笔记,以便后续查看.同时,也希望能帮助到大家. 学习网址:ht ... 
- CSS学习笔记之选择器
		目录 1.元素选择器 2.继承 3.选择器分组 4.声明分组 5.后代选择器 6.子元素选择器 7.相邻兄弟选择器 8.类选择器 9.ID 选择器 10.属性选择器 11.伪类 12.伪元素 1.元素 ... 
- CSS学习笔记之基本介绍
		1.简介 层叠样式表(Cascading Style Sheets,CSS)允许我们把样式设置存储在文件中,从而将内容与表现分离 当同一个 HTML 元素被不只一个样式定义时,最终的样式确定顺序如下( ... 
- CSS学习笔记
		CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ... 
- HTML+CSS学习笔记 (7) - CSS样式基本知识
		HTML+CSS学习笔记 (7) - CSS样式基本知识 内联式css样式,直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式.嵌 ... 
随机推荐
- Maven中settings.xml文件各标签含义
			原文地址:http://www.cnblogs.com/jingmoxukong/p/6050172.html?utm_source=gold_browser_extension settings.x ... 
- 如何将jar包打包到本地maven仓库
			--例如下载jar到本地(例如经常用到的oracle数据库驱动) --前提本地已将安装maven并配置好环境,cmd并切换到jar包的文件夹下,执行以下命令,注意DgroupId.DartifactI ... 
- elastic search记录
			安装与启动 插件安装 中文分词器 https://github.com/medcl/elasticsearch-analysis-ik elastic api GET _search { " ... 
- K - Wand(组合数+错排公式)
			N wizards are attending a meeting. Everyone has his own magic wand. N magic wands was put in a line, ... 
- D. Fish eating fruit
			题:https://nanti.jisuanke.com/t/41403 题意:求任意俩点之间距离之和模3后的三个结果的总数(原距离之和) 第一种做法: 树形dp #include<bits/s ... 
- LeetCode No.109,110,111
			No.109 SortedListToBST 有序链表转换二叉搜索树 题目 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的 ... 
- ubuntu 14.04 搜狗拼音安装
			打开 Software & Updates,添加软件源: sudo add-apt-repository ppa:fcitx-team/nightly 输入 sudo apt-get inst ... 
- descriptive statistics|inferential statistics|Observational Studies| Designed Experiments
			descriptive statistics:组织和总结信息,为自身(可以是population也可以是sample)审视和探索, inferential statistics.从sample中推论p ... 
- js求两个数的百分比
			function toPercent(num, total) { return (Math.round(num / total * 10000) / 100.00 + "%");/ ... 
- django框架基础-ORM基础-长期维护
			############### ORM介绍 ################ """ ORM简介: ORM 全拼Object-Relation Mapping. ... 
