我有这个标题栏。
<div id="header"> <div class="container"> <img src="img/logo.png"/> <div id="searchBar"> <input type="text" /> </div> <div class="buttonsHolder"> <div class="button orange inline" id="myAccount"> My Account </div> <div class="button red inline" id="basket"> Basket (2) </div> </div> </div> </div>
我需要searchBar填充任何剩余的间隙是在div。我该怎么做?
这是我的CSS
#header { background-color: #323C3E; width:100%; } .button { padding:22px; } .orange { background-color: #FF5A0B; } .red { background-color: #FF0000; } .inline { display:inline; } #searchBar { background-color: #FFF2BC; }
解决方法
你可以使用CSS表格单元格实现这种布局。
稍微修改您的HTML如下:
<div id="header"> <div class="container"> <div class="logoBar"> <img src="http://placehold.it/50x40" /> </div> <div id="searchBar"> <input type="text" /> </div> <div class="button orange" id="myAccount">My Account</div> <div class="button red" id="basket">Basket (2)</div> </div> </div>
只需删除两个.button元素周围的包装元素。
应用以下CSS:
#header { background-color: #323C3E; width:100%; } .container { display: table; width: 100%; } .logoBar,#searchBar,.button { display: table-cell; vertical-align: middle; width: auto; } .logoBar img { display: block; } #searchBar { background-color: #FFF2BC; width: 90%; padding: 0 50px 0 10px; } #searchBar input { width: 100%; } .button { white-space: nowrap; padding:22px; }
将display:table应用于.container,并将其设置为100%宽度。
对于.logoBar,#searchBar,.button,应用display:table-cell。
对于#searchBar,将宽度设置为90%,这将强制所有其他元素计算收缩适应宽度,搜索栏将扩展以填充剩余空间。
根据需要在表单元格中使用text-align和vertical-align。