开发者社区> 问答> 正文

css中的“继承”

“继承”我打了引号,因为实在前端能力有限不知道这个该怎么描述,google了下出来的全是正常的继承,就是子元素覆盖父元素样式之类的。我的问题很简单,我有一个样式:

.a
{
   margin-left: 10px;
   color: red;
   ...
}

我现在有一个样式b,大部分跟a差不多,我不想再写一次了,这个时候怎么“继承”呢?

展开
收起
a123456678 2016-03-25 10:46:08 1861 0
2 条回答
写回答
取消 提交回答
  • 可以使用 less, sass 等写法,通过预编译处理,得到最终的css。

    less, sass 都可以支持 变量,函数等基本操作语法。

    举例: 使用 less 的 mixin 来模拟实现继承

    .bordered {
      border-top: dotted 1px black;
      border-bottom: solid 2px black;
    }
    
    #menu a {
      color: #111;
      .bordered;
    }
    

    menu a 直接将 .bordered 的样式合并进来, 从而实现了类似 #menu a 继承 .bordered 样式的效果。

    2019-07-17 19:13:46
    赞同 展开评论 打赏
  • .margin {
       margin-left: 10px;
    }
    .a {
      color: red;
    }
    .b {
      color: blue;
    }
    
    <div class="margin a">A element</div>
    <div class="margin b">B element</div>
    如果你不想在html多写一个class,可以这样
    
    .a, .b {
      margin-left: 10px;
    }
    .a {
      color: red;
    }
    .b {
      color: blue;
    }

    逗号可以分隔开平级的选择器,也就是说被逗号分隔的选择器都会拥有之后写的样式。

    2019-07-17 19:13:46
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
零基础CSS入门教程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载