5. CSS 选择器

1、元素选择器

  • 又称为类型选择器(type selector)
  • 文档的元素就是最基本的选择器。
  • 设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 p、h1、em、a,甚至可以是 html 本身。
<style>
        html {color:black;}
        h1 {color:blue;}
        h2 {color:silver;}
    </style>

2、ID选择器

  • 允许以一种独立于文档元素的方式来指定样式。
  • 前面有一个 # 号 -,也称为棋盘号或井号。
<head>
    <meta charset="UTF-8">
    <title>选择器</title>
    <style>
        #identity1{
            font-size: 100px;
            color: red;
        }
        #identity2{
            font-weight: bold;
            color: green;
        }
    </style>
</head>
<body>
    <p1 id="identity1">哈哈哈哈哈哈</p1>
    <p2 id="identity2">呵呵呵呵呵呵</p2>
</body>
  • 每个元素都可以设置id属性
  • 同一个界面id的名称不能重复
  • 编写元素属性时候id前面必须加上要加#
  • id的名称只能由字母/数据、下划线组成
  • id名称不能以数字开头
  • id不能是html的标签名称:a h1 img input
  • id前段开发一般都是留给js使用,不用于设置样式

3、类选择器

  • 类选择器允许以一种独立于文档元素的方式来指定样式。
  • 根据类名称找到对应的标签,设置属性指定样式。
<head>
    <meta charset="UTF-8">
    <title>类选择器-例1</title>
    <style>
        .pp{
            font-family: italic;
            color: darkmagenta;
        }
    </style>
</head>
<body>
    <p3 class="pp">嘿嘿呵呵呵呵</p3>
</body>
  • class名称可以重复
  • 编写时要加上.
  • 命名规范跟id选择器一样
  • 专门给标签设置,这个跟ID选择器不一样
  • 可以同时绑定多个标签
  • 多类选择器
    • 例如:给一个特定的元素同时标记为重(important)和警告(warning)
<head>
    <meta charset="UTF-8">
    <title>类选择器-例1</title>
    <style>
        .important{
            color: darkmagenta;
        }
        .warning{
            color: green;
        }
        .important.warning{
            color: beige;
        }
    </style>
</head>
<body>
    <p class="important warning">嘿嘿呵呵呵呵</p>
    <p class="warning">哈哈哈哈哈哈哈</p>
    <p class="important">哈哈哈哈哈哈哈</p>
  • class=“类名1”“类名3”“类名3”... 可以放n个类名
  • important warning两个词的顺序无关紧要,写成 warning important 也可以。
<head>
    <meta charset="UTF-8">
    <title>两个类选择器</title>
    <style>
        .colorR{
            color: red;
        }
        .size30{
            font-size: 30px;
        }
        .line{
            text-decoration: underline;
        }
    </style>
</head>
<body>
    <p class="colorR size30">第一个</p>
    <p class="size30 line">第二个</p>
    <p class="colorR line">第三个</p>
</body>

4、后代选择器

  • 后代选择器(descendant selector)又称为包含选择器。
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>
  <style>
      div p1 em{
          color: yellow;
      }
  </style>
</head>
<body>
    <div>
        <P1>赤橙<em>黄</em>绿青蓝紫-黄出来</P1>
        <p2></em>赤</em>橙黄绿青蓝紫-赤出来</p2>
    </div>
</body>
  • div找到p1再找到em
  • 两个元素之间的层次间隔可以是无限的
<ul>
  <li>List item 1
    <ol>
      <li>List item 1-1</li>
      <li>List item 1-2</li>
      <li>List item 1-3
        <ol>
          <li>List item 1-3-1</li>
          <li>List item <em>1-3-2</em></li>
          <li>List item 1-3-3</li>
        </ol>
      </li>
      <li>List item 1-4</li>
    </ol>
  </li>
  <li>List item 2</li>
  <li>List item 3</li>
</ul>

5、子元素选择器

子元素选择器(Child selector),只选择某个元素的子元素,而不是选择任意的后代元素,只要子一代的子元素。

<head>
    <meta charset="UTF-8">
    <title>子元素选择器</title>
    <style>
        p1 >redR{
            color: red;
        }
    </style>
</head>
<body>
    <p1><redR>子辈红一代</redR>---孙辈红二代----曾孙辈红三代</p1>
    <p1><em>子辈红一代---</redR>孙辈红二代</redR></em>----曾孙辈红三代</p1>
</body>

子选择器使用了大于号(子结合符,两边可以有空白符,这是可选的。因此,以下写法都没有问题:

p1 > redR
p1> redR
p1 >redR
p1>redR
  • 从右向左读,选择器 p1 > redR 可以解释为“选择作为 p1 元素子元素的所有 redR 元素”。

  • 结合后代选择器和子选择器

table1.company1 tdh > pp
  • 上面的选择器会选择作为 td 元素子元素的所有 p 元素,这个 tdh 元素本身从 table1 元素继承,该 table1 元素有一个包含company1class 属性。如下:
<head>
    <meta charset="UTF-8">
    <title>子元素选择器</title>
    <style>
        table1.company1 tdh > pp{
            color: red;
        }
    </style>
</head>
<body>
    <table1 class="company1">黄色<tdh>黑色<pp>红红红红</pp>白色</tdh>紫色</table1>
    <table1>黄色<tdh1>黑色<pp>红红红红</pp>白色</tdh1>紫色</table1>
    <table1 class="company1"><pp>黄色<tdh>黑色红红红红白色</tdh></pp>紫色</table1>
</body>

6、相邻兄弟选择器

  • 相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。
  • 如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器
  • 与子结合符一样,相邻兄弟结合符旁边可以有空白符。
h1 + p {margin-top:50px;}
  • 这个选择器读作:“选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素”,增加紧接在 h1 元素后出现的段落的上边距。
    <style>
        h1+p{
            color: red;
        }   
    <h1>呵呵呵呵</h1>
    <p>嘿嘿嘿嘿嘿嘿</p>
    <p>嘿嘿嘿嘿嘿嘿</p>

    <h1>哈哈哈哈哈哈</h1>
    <p>嘿嘿嘿嘿嘿嘿2</p>
    <p>嘿嘿嘿嘿嘿嘿2</p>
  • 紧跟<h1>后面的第一个<p>的都是红色,此处改成把第二个<h1>改成<h2>则不行
h3~p{
            color: blueviolet;
        }
    <h3>哼哼哼哼3</h3>
    <a href="#">我是超链接</a>
    <p>嘿嘿嘿嘿嘿嘿3</p>
    <p>嘿嘿嘿嘿嘿嘿3</p>

    <h4>哼哼哼哼4</h4>
    <p>嘿嘿嘿嘿嘿嘿4</p>
    <p>嘿嘿嘿嘿嘿嘿4</p>
  • 此处只要是<h3>后面只要是<p>都会被选择

7、序选择器

<head>
    <meta charset="UTF-8">
    <title>序选择器</title>
    <style>
        p:first-child{
            color: red;
        }
    </style>
</head>
<body>
    <p>哈哈哈哈哈1</p><!--第一级别-->
    <p>哈哈哈哈哈2</p>
    <div>
        <p>哈哈哈哈哈3</p><!--div的第一级别-->
        <p>哈哈哈哈哈4</p>
        <p>哈哈哈哈哈5</p>
    </div>
  • p:first-child 选择属于父元素的第一个子元素的每个 <p> 元素。

6、伪元素选择器

  • 给指定标签内容前面添加一个子元素
标签名称::before{
属性名称:值;
}
  • 给指定标签内容后面添加一个子元素
    标签名称::after{
    属性名称:值;
    }
  • visibility:hidden隐藏添加的子元素
  • display:block指定添加的子元素显示模式
0241D7FF-2FA2-49EF-AD55-7B9807B6F55A.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • Class 和 Id 的使用场景 Class:一个标签可以有多个class且同一个class可以被多个标签共同使用...
    Joey的企鹅阅读 354评论 0 0
  • 一.简单的介绍几种优先级比较 **0.先说一个:***** 代表可以更改全部的标签: 通配符 **1.标签选择器>...
    IIronMan阅读 1,016评论 0 3
  • 1.CSS 元素选择器 最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。如果设置 H...
    饥人谷_小侯阅读 848评论 0 1
  • FreeCodeCamp - HTML5 and CSS 发现原来在另外一台电脑学 FreeCodeCamp 的时...
    付林恒阅读 9,325评论 2 17
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,023评论 0 1