选项 1
在两个 div 元素上使用 float:left,并为两个 div 元素设置一个 % 宽度,总宽度为 100%。
在浮动 div 元素上使用 box-sizing: border-box;。值border-box 强制填充和边框进入宽度和高度,而不是扩展它。
在<div id="wrapper"> 上使用 clearfix 清除浮动的子元素,这将使包装器 div 缩放到正确的高度。
.clearfix:after {
content: " ";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
#first, #second{
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
#wrapper {
width: 500px;
border: 1px solid black;
}
#first {
border: 1px solid red;
float:left;
width:50%;
}
#second {
border: 1px solid green;
float:left;
width:50%;
}
http://jsfiddle.net/dqC8t/3381/
选项 2
在一个元素上使用position:absolute,在另一个元素上使用固定宽度。
添加 position:relative to <div id="wrapper"> 元素以使子元素绝对定位到 <div id="wrapper"> 元素。
#wrapper {
width: 500px;
border: 1px solid black;
position:relative;
}
#first {
border: 1px solid red;
width:100px;
}
#second {
border: 1px solid green;
position:absolute;
top:0;
left:100px;
right:0;
}
http://jsfiddle.net/dqC8t/3382/
选项 3
在两个 div 元素上使用 display:inline-block,并为两个 div 元素设置一个 % 宽度,总宽度为 100%。
再次(与 float:left 示例相同)在 div 元素上使用 box-sizing: border-box;。值border-box 强制填充和边框进入宽度和高度,而不是扩展它。
注意: inline-block 元素可能存在间距问题,因为它受 HTML 标记中的空格影响。更多信息在这里:https://css-tricks.com/fighting-the-space-between-inline-block-elements/
#first, #second{
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
#wrapper {
width: 500px;
border: 1px solid black;
position:relative;
}
#first {
width:50%;
border: 1px solid red;
display:inline-block;
}
#second {
width:50%;
border: 1px solid green;
display:inline-block;
}
http://jsfiddle.net/dqC8t/3383/
最后一个选项是使用名为 flex 的新显示选项,但请注意可能会影响浏览器兼容性:
http://caniuse.com/#feat=flexbox
http://www.sketchingwithcss.com/samplechapter/cheatsheet.html