给行内元素设置padding看起来似乎没有生效,并没有影响页面的布局,但其实并不是没有生效,只是没有影响布局而已。这种不影响其他元素布局而是出现层叠效果的现象,分位两类:一类是纯视觉层叠,不影响外部尺寸,另一类会影响外部尺寸(注意只是影响外部元素尺寸,并不是影响布局)。内联元素的padding会改变父元素的高度,超出时会有滚动条效果。
padding的妙用:
1. padding不会影响布局,但是却可以实实在在的影响元素的热区,如果我们想扩大超链接的热区,可以通过padding来调大热区,这时候既不影响布局,又可以加大响应区域
2. 进入到页面锚点的时候,如果顶部有导航栏占位,那么实际的锚点会被导航栏遮挡,这时候可以在需要锚点的位置增加一个行内元素,并且设置其padding-top,这样在锚点的时候就会直接卡到padding-top的区域,将顶部导航栏空出来,这个非常重要,我们的业务代码中经常有这种场景,现在用js处理的比较多
3. padding的百分比都是相对于宽度的,这一点很重要,比如需要实现一个16:9的图片,或者正方向,就可以利用这一点做好布局
margin属性同样可以改变元素的可视尺寸,只要元素的尺寸表现符合“充分利用可用空间”这一原则,无论是垂直方向还是水平方向,都可以通过margin来改变尺寸,特别是当margin设置为负值时,会扩大元素尺寸
padding的妙用:
1. padding不会影响布局,但是却可以实实在在的影响元素的热区,如果我们想扩大超链接的热区,可以通过padding来调大热区,这时候既不影响布局,又可以加大响应区域
2. 进入到页面锚点的时候,如果顶部有导航栏占位,那么实际的锚点会被导航栏遮挡,这时候可以在需要锚点的位置增加一个行内元素,并且设置其padding-top,这样在锚点的时候就会直接卡到padding-top的区域,将顶部导航栏空出来,这个非常重要,我们的业务代码中经常有这种场景,现在用js处理的比较多
3. padding的百分比都是相对于宽度的,这一点很重要,比如需要实现一个16:9的图片,或者正方向,就可以利用这一点做好布局
margin属性同样可以改变元素的可视尺寸,只要元素的尺寸表现符合“充分利用可用空间”这一原则,无论是垂直方向还是水平方向,都可以通过margin来改变尺寸,特别是当margin设置为负值时,会扩大元素尺寸