Css实现{宽度:100%-150px}
我有一个带有侧导航的站点,我希望屏幕的其余部分都是一个充满图像的站点,侧导航位于左侧,宽度为150px 理想情况下,我想将全屏图像设置为Css实现{宽度:100%-150px},css,height,Css,Height,我有一个带有侧导航的站点,我希望屏幕的其余部分都是一个充满图像的站点,侧导航位于左侧,宽度为150px 理想情况下,我想将全屏图像设置为宽度:100%-150px
宽度:100%-150px但是我很确定这不是正确的CSS
有没有办法达到同样的效果?我不能使用宽度:90%代码>在更宽的屏幕上,150px更像宽度的5%,而不是10%。对于非位置:static
元素,您可以尝试设置right:150px代码>事实上,它是!(有css3)
可以,但只适用于最现代的浏览器
如果不想使用此选项,可以使用边距创建偏移:marginleft:150px代码>。但是,这需要一个100%宽度的父元素,并且图像必须是块级元素(display:block
)
另一个选择是使用。这使您可以选择另一个长方体模型,该模型不计算元素宽度中的边距和填充。这在一些典型的“我需要100%宽度-Xpx边框”情况下也有帮助
作为对@BerkerYüceer评论的回应,您还可以在calc中使用动态值,如下所示:
/* declare css variable */
--leftmargin:150px;
/* use the variable like following */
calc(100% - var(--leftmargin));
演示:
#内容{左边距:150px}
假设您的#内容
项是一个显示:块
元素,默认情况下,该元素将填充可用宽度
如果希望单个图像填充宽度,而不是平铺,则可以在现代浏览器上使用背景图像和:
#内容{
背景:url(myimage.jpg)不重复;
背景尺寸:100%自动;
}
演示:您只需使用CSS3即可获得所需内容
div{
width: 100%;
width: calc(100% - 150px);
width: -moz-calc(100% - 150px);
width: -webkit-calc(100% - 150px);
}
你可以看到一个
在IE9、Firefox和Google Chrome中运行良好
附加参考:您可以在#image full div周围使用包装div来实现此目的:
#image-wrapper
{
position:absolute;
width:100%;
padding-right:150px;
}
#image-full
{
width:100%;
background-image:url(...);
/* ... */
}
#navigation
{
position:absolute;
width:150px;
}
在某些浏览器中,这将起作用:可能重复感谢,如果id使用左边距方法,我是否需要使用z索引将侧导航置于图像上方?@sam看一看phrogz demo,你不需要任何zindex。你能做一些类似calc(100%左边距)的事情吗?左边的空白是动态的…@BerkerYüceer你完全可以这样做!!使用预处理器(LESS/SASS)或本机css变量-我相应地编辑了我的答案。
#image-wrapper
{
position:absolute;
width:100%;
padding-right:150px;
}
#image-full
{
width:100%;
background-image:url(...);
/* ... */
}
#navigation
{
position:absolute;
width:150px;
}