index.html
:
<!DOCTYPE html>
<head>
<title>Test</title>
<link href="stylesheets/index.css" rel="stylesheet"
type="text/css" />
</head>
<ul>
<li>Foo</li>
<li>Bar</li>
<li><input /></li>
</ul>
index.scss
(不拉伸):
@import "compass/reset";
@import "compass/typography/lists/horizontal-list";
body {
background: darkgray;
}
ul {
width: 100%;
background: lightgray;
@include horizontal-list;
}
使最后一个元素占用剩余元素的优雅方法是什么 水平空间?
详细说明:
请参阅下图,了解所需的输出。
HTML代码的修改是可以的,只要它在语义上保持清晰。
该解决方案应该适用于最新的Firefox,最新的Chrome和 在IE8-11中(如果需要,可以使用JavaScript填充程序)。
答案 0 :(得分:2)
这个只有css的解决方案。
HTML:
<ul>
<li>Foo</li>
<li>Bar</li>
<li class="last"><input type="text" /></li>
</ul>
CSS:
ul li { float: left; list-style: none; }
ul li.last { float: none; display: block; overflow: hidden; }
ul li input { width: 100%; border: 0; box-shadow: inset 0 0 1px #000; }
演示:
* { margin: 0; padding: 0; }
ul li { float: left; list-style: none; }
ul li.last { float: none; display: block; overflow: hidden; }
ul li input { width: 100%; border: 0; box-shadow: inset 0 0 1px #000; }
<ul>
<li>Foo</li>
<li>Bar</li>
<li class="last"><input type="text" /></li>
</ul>
它应该得到IE7 +
的支持答案 1 :(得分:1)