在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 為什么此處li標(biāo)簽內(nèi)的p元素看起來(lái)獨(dú)自撐開了一行

為什么此處li標(biāo)簽內(nèi)的p元素看起來(lái)獨(dú)自撐開了一行

我想用ul+li做一個(gè)三欄式布局,然后發(fā)現(xiàn)含有p、button等標(biāo)簽的li元素相對(duì)其中沒有元素的li元素下移了一部分,然后做了下測(cè)試,測(cè)試代碼如下:

html:

<ul>
    <li class="left">
        <p style="display: inline-block;">1</p>
    </li>
    <li class="center"></li>
    <li class="right"></li>
</ul>

css:

*{
    padding: 0;
    margin: 0;
    border: none;
    box-sizing: border-box;
}
html{
    font-family: "微軟雅黑";
}
body{
}
ul{
    font-size: 0;
    margin: 0 auto;
    width: 1000px;
}
li{
    display: inline-block;
    text-align: center;
}
.left,.center,.right{
    width:300px;
    height:300px;
}
.left{
    background-color: #999;
}
.center{
    background-color: #ccc;
}
.right{
    background-color: #eee;
}

顯示結(jié)果:圖片描述

看起來(lái)就像一個(gè)p元素占了一行,開始以為是p元素是display:block的原因,但我給p加display:inline-block屬性后,依然如此,去掉p元素后,三個(gè)li就在一行了,何解?請(qǐng)指教~

回答
編輯回答
眼雜
  1. 給三個(gè)inline-block加上vertical-align:top;

  2. 用float: left來(lái)布局

2018年4月28日 22:53
編輯回答
無(wú)標(biāo)題

圖片描述我來(lái)給你說(shuō)說(shuō)為什么吧。因?yàn)閕nline-block的vertical-align 屬性默認(rèn)是baseline(基線,如果這個(gè)也不懂,那就自己百度,要展開就太多了),在一行的inline-block需要基線對(duì)齊,而基準(zhǔn)就是正常流中最后一個(gè)line box的基線,如果這個(gè)元素是空的,沒有內(nèi)容,也就是你上面寫的那樣,那么這個(gè)基線就是最這個(gè)元素的margin-bottom線;如果這個(gè)元素不為空,那么這個(gè)元素的基線就是元素里面內(nèi)容最后一行文字的基線;所以這就會(huì)造成第一個(gè)和第三個(gè)錯(cuò)行的感覺,其實(shí)他兩是為了基線對(duì)齊。所以最簡(jiǎn)單的解決方案就是為L(zhǎng)i添加vertical-align: top;

2018年6月9日 16:09
編輯回答
怣人

三欄布局通常不是用ul li實(shí)現(xiàn)的,建議你換一種實(shí)現(xiàn)方法,而不是進(jìn)一步研究這種方法
1.最傳統(tǒng)的表格布局
2.利用浮動(dòng)
3.絕對(duì)定位
4.CSS3多列
5.flex布局
以上方法都可以實(shí)現(xiàn),具體你可以自己寫一下

2017年7月1日 13:50
編輯回答
孤慣

為什么不用浮動(dòng)布局呢, 要走捷徑呀

2017年3月4日 05:16