TML ul li 橫排居中排列的方法,三步驟及實例
無序列表的列表項默認(rèn)情況下是豎著排的,因為li元素是塊級元素,會自動分行。那如果要將列表的列表項進(jìn)行橫排,比用無序列表ul元素定義一個導(dǎo)航條。那該怎么辦呢?這當(dāng)中有三個應(yīng)當(dāng)被解決的東西,一個是橫排本身,另一個就是應(yīng)當(dāng)把無序列表項的圓點去掉,第三則是讓ul定義的列表居中顯示,包括水平居中和垂直居中。方法如下:
HTML ul li 橫排居中排列的方法,三步驟及實例
將ul無序列表元素中的列表項li元素的display屬性設(shè)置成inline或inline-block,個人比較常用的是后者:
ul li{display:inline-block;}
水平居中方法:只要將ul元素包含于一個div元素,并將div元素的text-align屬性設(shè)置為center即可將ul水平居中。除此之外,因為ul的列表默認(rèn)情況下是有左內(nèi)邊距的,所以,為了能夠讓列表能夠更好地水平居中,需要將ul的左內(nèi)邊距padding-left設(shè)置為0,具體可見下方的綜合實例。
垂直居中方法:為包含ul元素的div元素設(shè)置寬度width和高度height(實際上導(dǎo)航條一般也需要有寬度和高度的設(shè)置),然后將ul的line-height屬性設(shè)置為父元素的高度height即可。
將ul元素的list-style屬性設(shè)置為none即可。
HTML ul li 橫排居中排列的方法,三步驟及實例
<div class='e1'>
<ul class='e2'>
<li>HTML</li>
<li>python</li>
<li>golang</li>
</ul>
</div>
<style>
.e1{width:100%;height:50px;border:1px solid skyblue;text-align:center;}
.e2{list-style:none;padding-left:0%;}
.e2 li{line-height:50px;display:inline-block;}
</style>
HTML ul li 橫排居中排列的方法,綜合實例在線 - HTML教程
如上代碼,一定要將ul的左內(nèi)邊距padding-left設(shè)置為0,否則ul列表的“水平居中”將偏向右邊,大家可以將.e2中的padding-left刪除掉,然后再在線運(yùn)行看一看效果。
笨鳥工具-璞玉天成,大器晚成
中,是我們編碼過程中最常見的,那么,我們平時常見的居中方式,下面一一羅列出來,有錯誤的地方,望碼友多多包涵并加以矯正。
水平居中
1、多塊級元素,設(shè)置display:inline-block;使之在一行排列,在父級樣式里,設(shè)置text-align:center;就可以實現(xiàn)水平居中的效果
body {
text-align: center;
}
div{
width: 100px;
height: 100px;
border: 1px solid;
display: inline-block;
}
2、內(nèi)聯(lián)元素,利用text-align:center;可以實現(xiàn)塊級元素內(nèi)部的內(nèi)聯(lián)元素的水平居中
div {
border: 1px solid red;
width: 100px;
height: 100px;
text-align: center;
}
<div>
<span>塊級元素中的行內(nèi)元素的水平居中</span>
</div>
3、塊級元素,通過把固定寬高的塊級元素的margin-left和margin-right設(shè)置為auto,方可實現(xiàn)
div{
width: 100px;
height: 100px;
border: 1px solid;
margin: 0 auto;
}
<div></div>
4、利用彈性盒子(display: flex;)
給父級定寬定高,然后設(shè)置display: flex;以及justify-content: center;方可達(dá)到水平居中效果
body {
width: 500px;
height: 500px;
display: flex;
justify-content: center;
border: 1px solid red;
}
div {
width: 100px;
height: 100px;
border: 1px solid;
}
<body>
<div></div>
</body>
垂直居中
1、內(nèi)聯(lián)元素(單行)
通過設(shè)置元素的height和line-height,方可達(dá)到居中效果
2、多行元素,利用表布局(table)
通過給想要居中的元素的父級設(shè)置display: talbe-cell;以及vertical-align:enter;方可居中
3、彈性盒子(flex)
給父級設(shè)置display: flex;變成彈性盒子。
分兩種,
(1),主軸方向為水平,直接設(shè)置 align-items: center;
(2),主軸方向為垂直,設(shè)置flex-direction: column;改變主軸方向,然后設(shè)置justify-content: center;
彈性盒模型主軸不同,居中的方式也不同,靈活應(yīng)用。
4、固定寬高的塊級元素
利用父相子絕的定位原理,實現(xiàn)垂直居中
position: absolute;
left: 50%;
top: 50%;
margin-left: (自身高度的一半);
5,未知寬高的塊級元素
利用transform: translateY(-50%);方可實現(xiàn)
position: absolute;
top: 50%;
transform: translateY(-50%);
水平垂直方向的居中
1、固定寬高
通過margin平移整體寬高的一半,實現(xiàn)水平垂直居中
{
position: absolute;
width: 100px;
height: 100px;
border: 1px solid;
left: 50%;
top: 50%;
margin-top: -50px;
margin-left: -50px;
}
2、未知寬高
利用transform中的translate()屬性實現(xiàn)
{
position: absolute;
border: 1px solid;
left: 50%;
top: 50%;
transform: translateY(-50%);
transform: translateX(-50%);
}
3、彈性盒子(flex)
通過display:flex,把父級變成彈性盒模型,利用align-items: center;justify-content: center;方可實現(xiàn)居中。
注意:彈性盒子容器中,多行項目的居中方式另加計算。
body {
border: 1px solid;
width: 300px;
height: 300px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
div {
border: 1px solid;
width: 100px;
height: 100px;
}
隨著學(xué)習(xí)的不斷深入,居中方式可以有很多種,我們要善于利用,更加明確什么情況下用怎樣的居中方式。
. 元素高度聲明的情況下在父容器中居中:絕對居中法
<div class="parent">
<div class="absolute-center"></div>
</div>
.parent {
position: relative;
}
.absolute-center {
position: absolute;
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
height: 70%;
width: 70%;
}
優(yōu)點:
1.跨瀏覽器,包括 IE8-10
2.無需其他冗余標(biāo)記,CSS 代碼量少
3.完美支持圖片居中
4.寬度高度可變,可用百分比
缺點:
1.必須聲明高度
2. 負(fù)外邊距:當(dāng)元素寬度高度為固定值時。設(shè)置 margin-top/margin-left 為寬度高度一 半的相反數(shù),top:50%;left:50%
<div class="parent">
<div class="negative-margin-center"></div>
</div>
.parent {
position: relative;
}
.negative-margin-center {
position: absolute;
left: 50%;
top: 50%;
margin-left: -150px;
margin-top: -150px;
height: 300px;
width: 300px;
}
優(yōu)點:
良好的跨瀏覽器特性,兼容 IE6-7
代碼量少
缺點:
不能自適應(yīng),不支持百分比尺寸和 min-/max-屬性設(shè)置
內(nèi)容可能溢出容器
邊距大小域與 padding,box-sizing 有關(guān)
3. CSS3 Transform 居中:
<div class="parent">
<div class="transform-center"></div>
</div>
.parent {
position: relative;
}
.transform-center {
position: absolute;
left: 50%;
top: 50%;
margin: auto;
width: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
優(yōu)點:
內(nèi)容高度可變
代碼量少
缺點:
IE8 不支持
屬性需要瀏覽器廠商前綴
可能干擾其他 transform 效果
4. table-cell 居中:
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。