是否可以在纯CSS中使div
50px小于100%?我希望<div>
只比50%小于100%。我不想要任何JavaScript。
答案 0 :(得分:276)
是的,你可以。如果不使用IE的expression()
,您可以使用calc()
在CSS3中执行此操作。
div {
width: 100%;
width: -webkit-calc(100% - 50px);
width: -moz-calc(100% - 50px);
width: calc(100% - 50px);
}
演示:http://jsfiddle.net/thirtydot/Nw3yd/66/
这将使您的生活变得更加轻松。它目前在3种主要浏览器中得到支持:Firefox,谷歌浏览器(WebKit)和IE9:http://caniuse.com/calc
答案 1 :(得分:159)
答案 2 :(得分:37)
另一种选择是绝对定位。
div {
position: absolute;
left: 0;
right: 50px;
}
但是,Sandeep的解决方案是您应该经常使用的解决方案。只是
避免过度使用float
。这可以防止元素自然地填充容器。
答案 3 :(得分:7)
我的解决方案可以使用和不使用float: left
。
HTML:
<div></div>
的CSS:
div {
height: 20px;
background: black;
float: left;
width: 100%;
padding-right: 50px;
box-sizing: border-box;
background-clip: content-box;
}
兼容性:
Firefox 3.6,Safari 5,Chrome 6,Opera 10,IE 9
答案 4 :(得分:4)
使用展示广告block
和margin
。 display:block
未与定义的height
/ width
合并时,会尝试填充其父级。
header {
width:100%;
background:#d0d0d0;
height:100%;
}
h1 {
display:block;
border:#000 solid 1px;
margin:0 50px 0 0;
height:100px;
}
<header>
<h1></h1>
</header>
答案 5 :(得分:-4)
是的,我们可以通过制作
来实现#custom_div{
width:100%;
margin-right:50px;
}
由于