关于css:css盒模型的一些知识

34次阅读

共计 1247 个字符,预计需要花费 4 分钟才能阅读完成。

垂直居中指南

在容器里让内容居中最好的形式是依据特定场景思考不同因素。做出判断前,先一一询问本人以下几个问题,直到找到适合的解决办法。

1. 能够用一个天然高度的容器吗?给容器加上相等的高低内边距让内容居中。2. 容器须要指定高度或者防止应用内边距吗?对容器应用 display: table-cell 和 vertical-align: middle。3.  能够用 Flexbox 吗?如果不须要反对 IE9,能够用 Flexbox 居中内容。4. 容器外面的内容只有一行文字吗?设置一个大的行高,让它等于现实的容器高度。这样会让容器高度扩大到可能包容行高。如果内容不是行内元素,能够设置为 inline-block。5. 容器和内容的高度都晓得吗?将内容相对定位。(只有当后面提到的办法都有效时才举荐这种形式。)6. 不晓得外部元素的高度?用相对定位联合变形(transform)。(还是只有当后面提到的办法都有效时才举荐该办法。)7. 还不确定的话,参考 howtocenterincss 网站。这个网站很不错,能够依据本人的场景填写几个选项,而后它会相应地生成垂直居中的代码

负外边距

左负边距 右负边距 上负边距 下负边距
未指定 width 的块状元素 width 扩充 width 扩充 向上挪动,与它下面的元素重叠 将它上面的元素拉过来
指定 width 的块状元素 向左挪动 没有作用 向上挪动,与它下面的元素重叠 将它上面的元素拉过来
未指定 width 的内联元素 向左挪动,与它右边的元素重叠 将它左边的元素拉过来 向上挪动,与它下面的元素重叠 将它上面的元素拉过来
指定 width 的内联元素 向左挪动,与它右边的元素重叠 将它左边的元素拉过来 向上挪动,与它下面的元素重叠 将它上面的元素拉过来

负外边距并不罕用,然而在某些场景下很实用,尤其是当创立列布局的时候。不过该当防止频繁应用,不然网页的款式就会失控。

外边距折叠

1. 当顶部和 / 或底部的外边距相邻时,就会重叠,产生单个外边距。2. 只有高低外边距会产生折叠,左右外边距不会折叠。3. 弹性子元素的外边距不会折叠

避免外边距折叠:

1. 对容器应用 overflow: auto(或者非 visible 的值),避免外部元素的外边距跟容器内部的外边距折叠。这种形式副作用最小。2. 在两个外边距之间加上边框或者内边距,避免它们折叠。3. 如果容器为浮动元素、内联块、相对定位或固定定位时,外边距不会在它里面折叠。4. 当应用 Flexbox 布局时,弹性布局内的元素之间不会产生外边距折叠。网格布局(grid 布局)同理。

一些留神点

1. 百分比参考的是元素容器块的大小,然而容器的高度通常是由子元素的高度决定的。这样会造成死循环,浏览器解决不了,因而它会疏忽这个申明。要想让百分比高度失效,必须给父元素明确定义一个高度。2. vertical-align 申明只会影响行内元素或者 table-cell 元素。对于行内元素,它管制着该元素跟同一行内其余元素之间的对齐关系。对于显示为 table-cell 的元素,vertical-align 管制了内容在单元格内的对齐。

正文完
 0