【问题标题】:Less Css Inheritance更少的 CSS 继承
【发布时间】:2012-06-18 14:13:53
【问题描述】:

假设我有这样的课程:

.navigation{
    display: block;
    ul li{
        float: left;
        a{display: block;}
    }

}

.. 和以下标记:

<nav>
    <ul>
        <li><a href="#">Link One</a></li>
        <li><a href="#">Link Two</a></li>
    </ul>
</nav>

现在,我想用我刚刚创建的类来格式化我的导航。所以我会这样做:

nav{.navigation;}

我的问题是:我不能让“ul”及其子元素像我预期的那样继承属性。只有“nav”标签获得了“display:block”属性,但其他元素保持无样式。

有没有办法使用 Lesscss 重用这样的类?

【问题讨论】:

  • 我是否正确理解您,您期望(或希望)ul li 从其父级获得display: block,但前提是它位于&lt;nav&gt; 中(或者不是不管什么时候调用)?

标签: inheritance less code-reuse


【解决方案1】:

这是不正确的用法。如果要使用LESS,那么.navigation不是类,而是mixin(.navigation())

.navigation(){
    display: block;
    ul{
       li{
          float: left;
          a{
             display: block;
          }
       }
    }
}

然后你调用这个 mixin

nav{.navigation;}

另一种选择是不使用类:

nav{
   display: block;
   ul{
      li{
        float: left;
        a{
           display: block;
        }
      }
   }
}  

或与类:

<nav class="navigation">
<ul>
    <li><a href="#">Link One</a></li>
    <li><a href="#">Link Two</a></li>
</ul>

.navigation{
    display: block;
    ul{
       li{
           float: left;
           a{
               display: block;
           }
       }
    }
}

【讨论】:

  • 有没有一种简单的方法可以用 LESS 继承和扩展类?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-07
相关资源
最近更新 更多