【问题标题】:Less CSS: & reverse parent with multiple classes?更少的 CSS:& 具有多个类的反向父级?
【发布时间】:2016-03-31 21:07:47
【问题描述】:

这是我第一次发现 & 父选择器非常有用,因此我不需要重新定义父选择器来修改子元素。

当然,这实际上用 LESS 很容易,但我不得不问!

<div id="skrollr-body" class="nonav">
    <div class="skrollable">

    </div>
</div>


#skroller-body {
    .skrollable {
        margin-top:40px;

        .nonav & {
            // this parent selector lets me modify 
            // .skrollable without duplicating it
            margin-top:0px;

        }
    }
}

.nonav &amp; 的输出是 .nonav #skroller-body .skrollable

我想知道是否可以在没有额外 HTML 标记(包装器 div.nonav)的情况下以某种方式获得 #skroller-body.nonav .skrollable

目前我只会复制父级

#skrollr-body {
    margin-top:40px;
    left:0;
    width:100%;

    .skrollable {
        margin-top:40px;
        position:fixed;
        z-index:100;
        .skrollable {
            position:absolute;

            .skrollable {
                position:static;
            }
        }
    }
    &.nonav {
            .skrollable {
                 margin-top:0px;
            }
    }
}

或者保存冗余输出;

#skroller-body.nonav .scrollable { margin-top:0px; }

但这里的重点是 易于维护和阅读的 CSS 代码

【问题讨论】:

    标签: less


    【解决方案1】:

    The docs tell us:

    &amp; 运算符表示嵌套规则的父选择器,并且 在应用修改类或伪类时最常用 到现有的选择器

    所以:

    #skroller-body {
            &.nonav {
                .skrollable {
                    // stuff
                }
            }
        }
    }
    

    【讨论】:

    • 哦,是的,这很好,我不需要复制父内容!
    猜你喜欢
    • 2013-07-07
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    相关资源
    最近更新 更多