弹性布局的公式总结
最后我想大家肯定和我会有同一种想法,就是相关参数是的“px”值如何成功而且正确的转换成“em”值,经过上面的学习,我最后将公式总结一下:
元素自身没有设置字号大小时,元素的width、height、line-height、margin、padding、border等值转换都按下面公式转换:
1 ÷ 父元素的font-size × 需要转换的像素值 = em值
我们来看一个实例:
<body><div id="wrapper">test</div></body>我们在body默认字体大小为“16px”,此时需要“div#wrapper”的相关参数值为:
#wrapper {width: 200px;height: 100px;border: 5px solid red;margin: 15px;padding: 10px;line-height: 18px;}那么我们按照上面的公式,将所在参数进行转换:
#wrapper {width: 12.5em;/*1 ÷ 16 × 200 = 12.5em值*/height: 6.25em;/*1 ÷ 16 × 100 = 6.25em值*/border: 0.3125em solid red;/*1 ÷ 16 × 5 = 0.3125em值*/margin: 0.9375em;/*1 ÷ 16 × 15 = 0.9375em值*/padding: 0.625em;/*1 ÷ 16 × 10 = 0.625em值*/line-height: 1.125em;/*1 ÷ 16 × 18 = 1.125em值*/}我们一起来看计算出来的值:

接下来我需要大家在来看一个效果,这一点很关键哟,仔细看好,在同样的参数基础上稍加一条元素本身设置字体大小为:14px;,大家可以会说很简单的呀,按前面的公式计算出来加上就是了,那么我现在就按大家说的计算加上:
#wrapper {font-size: 0.875em;/*1 ÷ 16 × 14= 0.875em值*/width: 12.5em;/*1 ÷ 16 × 200 = 12.5em值*/height: 6.25em;/*1 ÷ 16 × 100 = 6.25em值*/border: 0.3125em solid red;/*1 ÷ 16 × 5 = 0.3125em值*/margin: 0.9375em;/*1 ÷ 16 × 15 = 0.9375em值*/padding: 0.625em;/*1 ÷ 16 × 10 = 0.625em值*/line-height: 1.125em;/*1 ÷ 16 × 18 = 1.125em值*/}此进我们在firebug下看计算出来的layout值

为了更好的说明问题,我把元素自身没有设置字体大小和元素自身设置了字体大小,两者在firebug计算出来值:

我截这个图的主要意图是,说明一个问题就是元素自身要是设置了字体大小后,其计算公式就不在是前面所说的,我们需要做一下修改:
1、字体计算公式依旧
1 ÷ 父元素的font-size × 需要转换的像素值 = em值










