css3 选择器 权重问题 (第一部分)
其实我现在写的这些博文笔记都是我很早之前学习的时候所写的笔记,只不过之前是没有写博客的习惯,所以都是写在word文档中个人需要的时候看而已。最近刚刚开了博客,所以想将自己的笔记贴到博客。
但是现在看来我的笔记中好多东西都过于基础,其实放到博客也是没有多大的作用,于是我就想将我在开发当中遇到的一些有趣的案例以及结合我的笔记重新写一份
如果要介绍css的选择器,那么肯定会遇到一个问题,那就是权重问题,所以本博文分为三个部分,第一个部分是详细介绍了目前css的选择器有哪些以及用法,第二部分则是介绍一下关于权重的问题,第三部分就是我开发中遇到的一些好玩的案例
第一部分:css选择器介绍
1.后代选择器
|
选择器 |
例子 |
例子描述 |
Css |
|
Element Element |
Div p |
选择<div>元素内部的所有<p元素> |
1 |
|
Element>element |
div>p |
选择父元素为<div>元素的所有子代<p>元素 |
2 |
|
:only-child |
P:only-child |
匹配属于父元素中唯一的<p>元素,如果其父元素中含有其他元素,那将不会被匹配 |
3 |
|
:nth-child(n) |
P:nth-child(2) |
匹配父元素中的第2个<p>子元素,n可以是数字、关键字或公式。Odd和even是可用于匹配下标奇数或偶数的子元素。第一个子元素下标是1 |
3 |
|
:nth-last-child(n) |
P:nth-last-child(2) |
同上,只不过从最后一个子元素开始计数 |
3 |
|
:first-child |
P:first-child |
选择属于父元素的第一个子元素的每个<p>元素,第一个子元素必须是p |
3 |
|
:root |
:root |
选择文档的根元素 |
3 |
|
:empty |
P:empty |
选择没有子元素的每个<p>元素(包括文本节点) |
3 |
这里想提的是:first-child选择器,因为本人前期也犯过这样子的错误,对这个选择器的理解有一定的误区,后来经过实践后才发现这个坑。这个标签要同时满足两个条件:1.子元素中存在你所选的标签 2.你所选的这个子标签必须是第一个子标签。
为了让大家明白这个,我就举个例子
右侧是运行结果
如图可知,p在div下的p标签也是第一个p标签,这里要清楚,我说的是第一个p标签并不是第一个子标签,a标签才是第一个子标签。所以此刻a:first-child选择器才是有效的。
:only-child选择同样也是得满足两个条件
2.同辈级别选择器
|
选择器 |
例子 |
例子描述 |
Css |
|
Element+element |
Div+p |
选择紧接在<div>元素之后的<p>元素 |
2 |
|
Element~element2 |
P~ul |
选择前面有<p>元素的每个<ul>元素 |
3 |
|
:first-of-type |
P:first-of-type |
匹配同级兄弟元素中的第一个<p>元素 |
3 |
|
:last-of-type |
P:last-of-type |
匹配同级兄弟元素中的最后一个<p>元素 |
3 |
|
:only-of-type |
P:only-of-type |
匹配属于同类型中只有唯一兄弟元素的p元素 |
3 |
|
:nth-of-type(n) |
P:nth-of-type(2) |
匹配同类型中的第n个同级兄弟元素p |
3 |
|
:nth-last-of-type(n) |
P:nth-last-of-type(2) |
同上,只不过从最后一个开始计数 |
3 |
这里将说一下+与~的区别
div+p选中的是兄弟标签,也就是紧跟在div后面的p标签,这个p标签满足,是div的兄弟标签,也就是紧跟在div后面,两者间没有其他标签
右边是运行结果
如图所视,使用+选择器的时候,a标签后面的第一个p标签字体会变红。而~选择器的意思就是选中满足前面拥有p标签的a标签(这里前面拥有p标签不一定是紧跟在a标签前面)
3.伪类选择器
|
选择器 |
例子 |
例子描述· |
Css |
|
:link |
a:link |
选择所有未被访问的链接 |
1 |
|
:visited |
a:visited |
选择所有已被访问的链接 |
1 |
|
:active |
a:actied |
选择活动链接 |
1 |
|
:hover |
A:hover |
选择鼠标指针位于其上的链接 |
1 |
|
:focus |
Input:focus |
选择获得焦点的input元素 |
2 |
|
:first-letter |
P:first-letter |
选择每个<p>元素的首字母 |
1 |
|
:first-line |
P:first-line |
选择每个<p>元素的首行 |
1 |
|
:before |
P:before |
在每个<p>元素的内容之前插入内容 |
2 |
|
:after |
P:after |
在每个<p>元素的内容之后插入内容 |
2 |
|
:target |
#news:target |
选择当前活动的#news元素 |
3 |
|
:root |
:root |
选择文档的根元素 |
3 |
所谓了伪类选择器有一部分是行为改变的css选择器,其实这些选择器的用处是十分大的。甚至它可以替代一些js的事件操作。比如:hover、:active以及:focus等选择器,这些选择器有时在利用的时候是可以替代js的一些事件的。还有就是平时用的比较多的::after以及::before伪类选择器,这两个选择是个很独特的选择器。他可以在你选择的标签中往标签里面添加一个元素并且不会影响到文档的其他元素。这里切记是在你选择的标签里面插入。而且插入的是行内元素。在开发的过程中经常使用这两个伪类选择器去做一些有趣的东西。在后面的案例中我会用到这个伪类选择器。
4.属性选择器
属性选择器是一个不错的过滤选择器,在开发过程中我们会经常遇到一些相同的标签显示不同状态的时候,这时候可以使用属性选择器来将他们区分。
|
选择器 |
例子 |
例子描述 |
Css |
|
[attribute] |
[target] |
选择带有target属性所有元素 |
2 |
|
[attribute=value] |
[tar=_blank] |
选择target=”_blank”的所有元素 |
2 |
|
[attribute~=value] |
[title~=flower] |
选择title属性包含单词”flower”的所有元素 |
2 |
|
[attribute|=value] |
[lang|=en] |
选择lang属性值以”en”开头的所有元素 |
2 |
|
[attribute^=value] |
a[src^=”https”] |
选择其src属性值以”https”开头的每个<a>元素 |
3 |
|
[attribute$=value] |
a[src=”.pdf”] |
选择器src以”.pdf”结尾的所有<a>元素 |
3 |
|
[attribute*=value] |
a[src*=”abc”] |
选择其src属性包含”abc”子串的每个<a>元素 |
3 |
这里举个例子,就像我们平时看到下载文件时,一些链接图标会区分这些文件的类型,就是不同的类型文件会显示不同的图标(icon),这个如果使用这个属性的话就很方便的做出来了
有图是运行结果
5.ui伪类选择器
|
选择器 |
例子 |
例子描述 |
Css |
|
:enabled |
Input:enabled |
选择每个启用的<input>元素 |
3 |
|
:disabled |
Input:disabled |
选择每个禁用的<input>元素 |
3 |
|
:checked |
Input:checked |
选择每个被选中的<input>元素 |
3 |
|
:not(selector) |
:not(p) |
选择非<p>元素的每个元素 |
3 |
|
::selection |
::section |
选择被用户选取的元素部分 |
3 |
这就是第一部分的所有要介绍的选择器
css3 选择器 权重问题 (第一部分)的更多相关文章
- css3 选择器 权重问题 (第二部分)
这篇博文有关css的权重问题,我个人认为这是css知识中很重要的一个知识点.因为在开发的过程能中我们会经常遇到这种问题,特别是如果你使用框架的时候,有些框架的某些标签有一些默认的样式.所以我们可以通过 ...
- 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧
记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...
- 总结30个CSS3选择器
或许大家平时总是在用的选择器都是:#id .class 以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 ;; ...
- 总结30个CSS3选择器(转载)
或许大家平时总是在用的选择器都是:#id .class 以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 * ...
- CSS3 选择器——属性选择器
上一节在<CSS3选择器——基本选择器>中主要介绍了CSS3选择器的第一部分,这节主要和大家一起来学习CSS3选择器的第二部分——属性选择器.属性选择器早在CSS2中就被引入了,其主要作用 ...
- CSS3选择器介绍
1.css3属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- CSS3 选择器——基本选择器
CSS的选择器,我想大家并不会陌生吧,因为天天在使用,但对于CSS3的选择器,要运用的灵活到位,我想对很多朋友还是一定的难度,特别是CSS3中的:nth选择器.那么从现在开始我们先丢开他们版本的区别, ...
- CSS3选择器的研究,案例
在上一篇CSS3选择器的研究中列出了几乎所有的CSS3选择器,和伪类选择器,当是并没有做案例的研究,本想在那篇文章里面写,但想想如果把案例都写在那篇文章里面,对于查找来说就不是很方便,所有另开一篇来讲 ...
- css3选择器(一)
直接开始正文. 一.css3同级元素通用选择器[update20161228] 选择器:E~F 匹配任何在E元素之后的同级F元素 Note:E~F选择器选中的是E元素后面同级元素中的全部F元素. 例: ...
随机推荐
- jboss 虚拟路径
jboss 虚拟路径 上传文件到服务器时,保存到服务器发布应用外路径.这时,就要通过在jboss配置虚拟路劲以访问. 在standalong.xml里找到 <subsystem xmlns=&q ...
- CAD插入非等比例的图块
主要用到函数说明: _DMxDrawX::InsertBlock 向控件数据库中插入一个图块,不用它插入匿名块.详细说明如下: 参数 说明 BSTR pszDwgFileName 图块定义的dwg 文 ...
- c# winform中使用WebKit实现网页与winform的交互
1.工作 一年多了,一直没对自己在工作遇到的问题进行总结,每次遇到问题都要在网上找资料,导致完成项目之后,时间久了就会生疏.所以下定 决定总结自己在工作中遇到的各种问题. 进入正题:第一次写还请大神多 ...
- 棋盘DP三连——洛谷 P1004 方格取数 &&洛谷 P1006 传纸条 &&Codevs 2853 方格游戏
P1004 方格取数 题目描述 设有N $\times N$N×N的方格图(N $\le 9$)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字00.如下图所示(见样例): A ...
- codevs 3385 拯救Oier(一) Save Oier—first
3385 拯救Oier(一) Save Oier—first 传送门 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Descr ...
- CentOS 7安装JDK 1.8
1. 首先查看当前Linux系统是否安装Java ``` rpm -qa | grep java ``` 2. 如果列表显示有,则使用命令将其卸载 rpm -e --nodeps 要卸载的软件名 或 ...
- Codeforces 939D - Love Rescue
传送门:http://codeforces.com/contest/939/problem/D 本题是一个数据结构问题——并查集(Disjoint Set). 给出两个长度相同,且仅由小写字母组成的字 ...
- 【[Offer收割]编程练习赛 14 A】小Hi和小Ho的礼物
[题目链接]:http://hihocoder.com/problemset/problem/1505 [题意] [题解] 考虑Meet in the middle. 因为两个数的和不是很大; 直接用 ...
- noip模拟赛 财富
题目描述LYK有n个小伙伴.每个小伙伴有一个身高hi.这个游戏是这样的,LYK生活的环境是以身高为美的环境,因此在这里的每个人都羡慕比自己身高高的人,而每个人都有一个属性ai表示它对身高的羡慕值.这n ...
- C结构体里的冒号
unsigned m_ScrollType : 3; //uint型,占3bit; unsigned m_ScrollDirection ...