我有一个带有侧面导航的站点,我希望屏幕的其余部分充满图像,侧面导航位于左侧,宽度为150px。

理想情况下,id喜欢将整个屏幕图像设置为width:100% -150px;,但我很确定这不是正确的CSS。

有没有办法达到同样的效果?我不能使用width:90%;,因为在更宽的屏幕上150px会更像是宽度的5%,而不是10%。

最佳答案

实际上-是的! (使用css3)

width: calc(100% -150px);
width: -moz-calc(100% - 150px);
width: -webkit-calc(100% - 150px);

有效,但仅适用于最现代的浏览器... caniuse

如果您不想使用此功能,则可以使用margin创建偏移量:margin-left:150px;。但是,这需要一个宽度为100%的父元素,并且您的图像必须是块级元素(display:block)。

另一种选择是使用box-sizing。这样,您可以选择另一个框模型,该模型不计算元素宽度中的边距和内边距。这也有助于某些典型的“我需要100%宽度-Xpx边框”情况。

为了回应@BerkerYüceer的评论-您还可以在calc中使用动态值,如下所示:
/* declare css variable */
--leftmargin:150px;

/* use the variable like following */
calc(100% - var(--leftmargin));

关于CSS实现{Width :100% -150px},我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11103728/

10-13 00:37