關于答案有兩處不懂
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<style type="text/css">
*{margin:0; padding:0;}
#wrap{width:970px; margin:0 auto;}
#mainbody{position:relative;overflow:hidden;margin-top:15px;}
#left{float:left;width:110px; }
#mid{float:left;margin-left:13px;width:650px;border:1px solid #999;}
#right{position:absolute;top:0;margin-left:790px;border:1px solid #999;}
</style>
</head>
<body>
<div id="wrap">
???? <div id="header"><img src="http://img1.sycdn.imooc.com//5369cd6e0001a15b09700088.jpg" width="970" height="88" /></div>
???? <div id="mainbody">
????????? <div id="left"><img src="http://img1.sycdn.imooc.com//5369cd0e00011e3901090487.jpg" width="109" height="487" /></div>
????????? <div id="mid"><img src="http://img1.sycdn.imooc.com//5369cd3c00013e9e06490439.jpg" width="649" height="439" /></div>
????????? <div id="right"><p>歡迎使用金山軟件出品的愛詞霸,在線查詢你英語詞匯、句子釋義</p><img src="http://img1.sycdn.imooc.com//5369cd540001d8e101770329.jpg" width="177" height="329" /></div>
? </div>
</div>
</body>
</html>
我試了一下,在#mainbody屬性里加不加清除浮動overflow:hidden,效果沒區別.還有在#right屬性絕對定位的時候不用加top:0,也不影響.所以想求教一下大神們,關于這個清除浮動什么時候要清除.是父塊里沒有浮動而子塊里有浮動才需要清除父塊浮動還是父塊里有了相對定位就不用清除.還有一個就是絕對定位的時候什么時候這個top:0要寫?
2016-09-06
第一個問題.#mainbody里overflow:hidden。有影響的。我提供2個方法你自己測試一下
方法一,給.#mainbody加背景顏色,在有overflow:hidden的情況下高度是被撐開了,你把overflow:hidden拿掉之后,你會發現,你在頁面中找不到#mainbody,因為他沒高度。
方法二.在#mainbody 加一個#footer ?,你會發現,如果#mainbody沒有overflow:hidden.#footer就會跑上來了
你可以把清除浮動理解成撐開高度。請出浮動的方法有很多。我知道就有9種。
目前用的比較的清除浮動的方法應該是after:偽類
第二個問題.絕對定位的初始位置是left:0; top:0;所以你不寫top:0;也沒關系,因為他的初始top值也是0,但是為了方便自己以后的維護,或者是協同開發時候方便同事讀懂你的代碼,建議寫上,規范點
2016-10-15
跟題主有這一樣的疑問,看了解釋后豁然開朗,好評!