盒模型分为两类: 普通盒模型(box-sizing: content-box
), 怪异盒模型(box-sizing: border-box
).
普通盒模型和怪异盒模型的区别就是 设置width, height
的时候是给什么区域设置的. eg:segmentfault
content-box
设置width:100px; height:100px;
那么不管你怎么更改border padding
的值,都不会影响到内容区的值.换句话说, 你设置padding 和 border值时候,会改变盒子的总尺寸
border-box(边框盒子)
相对于上面的,这个更好理解.字面意思: 给盒子设置width
和height
的时候设置的是盒子的总尺寸, 那么这时候你再去改变border padding
值,就会影响到内容区content的尺寸.
如今说说你们都懂的inline, block, inline-block的特性, 但每每忘记在哪使用, 或者是知道在哪用可是没注意到为何这么用浏览器
行内元素要居中的时候, 得给父元素设置text-align:center;
行内元素也有细分的:有兴趣的同窗能够看看布局
一个个敲吗?hmmm,能够试试用margin
,宽度不能设置,那就用margin外边距 把别的元素顶开margin-top
, margin-bottom
不会生效. 要注意的是这个padding
, 他是会"生效"的 可是不会影响上下的布局. 这里说的"生效"意思是: 若是你给span
设置一个background-color
会发现背景颜色会衍生到另外一行,可是并不对挤开别的元素(换句话说就是不会影响布局,不占位置)便签之间的空格解析:
这个也挺头疼的,那怎么去除便签间的空格解析呢?
咱们能够给父元素设置font-size:0;
,可是这么作的话就得给子元素从新设置font-size
值, 由于这个属性是能够继承的.spa
咱们还可使用margin:负值
值去调节.这个比改变font-size
靠谱多了.调试
相对来讲inline-block 会比上面那两个用的多一点. 毕竟还没学float position
的时候,仍是要靠inline-block
布局的.code
width height
至关因而上面的盒模型margin:0 auto
,那有些同窗想要居中的话怎么办???? 这时候用到的是inline的性质,给父元素设置一个text-align: center
(说下怎么去理解这个margin: auto 不生效, 行内元素的话是由多个的行内元素组成,auto广泛是100%的意思,block
使用的时候左右两边100%就是居中, 可是多个行内元素auto到中间互相挤兑就放不下,因此不能用也无效)不去设置内容的话就能够由里面的元素撑开,还在头疼每次作小demo(案例)的时候,由于1px,2px的测量偏差,致使内容换行 或者是要用调试台去调的刚恰好?继承
这时候能够用宽高由内容撑开.给最外面的大盒子先设置成display:inline-block.而后只管往里面放你须要的元素tag/element
,设置margin
padding
值,最外面的大盒子总会被撑开的. 全弄完了以后就能够打开调试台,看看你这个盒子多大, 而后设置固定的width
值 或者是改回display:block
图片
那么block
,inline-block
的height
也是由内容撑开所以一样也能够先不设置(-->这里图文并茂)element