不确定您是否愿意使用 jQuery。如果是,您可以执行以下操作:
去掉所有的浮点数,添加display:inline-block
到wrapper div
中,使用 jQuery 计算总wrapper 宽度减去的差left div width
并将其设置为right div
.
HTML
<div id="wrapper">
<div id="left">left</div>
<div id="right">right</div>
</div>
CSS
#left{
background-color: Blue;
height: 100px;
width: 200px;
margin-left:10px;
}
#right{
background-color: #5a71e5;
height: 100px;
}
#wrapper div {
display: inline-block;
}
#wrapper{
width:100%;
}
jQuery
$('#right').width($('#wrapper').width() - $('#left').width() - 20);
小提琴样本:http: //jsfiddle.net/3P9XN/12/
更新
为响应性添加了窗口大小调整检测
http://jsfiddle.net/3P9XN/14/
更新2
根据 Marc 的建议更新了解决方案,现在通过脚本获取 outerWidth 和 css 边距值。更动态和更清洁的方法。
jQuery
$(document).ready(setRightWidth);
$(window).resize(setRightWidth);
function setRightWidth(){
var leftmargin = parseFloat($('#left').css('margin-left'));
var width = $('#wrapper').outerWidth(true) - $('#left').outerWidth(true) - leftmargin;
$('#right').width(width);
}
http://jsfiddle.net/3P9XN/17/