0
点赞
收藏
分享

微信扫一扫

-百分比设置margin和padding,line-height,height

搬砖的小木匠 2022-02-14 阅读 86
css3csshtml

用百分数设置margin和padding

用百分数设置margin和paddding的时候,其top right bottom left的值是参照父元素盒子的宽度进行计算,如

 .demo1{ width:980px;height:500px;  }
 .demo1 div{margin:10% 5%; } // 相当于margin:98 49;
为什么都是以宽度为标准

1、高度持续增加

第一种说法是,padding-top如果以容器高度为参照,那么子元素应用padding值将会继续加高容器的高度,容器高度的变化又会反过来继续影响子元素的padding-top,陷入一个无限循环。

对于不定高的容器来说情况确实如此,但对定高容器则并不成立,这点和height类似,这也是为什么height的容器也必须确定好高度。也就是说,如果padding-top要参照容器高度,就必须和height一样做两种处理。

2、保持padding(margin)四个值统一

第二种说法则更为可靠, 为了保持padding(margin)四个值的统一 。

padding(margin)的值无论引用何种计量,四个值都一直保持统一,难道单独给百分比开特例?结合第一条的多情况处理,如果标准定义padding-top参照容器高度的话,恐怕要列出至少4条以上的例外说明——而这对无论谁,都没有好处。

事实上,垂直padding参照体是宽度这点也非常有用。虽然早期固化像素的设计中百分比值几乎不应用在padding或者margin上,但随着移动自 适应的布局的需要,百分比也逐渐稀疏平常。

比如配合background-sizing保持背景的比例,配合media query调整对应的间距,不一而足。这些应用都基于一个事实: 无论垂直还是水平,百分比值始终参考宽度 。


百分比设置position的left right top bottom

(1)css设置绝对定位后 top,bottom,设置百分比定位是按父元素的高度来计算的,同样left,right,设置百分比定位是按父元素的宽度来计算的

(2)如果父元素设置有padding值 则子元素定位 top的’百分比’值是 其父元素的height加上padding-top和padding-bottom

(3)设置了定位position: absolute的盒子,将top设为0%,盒子顶部将会紧挨着父元素(已定位)的顶部,若设为100%,则盒子顶部将会紧挨着父元素底部。

计算公式为:top_percent = 子盒子顶部距父盒子顶部的距离 / 父盒子高度

百分比设置line-height

(1)line-height: line-height 属性可取值有 normal | number| length | % | inherit,行高就是两行文本的基线(字母x的下边缘)之间的距离

height

height一般用固定值


什么时候用margin什么时候用padding


一、具体定义

(1)边界(margin):元素周围生成额外的空白区。“空白区”通常是指其他元素不能出现且父元素背景可见的区域。——CSS权威指南

(2)padding称呼为内边距,其判断的依据即边框离内容正文的距离,而我喜欢CSS权威指南解释的“补白”(或者叫“留白”),因为他很形象。补白(padding):补白位于元素框的边界与内容区之间。很自然,用于影响这个区域的属性是padding。——CSS权威指南

二、用法

(1)何时应当使用margin

(2)何时应当时用padding:

三、总结

个人认为:margin是用来隔开元素与元素的间距;padding是用来隔开元素与内容的间隔。margin用于布局分开元素使元素与元素互不相干;padding用于元素与内容之间的间隔,让内容(文字)与(包裹)元素之间有一段“呼吸距离”。

举报

相关推荐

0 条评论