第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么li沒有排成一行?謝謝

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>不定寬塊狀元素水平居中</title>
<style>
.container{
??? float:left;
?? ?position:relative;
?? ?left:50%;
?? ?border:1px solid blue;
}
.container ul{
?? ?list-style:none;
?? ?margin:0;
?? ?padding:0;?? ?
?? ?position:absolute;
?? ?left:-50%;
?? ?border:1px solid red;
}
.container li{float:left;display:inline;margin-right:8px;}
</style>
</head>

<body>
<div class="container">
?? ?<ul>
?? ??? ?<li><a href="#">1</a></li>
??????? <li><a href="#">2</a></li>
??????? <li><a href="#">3</a></li>
??? </ul>
</div>
</body>
</html>

http://img1.sycdn.imooc.com//59b1576f0001b50d06630365.jpg


正在回答

4 回答

我替樓上的小伙伴解答了吧,雖然碼字有點麻煩

1.1 設置float后會自動把塊級元素的行框縮短至內容+內邊距+外邊距+邊框大小,你如果給div設置了足夠的width或者padding就會發(fā)現(xiàn)也會排列成一行.

1.2 刪除float以后div的寬度變成body的100%,div右移50%,后面ul又相對div向左移動了50%,所以會左對齊,同時也證實了1.3的寬度是div的寬度這一點.

1.3 -50%中的50%指的是父元素的寬度,即div的寬度.

.container{
????padding:50px;
????float:left;
????position:relative;
????left:50%;
????border:1px?solid?blue;
}

2.這個問題同1.1,設置的寬度不會被縮減,所以可以排成一列

3.絕對定位移動后會生成一個塊級框,而不論原來它在正常流中生成何種類型的框,同時會縮減塊級元素行框大小.刪除absolute或者改為relative都會自動排成一行

0 回復 有任何疑惑可以回復我~
#1

慕神6115920 提問者

非常感謝,我終于明白了
2017-09-17 回復 有任何疑惑可以回復我~
#2

一只胡思亂想的豬 回復 慕神6115920 提問者

不客氣
2017-09-20 回復 有任何疑惑可以回復我~

通過樓上朋友的建議,現(xiàn)在總結了3個解決方法:

1、div.container去掉float:left ;? 結果:li成了一行,但ul不居中了,除非再把ul的left:-50%;去掉

?問題:1》為什么去掉float后li成一行?

????????????2》為什么去掉float后ul才會左對齊?

??????????? 3》去掉float后,div是relative,ul是absolute,ul的偏移應該參照父元素div,那么left:-50%;的50%是誰的寬度的50%?

2、.container ul設置寬度;

問題:一般ul不需要設置寬度,li設置好后自成一行。為什么設置了ul的寬度后,才會一列?

3、你的辦法,.container ul去掉absolute;

問題:為什么要去掉absolute???我感覺absolute不影響,僅僅脫離了文檔流,內容該怎么顯示就怎么顯示。

0 回復 有任何疑惑可以回復我~

.container ul{
?? ?list-style:none;
?? ?margin:0;
?? ?padding:0;?? ?
?? ?position:absolute;
?? ?left:-50%;
?? ?border:1px solid red;
}你這個用了絕對定位,把它去掉就好!

1 回復 有任何疑惑可以回復我~
#1

慕神6115920 提問者

謝謝。目前有3個解決方法:1、div.container去掉float:left ;2、.container ul設置寬度;3、你的辦法,.container ul去掉absolute; 我實際不想知道答案(解決辦法),因為我自己測試的時候已經(jīng)找到了前2個辦法,我最想知道的是原因在哪里,為什么會這樣顯示,我想不通為什么這樣設置會出錯?
2017-09-08 回復 有任何疑惑可以回復我~

你沒有給他們設寬度 給.container或ul設個寬度就可以了

0 回復 有任何疑惑可以回復我~
#1

慕神6115920 提問者

謝謝,一般不用設置寬度,ul是塊級元素占滿行,因為設置了float,寬度自動會根據(jù)內容最小化。
2017-09-08 回復 有任何疑惑可以回復我~
#2

慕神6115920 提問者

你可以測試一下,這就是一行 <style type="text/css"> ul{ border:1px dotted red; float:left; } li{ display:inline;} </style> </head> <body> <ul> <li>11</li> <li>111</li> <li>11</li> </ul> </body>
2017-09-08 回復 有任何疑惑可以回復我~
#3

慕神6115920 提問者

一般不設置寬度,可為什么設置寬度會排成一行?謝謝
2017-09-08 回復 有任何疑惑可以回復我~
#4

Cam_ 回復 慕神6115920 提問者

這個沒加父相對子絕對吧
2017-09-08 回復 有任何疑惑可以回復我~
#5

Cam_ 回復 慕神6115920 提問者

太久沒復習了 有些不熟悉了 這么說吧 ul的每個li都會自動占一行 給ul設置一個固定的寬度后 ul下面的li就會在固定的寬度中顯示 但如果li的寬度合超過ul的固定寬度 就會變成原樣 不知道這么說對不對 歡迎指正
2017-09-08 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消

為什么li沒有排成一行?謝謝

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號