SASS:宽度:100% - 20px - 可能吗?

时间:2011-11-14 18:52:53

标签: css sass

我在我的许多项目中使用填充,如果我可以从宽度中减去填充,那么它是否会很方便呢?

如果:

width:100%; 

padding: 20px; 

=

100% - 40px ?  

4 个答案:

答案 0 :(得分:12)

您可以使用box-sizing: border-boxpadding计为width的一部分。

div {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

以下是一个快速演示:http://jsfiddle.net/thirtydot/DNs2u/

更多信息:

答案 1 :(得分:6)

width: calc(100% - 40px);

更多calc()使用: CSS Tricks: A Couple of Use Cases for Calc()

答案 2 :(得分:1)

不幸的是,没有。由于SASS在服务器上编译为直接CSS,而CSS由客户端呈现,因此无法通过SASS获得该效果。换句话说,直到浏览器解释CSS你知道100%是什么,并且在SASS有机会编译之后很久。

如果您需要知道像素级服务器端的块元素的内部宽度,在页面呈现之前,实际上唯一的方法是使用固定宽度的布局。很多网站都是这样做的 - 比如这个 - 所以我会把它作为一种选择。

答案 3 :(得分:1)

使用sass

是不可能的

使用javascript可以实现这些目标。

$('#element').width($(window).width() - 40)