7

我希望border radius从 Bootstrap 中的所有元素中删除。所以我在其中创建custom-mixins.less并放置了以下行,希望它会覆盖原始的.border-radiusmixin,但没有。

// Border Radius
.border-radius(@radius) {      
}

所以我尝试了以下几行作为实际工作的替代方案。

// Border Radius
.border-radius(@radius) {
  @radius : 0px;
  -webkit-border-radius: @radius;
     -moz-border-radius: @radius;
          border-radius: @radius;
}

我在http://less2css.org. 似乎 less 而不是覆盖 mixin,而是将后来 mixin 中的所有属性附加到原始属性中。有没有更清洁和更简单的解决方案????

4

3 回答 3

9

在这方面,Less 的工作方式与 CSS 完全一样。例如,如果你写了这个 CSS:

p { border: 1px solid black; }

它会给所有段落一个黑色边框。如果稍后在您添加的文档中:

p { }

你不会期望它会覆盖你之前的定义,对吧?

因此,在这种情况下,这是预期的行为,您需要专门覆盖要覆盖的 CSS 值。

于 2013-06-14T04:29:07.723 回答
1

从lesscss 1.7.0开始,这应该可以通过使用“分离的规则集”来实现,但不幸的是,即使使用1.7.5,当我尝试使用分离的规则集语法时,我也会得到“ParseError:无法识别的输入”

http://lesscss.org/features/#detached-rulesets-feature

[编辑]:我得到了解析错误,因为我在规则集定义之后删除了分号,但它工作正常 - 规则集没有参数,它实际上是一个变量,所以它的定义可以被覆盖

于 2014-09-18T09:15:24.180 回答
0

如果您在项目中导入较少的 Bootstrap 文件,则可以尝试编辑/覆盖 Bootstrap 组件半径变量:

@border-radius-base: 0px;
@border-radius-small: 0px;
@border-radius-large: 0px;

如果没有,那么您可以重新编译并下载 Bootstrap CSS 代码,将 0px 值设置为http://getbootstrap.com/customize/中的这些变量

于 2014-09-29T10:14:54.143 回答