E:last-of-type

闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞鐟滃寮搁弽顓熺厸闁搞儯鍎遍悘鈺冪磼閹邦収娈滈柡宀€鍠栭幃褔宕奸悢鍝勫殥闂備礁鎲¢崹瑙勬叏閹绢喖鐓橀柟杈鹃檮閸嬫劙鎮楅崷顓炐㈡い銉︾箘缁辨挻鎷呴崫鍕碘偓宀勬煕閵娿儳鍩g€殿喖顭烽弫鎰緞婵犲嫷鍚呴梻浣瑰缁诲倿骞夊☉銏犵缂備焦岣块崢鎼佹⒑閸涘﹣绶遍柛鐘愁殜瀹曟劙骞囬悧鍫㈠幐閻庡厜鍋撻悗锝庡墮閸╁矂姊虹€圭媭鍤欐繛鎾敱缁傛帡鏁冮崒娑樼檮婵犮垼娉涘Λ娆戔偓姘卞枛濮婂宕掑▎鎴М闂佺濮ょ划鎾崇暦閹存績妲堥柍鍨涙杹閸嬫捇鏁冮崒娑樷偓濠氭煟閿濆懓瀚扮紒渚婄畵濡懘顢曢姀鈥愁槱缂備礁顑嗙敮鈥崇暦閹邦喗瀚氭繛鏉戭儐閺傗偓婵$偑鍊栧Λ浣肝涢崟顒佸弿闁逞屽墴濮婅櫣绮欏▎鎯у壉闂佽鐡曢褔顢氶妷鈺佺妞ゆ牗姘ㄩ悿鈧俊鐐€栭幐鐐叏閺夋埈鍤曢柟鎯板Г閳锋帒霉閿濆牊顏犻悽顖涚洴閺岋紕浠︾拠鎻掝潎濡ょ姷鍋涢ˇ鐢稿极閹剧粯鍋愰柛鎰ゴ閸嬫捇鎳滈悙閫涚盎闂佸搫娲﹂〃鍛妤e啯鈷戦柛婵嗗閻忛亶鏌涢悩鍐插閽樻繈鏌eΔ鈧悧濠囧磿閻斿吋鐓冮柕澶堝劚閺嗚京绱掗悪鍛М婵﹦绮幏鍛存嚍閵夛絺鍋撻崘顔界厽闁硅櫣鍋熼悾鍨殽閻愭潙鐏寸€规洘鍎奸¨渚€鏌涢妶鍡樼闁靛洤瀚伴獮鎺楀箣濠垫劒鎮i梺鎼炲劜閹稿啿顫忛搹鐟板闁哄洨鍋涢埛澶婎渻閵堝啫濡肩紒缁樺灩閳ь剟娼ч妶鎼佸极閹剧粯鏅搁柨鐕傛嫹

Base Browsers: IE8.0+, Firefox40.0+, Chrome40.0+, iOS8.0+, Android4.4+, Opera40.0+

语法:

E:last-of-type { sRules }

说明:

匹配父元素下的所有E子元素中的倒数第一个。

需要注意3个要点:

  • 首先,因为匹配的是父元素的子元素,这意味着E元素必须作为某个元素的子元素存在(E元素的父元素最高是html,也就是说E元素最高是body,这表示任何非html的元素都符合这个约束,因为html元素是根元素。)
  • 其次,匹配的是父元素的第一个E子元素(要注意:被命中的不一定是父元素的第一个子元素,因为排在子元素首位的不一定是E元素,它可能在子元素列表中的任何位置)

    来看下面这个例子:

    HTML示例代码:

    <div class="demo"> <p>p1</p> <p>p2</p> <span>span1</span> <p>p3</p> <span>span2</span> </div>

    如上HTML,假设要命中第1个span元素,代码如下:

    .demo span:first-of-type { color: #f00; }

    此时 .demo 的第3个子元素会被命中,因为 .demo 的第3个子元素正好是第1个span元素

  • 再次,只能匹配与E元素同级的元素,即:E元素的兄弟元素

    来看下面这个例子:

    HTML示例代码:

    <div class="demo"> <span>span1</span> <p> <span>span2</span> <span>span3</span> </p> <span>span4</span> </div>

    如上HTML,如果我想匹配其中的第1个span,代码如下:

    .demo span:first-of-type { color: #f00; }

    结果span1和span2都会被命中,因为span1和span2分属不同的父元素,并且都是其父元素的首个span元素,所以都会被命中

兼容性:

  • 浅绿 = 支持
  • 红色 = 不支持
  • 粉色 = 部分支持
IE Firefox Chrome Safari Opera iOS Safari Android Browser Android Chrome
6.0-8.0 2.0+ 4.0+ 3.1+ 3.5+ 3.2+ 2.1+ 18.0+
IE9.0+

示例: