要想實現上圖練習中的效果為什么要用絕對定位呢?
.left{?width:200px;height:500px;position:absolute;left:0;top:100px;background:blue;} .right{background:#9C9;height:500px;margin-left:210px;}
要實現上面的效果這里為什么要用絕對定位呢?
我用的浮動,代碼如下:
.left{width:200px;height:500px;float:left;background:blue;} .right{height:500px;margin-left:210px;float:right;background:#9C9;}
這樣寫的錯誤在哪里?為什么中間紅色會空那么大呢?
2018-06-11
float:right會讓div往右邊浮動,而.left則已經往左浮動了,故而一個左貼邊,一個右貼邊,中間自然露出來大片的底色(紅色)。所以你這里的margin-left:210px并沒有起到實質上的作用,因為中間的區域估計有上千px。要想用浮動來實現這樣的效果,必須都設置成float:left。
但是本題的任務要求:右側(right)先加載,左側(left)后加載。
而且下面的div代碼也是right在前面,left在后面。如果是left在前面,right在后面,那么可以直接使用float:left,從左到右按順序向左浮動,再設置right的margin-left:10px即可實現。
本題的精髓就在于left在后面,right反而在前面,所以只能只用絕對定位來實現。
2018-12-19
在看了上面的回答后,我試了試加了絕對定位和沒加絕對定位的區別,加了絕對定位的網頁縮小時那200px不變,在那呆著,沒加絕對定位的網頁縮小時那200px本身的顏色沒了,變回了main所設置的背景顏色。也就是“被擠掉了”
下面那倆圖都是沒加絕對定位的
第一張圖是正常的:
而接著把網頁往左縮小時,就會變成下面這樣: