我剛剛發現CSS3的display: flex;
屬性,並試圖將其應用到我的網站的粘頭上,但我遇到了一個問題。如何在降序元素上應用CSS3 flex樣式?
目標是均勻地間隔開整個頭部的整個寬度都環節,但這似乎是不可能的,當語義分組的元素,例如<nav>
標籤。
見的jsfiddle例如:https://jsfiddle.net/9bua0n7o/
<header>
<div class="logo">
Logo
</div>
<nav class="navigation">
<a href="#">Home</a>
<a href="#">FAQ</a>
<a href="#">Contact</a>
</nav>
<div class="search">
<a href="#">Search</a>
</div>
<div class="login">
<a href="#">Register</a>
<a href="#">Login</a>
</div>
</header>
CSS:
header {
width: 100%;
height: 60px;
line-height: 60px;
display: flex;
flex-flow: row wrap;
justify-content: space-between;
position: fixed;
top: 0;
left: 0;
padding: 0 25px;
box-sizing: border-box;
background: #ccc;
}
這適用於我的情況!但它讓我想知道...沒有更好的方法來做到這一點嗎?如果'.navigation'元素中的鏈接數量發生變化怎麼辦?我將不得不手動更新'flex:3;'屬性以使其重新工作。 – Swen
@Swen由於它們被包裝起來,它們的包裝需要知道它與其他應該相比有多大。如果你不包裝它們並給予它們所有'flex:1',它將獨立於鏈接數量工作,如下所示:https://jsfiddle.net/LGSon/804fhnj6/ – LGSon
@Swen對於較老的瀏覽器,你實際上可以做這與'display:table-cell'一樣好:https://jsfiddle.net/LGSon/804fhnj6/1/ – LGSon