css中margin為負數的深入研究

2022-07-05 18:00:12 字數 1433 閱讀 6900

注:以下實驗的元素均為塊級元素,inline-block和inline本身對margin某些方向上都是無效的,所以這裡不予討論。

當塊元素width:auto時,margin-left和margin-right會增加元素的寬度

當有具體width時,margin-left向左移動,

margin-right 減少css的讀取寬度 如下圖 (也就是後面的元素會擠進來)

高度一般都自適應或者精確的值,體現的形式是一樣的

margin-top為負值 是向上移動

margin-bottom為負值 減少css的讀取高度(後面的元素擠上來)

除了塊元素未設定寬度會增加寬度外,其他的幾種情況都是反向移動或者減少css讀取的值。

原理,用float在同一行, 中間元素給100%, left元素 margin-left: -100%移動到最左邊,right元素margin-left: -100px;

html,body

body

.main

.main .in

.left,.right

.left

.right

原理: 父級給overflow:hidden; 裡面的元素用padding-bottom: 1000px; margin-bottom:-1000px; 給padding和overflow:hidden是為了讓高度一致,margin-bottom:1000px;去消除這個高度,就是看起來有那麼高,其實沒有,因為margin-bottom為負值的原因

body

ul.list

.main

.left

.right

.main,.left,.right

原理:外層list元素未設定寬度(width:auto),margin-right:-10px;這會導致外層list元素右邊增加寬度10px,那麼每行的最後乙個元素margin-right:10px就剛好list原來的邊界,即新增的寬度與一行最後乙個元素margin-right:10px相互抵消.

css中的預設margin

上班打醬油中,body的margin為8px webkit預設行高18px height18px 預設font size16px p預設margin是16px 0 16px 0 ul和ol有預設的margin left 40px的padding left和16px 0 16px 0 button有2...

css中的預設margin

上班打醬油中,body的margin為8px webkit預設行高18px height18px 預設font size16px p預設margin是16px 0 16px 0 ul和ol有預設的margin left 40px的padding left和16px 0 16px 0 button有2...

深入css中的margin

深入css中的margin 第一 margin top css 元素沒有任何定位的情況下,並且元素預設為block html div class outer div class inner div div 效果 原因,div預設的是我們塊級元素,它是獨佔一行的,當margin top的時候,整個行,...