我有这个标题栏.
<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>
Run Code Online (Sandbox Code Playgroud)
我需要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;
}
Run Code Online (Sandbox Code Playgroud)
Isa*_*ner 59
用calc!
https://jsbin.com/wehixalome/edit?html,css,output
HTML:
<div class="left">
100 px wide!
</div><!-- Notice there isn't a space between the divs! *see edit for alternative* --><div class="right">
Fills width!
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.left {
display: inline-block;
width: 100px;
background: red;
color: white;
}
.right {
display: inline-block;
width: calc(100% - 100px);
background: blue;
color: white;
}
Run Code Online (Sandbox Code Playgroud)
更新:作为在div之间没有空格的替代方法,您可以font-size: 0在外部元素上设置.
Mar*_*det 55
您可以使用CSS table-cells实现此布局.
稍微修改您的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>
Run Code Online (Sandbox Code Playgroud)
只需删除两个.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;
}
Run Code Online (Sandbox Code Playgroud)
适用display: table于.container100%宽度.
对于.logoBar,#searchBar,.button,适用display: table-cell.
对于#searchBar,将宽度设置为90%,这会强制所有其他元素计算缩小到适合的宽度,搜索栏将展开以填充剩余的空间.
根据需要在表格单元格中使用text-align和vertical-align.
请参阅演示:http://jsfiddle.net/audetwebdesign/zWXQt/
我知道回答这个问题为时已晚,但我想这会对前面的任何人有所帮助。
很好地使用CSS3 FlexBox。它可以实现。将您作为标题display:flex并将其整个宽度分为 3 部分。在第一部分中,我放置了徽标,第二部分放置了搜索栏,最后一部分放置了按钮容器。适用justify-content: between于标题容器和搜索flex-grow:1栏。就是这样。示例代码如下。
#header {
background-color: #323C3E;
justify-content: space-between;
display: flex;
}
#searchBar, img{
align-self: center;
}
#searchBar{
flex-grow:1;
background-color: orange;
padding: 10px;
}
#searchBar input {
width: 100%;
}
.button {
padding: 22px;
}
.buttonsHolder{
display:flex;
}Run Code Online (Sandbox Code Playgroud)
<div id="header" class="d-flex justify-content-between">
<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>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103341 次 |
| 最近记录: |