前端 - css負邊距的問題?
問題描述
這里有兩個p, 都向左浮動,其中sub 設置了margin-left:-100%; 請問為何會出現這樣的效果,sub能夠占據到main上面。
在線demo:http://codepen.io/anon/pen/zvJeNG
請問這個負邊距有何妙用,為何-100% 和 -190px(p的寬度)效果截然不同呢?
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8' /> <title>Document</title></head><body> <p class='main'> this is main</p> <p class='sub'> this is sub </p> </body></html>
.main{ float:left; width:100%; background-color:aqua;}.sub{ float:left; width: 190px; margin-left:-100%; background-color:black; }
問題解答
回答1:margin值是百分比數的時候,是相當于元素的包含塊的width來計算的
你這兒的.sub margin-left:-100%的100% 是相對于sub的包含塊 body的width 來計算也就是body的寬度
而-190px就只是190個像素
回答2:1、這兩個p都設置了左浮動,當body的寬度足夠他們倆平排在一起的時候,他們一定會排在同一行。2、sub設置了-100%,這個100%是相對于它的父元素body的寬度,也就是說它等于body的寬度,所以,它就回到了最左邊,而sub的寬度為190px,那就是從最左邊開始排列,就是現在這個樣式。
相關文章:
1. css3 - sublime text2 的less2css插件怎么使用2. javascript - 微信公眾號網頁使用redux如何管理用戶刷新?3. css3 - 求clearfix使用方法4. html5 - z-index在瀏覽器調試有效 手機測試無效5. javascript - 微信小程序 如何實現這種左滑動出現刪除的辦法?有相關api嗎?6. css - 不用position:absolute怎么實現類似的功能7. angular.js - angularjs的自定義過濾器如何給文字加顏色?8. 關于docker下的nginx壓力測試9. angular.js使用$resource服務把數據存入mongodb的問題。10. docker-machine添加一個已有的docker主機問題
