我建议:
div {
width: 48%;
float: left;
}
JS 小提琴演示。
或者,如果您的用户有一个兼容的浏览器,您可以将 to 设置width
为50%
,用于在元素的定义中box-sizing
包含padding
and :border-width
width
div {
width: 50%;
float: left;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
JS 小提琴演示。
类似地,给定兼容的浏览器,您可以改为使用该column-count
属性来定义特定数量的列,浏览器会将内容放入其中。为此,我将您当前的(非常无效的)html 包装在另一个元素中,并带有一个id
“包装器”:
#wrapper {
-moz-column-count: 2;
-ms-column-count: 2;
-o-column-count: 2;
-webkit-column-count: 2;
column-count: 2;
}
JS 小提琴演示。
如果您可以选择只需要 Webkit 和 Opera 支持,并且您的用户可能在他们的 Firefox 安装中启用了 flex-box 支持,那么使用 CSS flex-box 模型就成为一种选择,尽管再次需要一个包装元素来包含这两者菜单元素,具有以下 CSS:
#wrapper {
display: -webkit-flex;
-webkit-flex-direction: row;
-webkit-flex-wrap: nowrap;
}
#wrapper > div {
display: -webkit-flex-inline;
-webkit-flex: 1 1 auto;
}
JS 小提琴演示。
注意:WebKit 实现必须以-webkit
;为前缀 Gecko 实现是无前缀的,但在偏好之后(除非您使用 Nightly);Internet Explorer 实现了旧版本的规范,带有前缀;Opera 12.10 实现了最新版本的规范,没有前缀。
无效加价
<div id="menu1">
<ul>
<a href="#"> <li> one</li> </a>
<a href="#"> <li> two</li> </a>
<a href="#"> <li> three</li> </a>
<a href="#"> <li> four </li> </a>
<a href="#"> <li> five</li> </a>
<a href="#"> <li>six </li> </a>
<a href="#"> <li> seven </li> </a>
<a href="#"> <li> eight </li> </a>
</ul>
</div>
a (或 an )唯一有效的子元素是 an :a or中不允许有其他元素,除非它们被包装在一个元素中。因此,要更正您的 HTML,它应该是:ul
ol
li
ul
ol
li
<div id="menu1">
<ul>
<li><a href="#">one</a></li>
<li><a href="#">two</a></li>
<li><a href="#">three</a></li>
<li><a href="#">four</a></li>
<li><a href="#">five</a></li>
<li><a href="#">six</a></li>
<li><a href="#">seven</a></li>
<li><a href="#">eight</a></li>
</ul>
</div>
li
如果用 an包裹的目的a
是使a
元素的可点击区域填充li
,那么只需使用a { display: block; }
参考: