11.CSS选择器

  • 选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>选择器</title>
        <style type="text/css">
            /*元素选择器*/
            div{
                background-color: gray;
                padding: 0.5em;
                font-family: "楷体";
                border: solid 2px white;
                border-radius: 1em;
            }
            h3{
                font-family: "微软雅黑";
            }
            /*组合选择器*/
            #groupH3,#groupP{
                color: white;
            }
            /*类选择器*/
            .classH3{
                color: red;
            }
            p.classP{
                color: red;
            }
            /*id选择器*/
            #idH3,#idP{
                color: orange;
            }
            /*属性选择器*/
            p[title]{
                color: yellow;
            }
            /*后代选择器*/
            .posterity p{
                color: green;
            }
            /*子选择器*/
            .children > p{
                color: blue;
            }
            /*相邻选择器*/
            .nearby h3+p{
                color: indigo;
            }
        </style>
    </head>
    <body>
        <div>
            <h3>类型选择器</h3>
            <p>元素选择器,又叫类型选择器(type selector),匹配所有类型的标签元素,例:p{}</p>
        </div>
        <div>
            <h3 id="groupH3">选择器分组</h3>
            <p id="groupP">同样布局的元素,同时设定,例:h3,p{}</p>
        </div>
        <div>
            <h3 class="classH3">类选择器</h3>
            <p class="classP">
                01. 通过.classValue访问元素,设置其布局,例:.classH3{};<br />
                02. 可与通配符*结合使用;<br />
                03. 可与元素选择器结合使用,例如p.classP
            </p>
        </div>
        <div>
            <h3 id="idH3">id选择器</h3>
            <p id="idP">
                01. 通过#idValue访问元素,设置其布局,例:#idH3{};<br />
                02. 可与通配符*结合使用;<br />
                03. 在一个Html文档中,一个id只能使用一次,元素的id值不可重复;<br />
                04. id选择器不能结合使用,例:class="class01 class02",但id不可
            </p>
        </div>
        <div>
            <h3 title="propH3">属性选择器</h3>
            <p title="propP1">
                01. 通过[属性名]访问元素,设置其布局,例:[title]{};
            </p>
            <p title="propP2">
                02. 支持通配符*,例:*[title]{};
            </p>
            <p title="propP3" class="attrP3">
                03. 支持多属性匹配,例:[title][class]{},访问元素,设置其布局;
            </p>
            <p title="propP4">
                04. 可与元素选择器结合,例:p[title]{};
            </p>
            <p title="propP5" class="attrP5">
                05. 值等匹配,例:p[title="propP5"]{},支持多值匹配p[title="propP5"][class="attrP5"]{};
            </p>
            <p title="propP6">
                06. 值包含匹配,例:p[title~="prop"]{},只要包含此值即可匹配上;
            </p>
            <p title="propP7">
                07. 值开头匹配,例:p[title|="prop"]{},匹配项必须是一个单词,以此单词开头才可匹配上;
            </p>
            <p title="propP8">
                08. 值开头匹配,例:p[title^="prop"]{},匹配属性值以指定值开头的每个元素;
            </p>
            <p title="propP9">
                09. 值结尾匹配,例:p[title$="P9"]{},匹配属性值以指定值结尾的每个元素;
            </p>
            <p title="propP10">
                10. 值包含匹配,例:p[title*="ropP"]{},匹配属性值中包含指定值的每个元素;
            </p>
        </div>
        <div class="posterity">
            <h3>后代选择器</h3>
            <p>
                01. 通过空格实现后代选择器,例:div p{};<br />
                02. 后代选择器又称为包含选择器,例:.posterity p{};<br />
                03. 后代选择器支持多层结构,例:body div p{};<br />
                04. 后代选择器选择其所有的后代,无论其嵌套多深,中间是否包含其他元素,例:body p{};
            </p>
        </div>
        <div class="children">
            <h3>子选择器</h3>
            <p>
                01. 通过>实现子选择器,例:div > p{};<br />
                02. 子选择器只能选择其子代元素,不包含非子代的嵌套元素;<br />
                03. 子选择器支持多层结构,例:body .children > p{};<br />
            </p>
        </div>
        <div class="nearby">
            <h3>相邻选择器</h3>
            <p>
                01. 通过+实现相邻选择器,例:h3 + p{};<br />
                02. 相邻选择器只能选择同级且父元素为同一个且在其之后的元素;<br />
                03. 相邻选择器支持多层结构,例:body .nearby h3 + p{};<br />
            </p>
        </div>
    </body>
</html>
image.png

  • 伪类&伪元素

    伪类

    :active 向被激活的元素添加样式,a:active 必须被置于 a:hover 之后,才是有效的
    :focus 向拥有键盘输入焦点的元素添加样式
    :hover 当鼠标悬浮在元素上方时,向元素添加样式,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的
    :link 向未被访问的链接添加样式
    :visited 向已被访问的链接添加样式
    :first-child 向元素的第一个子元素添加样式,例:p:first-child,是指第一个p元素
    :lang 向带有指定 lang 属性的元素添加样式
    <!DOCTYPE html>
    <html>
      <head>
          <meta charset="utf-8" />
          <title>选择器</title>
          <style type="text/css">
              div{
                  margin: 1em;
              }
              div span:first-child{
                  color:gray;
              }
              .clsDiv{
                  background-color: cadetblue;
                  padding: 0.5em;
                  width: 2em;
                  border-radius: 1em;
                  border: 2px solid cornflowerblue;
              }
              .clsDiv:hover{
                  background-color: mediumslateblue;
                  color: white;
                  border: 2px solid slateblue;
              }
          </style>
      </head>
      <body>
          <div>
              <span>Name :</span>
              <span>Yoyo</span>
          </div>
          <div class="clsDiv">变色</div>
      </body>
    </html>
    
    test26.gif

    伪元素

    <!DOCTYPE html>
    <html>
      <head>
          <meta charset="utf-8" />
          <title>选择器</title>
          <style type="text/css">
              .poetry:first-line{
                  color: red;
              }
              .letter:first-letter{
                  color: red;
              }
              .before:before{
                  content: ":first";
              }
              .after:after{
                  content: ":after";
              }
          </style>
      </head>
      <body>
          <p class="poetry">
              :first-line<br />
              窗前明月光;<br />
              疑是地上霜;<br />
              举头望明月;<br />
              低头思故乡.<br />
          </p>
          <p class="letter">:first-letter</p>
          <p class="before"></p>
          <p class="after"></p>
      </body>
    </html>
    
    image.png

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

推荐阅读更多精彩内容