关于nth-of-type选择相同标签不同类时产生的混乱现象

在学习nth-of-type这个伪类选择器时,会觉得这个选择器很强大,但是在使用的过程中遇到了一种现象,该现象导致该选择器无法实现预期目的,达到了与nth-child一样的效果.目前仍无很好的解决方法.
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <style>
        main{
            /* 整体的宽度 */
            width: 340px;
        }
        /* 中间插入一个盒子,但是不同类名 */
        .banner{
            float: left;
            width: 340px;
            height: 200px;
            background-color: pink;
        }
        .test{
            float: left;
            width: 100px;
            height: 100px;
            background-color: plum;
            /* 每个小盒子都有一个右外边距 */
            margin-right: 20px;
            margin-bottom: 20px;
        }
        .test:nth-of-type(3n){
            /* 让每三个小盒子的右外边距为0,这样才能放得下 */
            margin-right: 0;
        }
    </style>
</head>
<body>
    <main>
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>

        <div class="banner"></div>

        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>

        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>

        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>
    </main>
</body>
</html>

效果如下
关于nth-of-type选择相同标签不同类时产生的混乱现象

可以看出来,类名为.banner的盒子居然参与到了nth-of-type的计数,不然不会出现banner下方的盒子从第二个开始就右外边距为0的现象.

目前最好的解决方法就是不让banner使用div标签,使用section标签也能达到预期目的.

效果如下
关于nth-of-type选择相同标签不同类时产生的混乱现象

可以看出,小盒子准确的摆放在了我们想要的位置.

上一篇:Spring Boot中的一些常用配置介绍!


下一篇:【转】多核CPU运行模式