2010-09-29 1224 views
21

如何减去CSS中的宽度?CSS宽度减法

例如:

宽度= 100% - 10px的

我说的不是填充或余量。

+0

@凯尔,对不起,但10px不是10%。 – Ruel 2010-09-29 08:32:14

+0

@凯尔 - 不会工作。 10%!= 10px,除非容器是100px。 – 2010-09-29 08:32:46

+0

啊哈,我明白了..对不起,误读:) – Kyle 2010-09-29 08:34:46

回答

20

现在用calc的解决方案将是:

width: calc(100% - 10px); 


Calc可以用加法,减法,乘法使用,司。

附加说明:

注:+和 - 运营商必须始终用空格包围。 例如calc(50%-8px)的操作数将被解析为 百分比,接着是负值长度,一个无效表达式,而calc的操作数(50% - 8px)为 后面跟着一个减号 标志和长度。更进一步,calc(8px + -50%)被视为长度为 ,后跟加号和负数百分比。 *和/ 运算符不需要空格,但为了保持一致性而添加它为 ,并且建议使用。

+2

这是什么浏览器兼容性? – Mani 2014-10-29 05:58:04

13

简单:你不能这样做。你将不得不使用一些解决方法。

+0

是的,毕竟我使用保证金。谢谢彼得。 – 2010-09-29 10:25:42

2

其实没有这样的功能。你所能做的只是:

width:auto; 
margin-right: 10px; 

这不是你想要的。

+0

是的,毕竟我使用保证金。谢谢Thariama。 – 2010-09-29 10:26:02

2

实现这一目标的唯一方法是使用LessCSS或类似的工具来构建你的CSS,然后再处理这些文件放到生成CSS - 你不能做到这一点的飞行

+0

我尝试使用纯CSS,但感谢Nev。 – 2010-09-29 10:26:45

12

好,直到CSS3 calc()被释放所有主流浏览器,你所要做的只是将一个div与另一个div合并,并使用一些填充边距。或者,您可以使用一些javascript,如计算屏幕的宽度并相应地设置div的宽度。

+0

是的,毕竟我使用保证金。谢谢n1313。 – 2010-09-29 10:25:19

3

如果您使用支持它的堆栈,您可以使用SASS来完成此操作。我只知道Ruby,但也可能有其他人。

SASS是生成传统CSS的CSS样式代码,可以使用变量等。

+0

很好的参考,谢谢格兰特。 – 2010-09-29 10:31:06

+0

SASS很棒... “身高:238 + 9 + px;”产生“身高:247px;”在输出的css文件中。 – Ads 2014-02-05 12:25:48

1

通常,人们使用动态方法,即时生成代码。 例如,在PHP,而写CSS部分,

$width = $all - 10; 
echo 'width:' . $width . 'px;'; 
+0

是的,我们可以用PHP来完成,但我不处理服务器端部分。而且,我有很多想要应用的元素。谢谢ring0。 – 2010-09-29 10:29:56