????一開始我一直在想玩什么wrap要加上float:left,不加會怎么樣?然后嘗試著不加float:left,結果發現如果不加就不會出現居中效果,會跟一開始一樣文字在最左邊。
????后來反復試驗,終于有點理解為什么要加上float:left,不過我自己不太能表達出來,簡單來說,我個人理解就是:
????如果不加float:left,因為div?class="wrap"是塊狀元素,所以是獨占一行的,文字后面延伸到瀏覽器最右側,導致這個div?class="wrap"里面的元素(指div?class="wrap-center")也是延伸到瀏覽器最右側的,假設div?class="wrap"的寬度是100,那么div?class="wrap-center"的寬度也是100,所以前面所說的,在wrap里面用left:50%往右移動50%,然后又在wrap-center里面用left:-50%,因為wrap和wrap-center寬度是相等的,導致它們抵消了,所以最后不會出現任何居中效果。
????然而,如果在wrap里面加了float:left,意思就是左浮動,根據前面第12章里面所說的浮動模型的特征,wrap是不能獨占一行的,wrap如果加了左浮動,然后里面又嵌套有其他元素的話(這里指wrap-center),第一個重點來了:wrap將會在“我們來學習一下這種方法。”這句話之后把wrap-center放進去,也就是說“我們來學習一下這種方法?!边@句話后面不會出現可以一直延伸到瀏覽器最右側的空白,而是出現了wrap-center。而且第二個重點也來了:就是wrap-center的寬度會跟wrap的寬度保持一致(當然這里是指wrap-center里面沒有指定width而是保持默認的情況下)。
????此時,假設“我們來學習一下這種方法?!边@段話的長度為10,那么wrap-center的長度就是10,此時再在wrap-center里面用left:-50%,就是往左移動-50%,大家腦補一下,這個時候就實現了把這段文字居中的效果。到現在我們可以看到,之前是根據wrap的長度100移動了50%,后來是根據wrap-center,其實就是“我們來學習一下這種方法。”這段文字的長度移動了-50%。這就是原理。
????不知道大家看懂沒,我是盡力了。。。
添加回答
舉報
0/150
提交
取消