UL 與 LI 預設會垂直顯示,但實務上卻常常使用 UL 與 LI 製作水平 Menu,可使用 Flexbox 或 display: inline
使 UL 與 LI 水平顯示。
Version
CSS 3
Flexobx
以水平顯示 menu。
<template>
<ul class="menu">
<li>Home</li>
<li>Search</li>
<li>About</li>
</ul>
</template>
<style scoped>
.menu {
display: flex;
list-style: none;
}
.menu li {
margin: 1rem;
}
</style>
10 行
.menu {
display: flex;
list-style: none;
}
display: flex
:將<ul>
成為 Flexbox container,這使得<li>
由原本垂直顯示
而改成水平顯示
list-style: none
:使<li>
之前不顯示 disc
15 行
.menu li {
margin: 1rem;
}
- 設定
<li>
之間的margin
為1rem
inline
<template>
<ul class="menu">
<li>Home</li>
<li>Search</li>
<li>About</li>
</ul>
</template>
<style scoped>
.menu li {
display: inline;
margin: 1rem;
}
</style>
10 行
.menu li {
display: inline;
margin: 1rem;
}
display: inline
:原本<li>
的display
為list-item
會換行,特別改成inline
使其不換行
Conclusion
- 相同效果在 CSS 常有多種寫法,
display: flex
是借其預設為flex-direction: row
因此水平顯示
;display: inline
則改變<li>
的display
從list-item
改為inline
display: flex
只需用在<ul>
上,而display: inline
需套用在每一個<li>
,實務上建議使用display: flex
較為精簡