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元素. 例: ...
随机推荐
- css中有些属性的前面会加上“*”或“_(兼容IE浏览器)
给不同浏览器识别: color{ background-color: #CC00FF; /*所有浏览器都会显示为紫色*/ background-color: #FF0000\9; /*IE6.IE7. ...
- 从 UI 交互角度说语音识别产品
语言是人类进化的主要特征,而人工智能拥有了说话的能力也是科技进步的一个特征.在很多科幻的电影里面,我们可以看到人工智能的身影.在电影 her 里面见到的人工智能,真的让人叹为观止,他可以随意的和你聊天 ...
- Attention-based Model
一.Attention与其他模型 1.LSTM.RNN的缺点:输入的Memory长度不能太长,否则参数会很多. 采用attention可以输入长Memory,参数不会变多. 2.Sequence to ...
- c++ map: 根据value逆向查找key
#include <iostream> #include <map> #include <algorithm> #include <vector> #i ...
- 新浪微博API生成短链接
通过新浪微博API,生成短链接,支持一次性转多个长链接 什么是短链接 短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串. 短链接服务 国内各大微博都推出了自己的短链接 ...
- Django的基础教程
学Django需要什么基础? 1. Django是 python 语言写的一个Web框架包,所以你得知道一些 Python 基础知识. 2. 其次你最好有一些做网站的经验,懂一些网页 HTML, CS ...
- Modbus 协议解析
- Spring Boot学习总结(4)——使用Springloaded进行热部署
我在开发的时候,总是会及时对自己的程序进行测试,总是频繁的重启web server,容器不烦我们都觉得烦了. dependencys目录下增加: <dependency> <grou ...
- nyoj_85_有趣的数_201312122130
有趣的数 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 把分数按下面的办法排成一个数表. 1/1 1/2 1/3 1/4..... 2/1 2/2 ...
- C#实现所有经典排序算法汇总
C#实现所有经典排序算法1.选择排序 class SelectionSorter { private int min; public void Sort(int[] arr) { ; i < a ...