前端 - 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. css - 關于ul的布局2. java - public <T> T findOne(T record) 這是什么意思3. python - linux怎么在每天的凌晨2點執行一次這個log.py文件4. mysql數據庫每次查詢是一條線程嗎?5. android - 優酷的安卓及蘋果app還在使用flash技術嗎?6. docker不顯示端口映射呢?7. javascript - 前端開發 本地靜態文件頻繁修改,預覽時的緩存怎么解決?8. javascript - js中遞歸與for循環同時發生的時候,代碼的執行順序是怎樣的?9. 如何分別在Windows下用Winform項模板+C#,在MacOSX下用Cocos Application項目模板+Objective-C實現一個制作游戲的空的黑窗口?10. html5和Flash對抗是什么情況?
