4.CSS选择器

1.CSS基础选择器

1)通配符选择器

通配符选择器用“*”号表示,他是所有选择器中作用范围最广的,能匹配页面中所有的元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            font-size: 28px;
        }
        div {
            color: red;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div>码海无际</div>
    <span>码海无际</span>
</body>
</html>
4_1.jpg

2)标签选择器

标签选择器是指用HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            color: pink;
        }
    </style>
</head>
<body>
    <div>码海无际</div>
</body>
</html>
4_2.jpg

3)类选择器

  1. 不要纯数字、中文等命名,尽量使用英文字母来表示。
  2. 长名称或词组可以使用中横线来为选择器命名。
  3. 不建议使用“_”下划线来命名CSS选择器。
  4. 类选择器使用“.”(英文点号)进行标识,后面紧跟类名。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .color-blue{
            color: blue;
        }
    </style>
</head>
<body>
    <div class="color-blue">码海无际</div>
    <span class="color-blue">志向高远</span>
</body>
</html>
4_3.jpg

4)多类名选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .color-blue{
            color: blue;
        }
        .font-size28{
            font-size: 28px;
        }
    </style>
</head>
<body>
    <div class="color-blue font-size28">码海无际</div>
    <span class="color-blue">志向高远</span>
</body>
</html>
4_4.jpg

5)id选择器

  1. 用法基本和类选择器相同。
  2. id选择器使用“#”进行标识,后面紧跟id名。
  3. 该语法中,id名即为HTML元素的id属性值,大多数HTML元素都可以定义id属性,元素的id值是唯一的,只能对应于文档中某一个具体的元素。

id选择器和类选择器区别:

  1. W3C标准规定,在同一个页面内,不允许有相同名字的id对象出现,但是允许相同名字的class。

  2. 类选择器(class),好比人的名字,是可以多次重复使用的,比如:张伟、老王。

  3. id选择器,好比人的身份证号码,全中国是唯一的,不得重复,只能使用一次。

  4. id选择器和类选择器最大的不同在于使用次数上。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #color-blue {
            color: blue;
        }
    </style>
</head>
<body>
    <div id="color-blue">码海无际</div>
</body>
</html>
4_5.jpg

6)选择器的优先级

通配符选择器<标签选择器<类选择器<id选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            color: pink;
        }
        div {
            color: red;
        }
        div {
            color: blue;
        }
        .color-green {
            color: green;
        }
        #color-blueviolet {
            color: blueviolet;
        }
    </style>
</head>
<body>
    <div class="color-green" id="color-blueviolet">码海无际</div>
</body>
</html>
4_6.jpg

2.CSS复合选择器

1)交集选择器

  1. 交集选择器由两个或两个以上选择器构成。
  2. 选择器之间没有任何的连接符号,选择器之间没有固定顺序。
  3. 选择器可以是:标签选择器、类选择器、id选择器。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div.color-blue {
            color: blue;
        }
        div#color-red.color-red{
            color: red;
        }
    </style>
</head>
<body>
    <div class="color-blue">码海无际</div>
    <span class="color-blue">码海无际</span>
    <hr>
    <div class="color-red" id="color-red">码海无际</div>
</body>
</html>
4_7.jpg

2)并集选择器

  1. 交集选择器由两个或两个以上选择器构成。
  2. 选择器之间通过英文逗号连接,选择器之间没有固定顺序。
  3. 选择器可以是:标签选择器、类选择器、id选择器。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*span {*/
        /*    color: blue;*/
        /*    font-size: 28px;*/
        /*}*/

        /*div {*/
        /*    color: blue;*/
        /*    font-size: 28px;*/
        /*}*/
        /*俩种写法一样*/
        span, div {
            color: blue;
            font-size: 28px;
        }
    </style>
</head>
<body>
    <div>码海无际</div>
    <span>码海无际</span>
</body>
</html>
4_8.jpg

3)子元素选择器

  1. 子元素选择器只能选择作为某元素子元素的元素。其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个 > 进行连接,注意,符号左右两侧各保留一个空格。
  2. 这里的子,指的是亲儿子,不包含孙子、重孙子之类。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div > .color-pink > span{
            color: pink;
        }
    </style>
</head>
<body>
    <div>
        <div class="color-pink">
            <span>码海无际</span><!--有效果-->
        </div>
        <div>
            <span>码海无际</span><!--无效果-->
        </div>
        <span>
            <div class="color-pink">
               <span>码海无际</span><!--无效果-->
            </div>
        </span>
    </div>
</body>
</html>
4_9.jpg

4)后代选择器

  1. 后代选择器又称为包含选择器,用来选择元素或元素组的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
  2. 包含孙子、重孙子之类
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div h1{
            color: blue;
        }
    </style>
</head>
<body>
    <div>
        <h1>码海无际</h1>
        <span>
            <h1>码海无际</h1>
        </span>
    </div>
</body>
</html>
4_10.jpg

5)伪类选择器

  1. 伪类选择器用于向某些选择器添加特殊的效果。
  2. 伪类对象要配合content属性一起使用。
  3. 一个冒号是css2的写法,两个冒号是css3的写法,表达的意思一样。
  4. 冒号的前面和后面都不允许有空格。
选择器 示例 示例说明
:checked input:checked 选择所有选中的表单元素
:disabled input:disabled 选择所有禁用的表单元素
:empty p:empty 选择所有没有子元素的p元素
:enabled input:enabled 选择所有启用的表单元素
:first-of-type p:first-of-type 选择的每个 p 元素是其父元素的第一个 p 元素
:in-range input:in-range 选择元素指定范围内的值
:invalid input:invalid 选择所有无效的元素
:last-child p:last-child 选择所有p元素的最后一个子元素
:last-of-type p:last-of-type 选择每个p元素是其母元素的最后一个p元素
:not(selector) :not(p) 选择所有p以外的元素
:nth-child(n) p:nth-child(2) 选择所有 p 元素的父元素的第二个子元素
:nth-last-child(n) p:nth-last-child(2) 选择所有p元素倒数的第二个子元素
:nth-last-of-type(n) p:nth-last-of-type(2) 选择所有p元素倒数的第二个为p的子元素
:nth-of-type(n) p:nth-of-type(2) 选择所有p元素第二个为p的子元素
:only-of-type p:only-of-type 选择所有仅有一个子元素为p的元素
:only-child p:only-child 选择所有仅有一个子元素的p元素
:optional input:optional 选择没有"required"的元素属性
:out-of-range input:out-of-range 选择指定范围以外的值的元素属性
:read-only input:read-only 选择只读属性的元素属性
:read-write input:read-write 选择没有只读属性的元素属性
:required input:required 选择有"required"属性指定的元素属性
:root root 选择文档的根元素
:target #news:target 选择当前活动#news元素(点击URL包含锚的名字)
:valid input:valid 选择所有有效值的属性
:link a:link 选择所有未访问链接
:visited a:visited 选择所有访问过的链接
:active a:active 选择正在活动链接
:hover a:hover 把鼠标放在链接上的状态
:focus input:focus 选择元素输入后具有焦点
:first-letter p:first-letter 选择每个p元素的第一个字母
:first-line p:first-line 选择每个p元素的第一行
:first-child p:first-child 选择器匹配属于任意元素的第一个子元素的 p 元素
:before p:before 在每个p元素之前插入内容
:after p:after 在每个p元素之后插入内容
:lang(language) p:lang(it) 为p元素的lang属性选择一个开始值
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        a:visited{
            color: red;
        }
        p:before{
            content:"P前面";
            color: red;
        }
        p:after{
            content:"P后面";
            color: red;
        }
    </style>
</head>
<body>
    <a href="https://www.taobao.com">淘宝</a>
    <a href="https://www.baidu.com">百度</a>
    <a href="https://www.taobaoaa.com">淘宝aa</a>
    <a href="https://www.taobaoaaa.com">淘宝aaa</a>
    <hr>
    <p>P元素</p>
</body>
</html>
4_11.jpg
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354

推荐阅读更多精彩内容

  • 基础选择器 想要将CSS样式应用于特定的HTML元素,首先需要找到该目标元素。在CSS中,执行这一任务规则部分被称...
    Augustzhao阅读 237评论 0 0
  • 其实平时用得多的选择器无非也就是那么几个,时间久了,许多不常用的选择器就慢慢忘记了。为了不让自己忘记这些选择器,今...
    盛夏晚清风阅读 1,830评论 0 5
  • 一、CSS选择器常见的有几种? 基本选择器 通配选择器~选择文档中所有的html元素,用一个*表示 元素选择器~选...
    dengpan阅读 962评论 0 3
  • 1.class 和 id 的使用场景? 两者都能选取DOM节点并给DOM节点添加样式,但是W3C标准里规定页面中只...
    饥人谷_米弥轮阅读 393评论 0 1
  • 1.class 和 id 的使用场景? class:类选择器,一个标签可以有多个类且同一个类可以用到不同的标签上,...
    饥人谷_兔子君阅读 1,192评论 0 0