iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0

CSS3新增的目標選擇器類型:

1.屬性選擇器

屬性選擇器可以根據元素特定屬性來選擇元素,這樣就可以不用藉助於類或者ID選擇器

MDN Web Docs 屬性選擇器

    /* 必須是input但是具有value這個屬性 */
    input[value] {
        color: pink;
    }

    /* 只選擇type=text文本框的input */
    input[type=text] {
        color: pink;
    }

    /* 首先是div 然後具有class屬性 且屬性開頭以icon */
    div[class^=icon] {
        color: powderblue;
    }

    section[class$=data] {
        color: purple;
    }
2.結構偽類選擇器

結構偽類選擇棄主要根據文檔結構來選擇元素,經常用於根據父級選擇器裡面的子元素

nth-child(n) 選擇某個父元素的一個或多個特定的子元素

    <style>
        /* 選擇ul裡面的第一個li */
        ul li:first-child {
            background-color: purple;
        }

        /* 選擇最後一個li */
        ul li:last-child {
            background-color: red;
        }

        /* 選擇第3個li */
        ul li:nth-child(3) {
            background-color: royalblue;
        }

        /* 把所有偶數的li都選出來 */
        ul li:nth-child(even) {
            background-color: darkcyan;
        }

        /* 把所有奇數的li都選出來 */
        ul li:nth-child(odd) {
            background-color: powderblue;
        }

        /* nth-child(n) 從0開始 每次+1 往後面計算 這裡面必須是n 不能是其他字母 選擇了所有li*/
        ol li:nth-child(n) {
            background-color: rosybrown;
        }
    </style>
</head>

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
    </ul>

    <ol>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
    </ol>
</body>

結構偽類選擇器 codepen

  • n可以是數字,關鍵字和公式
  • n如果是數字就是選擇第n個子元素,裡面數字從1開始...
  • n可以是關鍵字 : even偶數 odd奇數
  • n可以是公式 : 常見的公式如下 (如果n是公式,則從0開始計算 但是第0個元素或者超出了元素的個數會被忽略)
  • nth-child 會對父元素所有盒子都排列序號,先找到n再看是否匹配E
  • nth-of-type 對父元素裡面指定子元素進行排序選擇,先去匹配E,然後再根據E找第n個孩子

備註:

  • 結構偽類選擇器一般用於選擇父級裡面的第幾個孩子
  • nth-child對父元素裡面所有孩子排序選擇(序號是固定的)先找到第n個孩子,然後看看是否和E匹配
  • nth-og-type 對父元素裡面指定子元素進行排序選擇,先去匹配E,然後再根據E找第n個孩子
  • 關於nth-child(n)我們要知道n是從0開始計算的,要記住常用公式
  • 如果是無序列表 肯定使用nth-child
  • 類選擇器 屬性選擇器 偽類選擇器 權重為10
3.偽元素選擇器
::before 在元素的前面插入內容
::after  在元素的後面插入內容

偽元素選擇器 codepen 範例

備註:

  • before和after創建一個元素,但是屬於行內元素
  • 新創建的這個元素在文黨中是找不到的,所以稱為偽元素
  • 語法 : element ::before{ }
  • before和after必須有content屬性
  • before在父元素內容的前面創建元素,after在父元素內容的後面插入元素
  • 偽元素選擇器和標籤選擇器一樣,權重為1

上一篇
Day 22 HTML5 <HTML5 input類型、表單標籤>
下一篇
Day 24 CSS3 < 過渡 transition>
系列文
從零開始前端學習(HTML、CSS、JavaScript) 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言