前端常見bug系列1:容易被誤解的:last-child和:first-child
用某個選擇器過濾出來一個元素集合,當我們想選中最後一個元素的時候,是不是很容易想到:last-child?比如,有下面一段CSS和HTML片段:
<style>
.section{
margin-bottom: 50px;
}
.section1-item:last-child{
color: blue;
}
</style>
<section class="section section1">
<header>header</header>
<p class="section1-item card">111</p>
<p class="section1-item card">222</p>
<p class="section1-item card">333</p>
<p class="section1-item card">444</p>
<footer>footer</footer>
</section>
本來是想選中<p class="section1-item card">444</p>
給它設定顏色為藍色的,結果什麼也沒有發生。為什麼?
檢視W3C的相關介紹:
The :last-child pseudo-class represents an element that is the last child of some other element.
someselecttor:last-chid 所表示的是,如果someselecttor所選中的某個節點恰好是其父元素的最後一個直接子節點,那麼該選擇器生效。而不是表示someselecttor選中的節點集合的最後一個。
同理,我們馬上可以想到,:first-child是不是也有類似問題?新增一句樣式.section1-item:last-child{ color: red; }
到上面的例子中一試就知道,問題果然存在。
someselecttor:first-chid 所表示的是如果someselecttor所選中的某個節點恰好是其父元素的第一個直接子節點,那麼該選擇器生效。
相關文章
- 常見BUG解決
- 前端常見bug系列4:JavaScript中忘記型別轉換所導致的條件判斷錯誤舉例前端JavaScript型別
- Hive常見的bug與解決辦法。Hive
- 那些常見的Web前端學習誤區分享!Web前端
- Apache Spark常見的三大誤解ApacheSpark
- 被誤解的 MVC 和被神化的 MVVMMVCMVVM
- 被誤解的MVC和被神化的MVVMMVCMVVM
- Go常見錯誤第15篇:interface使用的常見錯誤和最佳實踐Go
- 前端:常見的6種HTML5錯誤用法前端HTML
- 對定義過程和敏捷性的常見誤解敏捷
- 容易被遺忘的前端基礎:JavaScript 記憶體詳解前端JavaScript記憶體
- Stream -- Node.js中最好的卻最容易被誤解的部分Node.js
- Session容易丟失的一些常見解決辦法Session
- 關於大資料的常見誤解大資料
- 常見的web錯誤Web
- C/C++常見錯誤詳解C++
- 前端常見命名前端
- 對web應用程式安全的常見誤解Web
- 前端常見跨域解決方案(全)前端跨域
- 7個前端新手常見誤區,千萬要避開前端
- Web開發和設計上容易被忽視的8個錯誤Web
- 常見的幾種IE6 BUG及其解決的方法
- PHP編譯安裝時常見錯誤解決辦法,php編譯常見錯誤PHP編譯
- 常見的錯誤 SQL 用法SQL
- SOCKS代理的常見誤區
- MySQL 常見錯誤MySql
- oracle 常見錯誤Oracle
- Elasticsearch常見的5個錯誤及解決策略Elasticsearch
- Oracle 常見的錯誤問題及解決方法Oracle
- 常見的80004005錯誤及其解決方法 (轉)
- 對JAVA語言的十個常見誤解(轉)Java
- 派克斯常見錯誤程式碼詳解
- Hadoop常見錯誤及解決方案Hadoop
- 開發常見錯誤及解決方案
- 常見的前端面試題前端面試題
- 前端常見的部分面試題前端面試題
- Web前端工程師的一些常見誤區介紹!Web前端工程師
- 前端常見面試題前端面試題