其实我现在写的这些博文笔记都是我很早之前学习的时候所写的笔记,只不过之前是没有写博客的习惯,所以都是写在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 选择器 权重问题 (第一部分)的更多相关文章

  1. css3 选择器 权重问题 (第二部分)

    这篇博文有关css的权重问题,我个人认为这是css知识中很重要的一个知识点.因为在开发的过程能中我们会经常遇到这种问题,特别是如果你使用框架的时候,有些框架的某些标签有一些默认的样式.所以我们可以通过 ...

  2. 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

    记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...

  3. 总结30个CSS3选择器

    或许大家平时总是在用的选择器都是:#id  .class  以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 ;; ...

  4. 总结30个CSS3选择器(转载)

    或许大家平时总是在用的选择器都是:#id  .class  以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 * ...

  5. CSS3 选择器——属性选择器

    上一节在<CSS3选择器——基本选择器>中主要介绍了CSS3选择器的第一部分,这节主要和大家一起来学习CSS3选择器的第二部分——属性选择器.属性选择器早在CSS2中就被引入了,其主要作用 ...

  6. CSS3选择器介绍

    1.css3属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  7. CSS3 选择器——基本选择器

    CSS的选择器,我想大家并不会陌生吧,因为天天在使用,但对于CSS3的选择器,要运用的灵活到位,我想对很多朋友还是一定的难度,特别是CSS3中的:nth选择器.那么从现在开始我们先丢开他们版本的区别, ...

  8. CSS3选择器的研究,案例

    在上一篇CSS3选择器的研究中列出了几乎所有的CSS3选择器,和伪类选择器,当是并没有做案例的研究,本想在那篇文章里面写,但想想如果把案例都写在那篇文章里面,对于查找来说就不是很方便,所有另开一篇来讲 ...

  9. css3选择器(一)

    直接开始正文. 一.css3同级元素通用选择器[update20161228] 选择器:E~F 匹配任何在E元素之后的同级F元素 Note:E~F选择器选中的是E元素后面同级元素中的全部F元素. 例: ...

随机推荐

  1. 大白_uva10795_新汉诺塔

    题意:给出所有盘子的初态和终态,问最少多少步能从初态走到终态,其余规则和老汉诺塔一样. 思路: 若要把当前最大的盘子m从1移动到3,那么首先必须把剩下的所有盘子1~m-1放到2上,然后把m放到3上. ...

  2. 【原】PHPExcel导出Excel

    1.引入相关公共库PHPExcel 2.编写公共函数 public function exportExcel($excelTitle,$data,$filename='',$column_width= ...

  3. Books Queries (codeforces 1066C)

    模拟题 开一个容器进行模拟即可,注意容器设置初始大小不然容易re.设置两个指针l,r.把容器当作桶,每一个桶都有一个编号表示位置,左边进入那么就是编号为l,右边一样.然后l--或者r++,l=r=0的 ...

  4. uva 202(Repeating Decimals UVA - 202)

    题目大意 计算循环小数的位数,并且按照格式输出 怎么做 一句话攻略算法核心在于a=a%b*10,用第一个数组记录被除数然后用第二个数组来记录a/b的位数.然后用第三个数组记录每一个被除数出现的位置好去 ...

  5. 42.global bucket的使用:单个品牌与所有品牌销量对比

    主要知识点: _global bucket的使用     本例以搜索单个品牌和所有品牌的销量对比进行学习_global .es在进行aggregation操作时都只只是在一个scope中进行聚合等操作 ...

  6. 『REM』手机屏幕适配

    function adapt(designWidth, rem2px){ var d = window.document.createElement('div'); d.style.width = ' ...

  7. 树 (p155, 从中序和后续回复二叉树)

    递归求解, You are to determine the value of the leaf node in a given binary tree that is the terminal no ...

  8. [bzoj1010][HNOI2008]玩具装箱toy_斜率优化dp

    玩具装箱toy bzoj-1010 HNOI-2008 题目大意:P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一 ...

  9. 洛谷—— P1379 八数码难题

    https://daniu.luogu.org/problem/show?pid=1379 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示 ...

  10. P2330 [SCOI2005] 繁忙的都市 洛谷

    https://www.luogu.org/problem/show?pid=2330#sub 题目描述 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C ...