在CSS框模型中:外边距可以是负值,而且在很多情况下都要使用负值的外边距。是什么意思啊

html-css046

在CSS框模型中:外边距可以是负值,而且在很多情况下都要使用负值的外边距。是什么意思啊,第1张

如果将元素的box-sizing属性设置为"border-box",则width和height表示的是内容、内边距和边框组成区域的高度和宽度。所以增加外边距对内容区域的尺寸没有影响,而增加内边距和边框会导致内容区域的尺寸减小。

现在开始讨论第一个问题:外边距叠加

外边距叠加是指当两个或更多垂直外边距相遇时,外边距的高度等于这几个外边距的高度中的较大者。这就是外边距叠加的情况,并且外边距叠加只发生在垂直外边距上。

可以通过负值的margin来抵消掉padding的影响

1.margin:负值

当给一个元素设置margin 负值(top/left),该元素将在该方向上产生位移。例如:

/* 元素向上位移10px */

.demo {margin-top:-10px}

二、当给一个元素设置margin负值(bottom/right),这个元素并不会像你所预想的产生位移,而是将任何紧随其后的元素“拉”过来,覆盖在自己的上边。例如:

/* 所有紧随元素demo之后的元素向上位移10px */

.demo {margin-bottom:-10px}

注:如果元素没有设置宽度,那么给该元素设置margin负值(left/right)将会在两个方向增大其宽度,看起来就好像给该元素添加了padding

2.margin正值