CSS nth-of-type計算錯誤?

Joez87
Apr 27, 2021

在開發公司網站新頁面時發現了一件很有趣的事情,原本左右有間隔的商品之間突然沒有間隔了,然而其他頁面是正常的。如下圖所示:先看css的部分

原本藍色旁邊的白邊應該在中間,包含藍色部分的item中有個class叫做bar,熟悉CSS的人都知道CSS的順序是從1開始而不是0,正常來說應該會在右邊,於是藍色方塊的順序變成了左邊是奇數右邊是偶數項。

來看一下結構的部分:

其中item red為最上面的紅色部分,與藍色部分的item區塊為同級,初步猜測它也列入計算而使藍色的奇偶項平移了。

demo網址:https://codepen.io/vojqyqsh/pen/RwKdEMP

後來我做了一點變動,我創了一個container2來包那些class帶有bar的item,就正常了。

來看結構的部分:

這次多了一個container2來包其他的藍色item,使紅色的區塊與藍色區塊不同級,問題解決。

demo網址:https://codepen.io/vojqyqsh/pen/zYNbyXb

結論:

原本以為nth-of-type可以只抓帶有某class的第n個,根據以上範例來說與藍色物件同級的紅色元素似乎也會被參考進去。

然後我就查了一下w3cshool的敘述:

nth-of-type計算依照同級元素,前面接classname也是照著type去計算,而紅色區塊與藍色區塊classname不同,type一樣是div。

網址:https://www.w3schools.com/cssref/sel_nth-of-type.asp

如果有甚麼想法或是覺得說的不對的歡迎開鞭。

--

--

Joez87
0 Followers

輸出的才是真的學到的