如何设置右边div的宽度百分比,以便填充左边div后的所有空格?
<div id='wrap'>
<div id='left'></div>
<div id='right'></div>
</div>
#wrap {
border: 5px solid green;
float: left;
width: 100%;
height: 100px;
}
#left {
background: black;
position: relative;
top:0;
left: 0;
width: 90px;
height: 100px;
float:left;
}
#right {
background: grey;
position: relative;
top:0;
right: 0;
height: 100px;
float:right;
}
尝试过:
$(document).ready(function () {
var x = $('#left').width();
$('#right').width((100 - x) + '%');
});
答案 0 :(得分:3)
在css3中使用calc()
属性:
#right{
width: calc(100% - 100px); /*<---do it here*/
background: grey;
position: relative;
top:0;
right: 0;
height: 100px;
}
不确定,但您也可以使用display
table, table-row, table-cell
属性执行此操作:
#wrap {
border: 5px solid green;
float: left;
width: 100%;
height: 100px;
display:table; /*<----here*/
}
#left {
background: black;
position: relative;
top:0;
left: 0;
width: 90px;
height: 100px;
display:table-cell; /*<----here*/
}
#right {
background: grey;
position: relative;
top:0;
right: 0;
height: 100px;
display:table-cell; /*<----here*/
}
答案 1 :(得分:1)
您可以将包装div的背景颜色设置为灰色,然后使用左侧div覆盖左侧部分。这样你就不需要任何JS计算了。
检查更新后的小提琴:http://jsfiddle.net/5cuH2/6/
<强> CSS 强>
#wrap{
border: 5px solid green;
width: 100%;
height: 100px;
background: grey;
}
#left{
background: black;
position: relative;
top:0;
left: 0;
width: 90px;
height: 100px;
float:left;
}
#right{
position: relative;
top:0;
right: 0;
height: 100px;
float:right;
}
.clear {
clear: both;
}
答案 2 :(得分:0)
试试这个http://jsfiddle.net/5cuH2/15/
$(document).ready(function () {
var wrap = $('#wrap').width();
var left = $('#left').width();
$('#right').width((wrap-left) + 'px');
});
答案 3 :(得分:0)
试试这个
$(document).ready(function () {
var x = $('#left').width();
var total = $('#wrap').width();
$('#right').css({
width: total - x + "px"
});
});
或强>
var x = $('#left').width();
var total = $('#wrap').width();
var leftPer = x * 100 / total;
$('#right').css({
width: 100 - leftPer + "%"
});
答案 4 :(得分:0)
试试这个
var x = ($('#left').width()/$('#wrap').width())*100;
$('#right').width((100 - x) + '%');
答案 5 :(得分:0)
var dx = $('#wrap').width();
var x = $('#left').width();
$('#right').width((dx - x) + 'px');
答案 6 :(得分:0)