当前位置: 首页 > Web前端 > HTML

居中布局:水平居中和垂直居中

时间:2023-03-29 13:02:34 HTML

居中布局在实际场景中很常见,在面试中也经常被考察。下面分别介绍常用的水平居中和垂直居中的样式。水平居中边距:0auto;+width应用于容器中间的块级元素如果节点不是块级元素,则需要声明display:block如果节点宽度已经隐式声明,则无需显式声明width

谈笑有大士,交际无白人。与ru有说有笑,未接触口腔医学。

.h-c1{边距:0自动;宽度:适合内容;//300px;背景颜色:#fcc;}文本对齐:居中;应用于内联元素居中父节点声明text-align如果节点不是内联元素,则需要声明display:inline/inline-block,使内联元素位于父容器的中间,可用于水平居中文本内容。谈笑有大儒,交际无白人。与ru有说有笑,未接触口腔医学。
.h-c3{文本对齐:居中;background-color:#fc0;}position+left/right+margin-left/right+width:applicedtoallelementsapplicabletoallelementsapplicabletoparentandchildelements与确定宽度的情况完全不同。父母:位置:相对,孩子:位置:绝对。谈笑有大士,交际无白人。与ru有说有笑,未接触口腔医学。
.h-c4{位置:相对;宽度:500px;/*或隐式声明宽度*/height:30px;.h-c4-child{位置:绝对;宽度:300px;左:50%;/*相对于父元素的宽度*/margin-left:-150px;/*负子元素宽度的一半*/background-color:#fbf;}}position+left/right+transform:translateX(-50%):适用于所有元素适用于父元素宽度确定的情况。当不设置子元素的宽度时,默认为父元素宽度的一半。父母:位置:相对,孩子:位置:绝对。谈笑有大士,交际无白人。与ru有说有笑,未接触口腔医学。

.h-c5{位置:相对;宽度:600px;/*或隐式声明宽度*/height:50px;背景色:#fbe;.h-c5-child{位置:绝对;左:50%;/*相对于父元素的宽度*/transform:translateX(-50%);/*相对于它自己的宽度*/background-color:#fbf;}}display:flex+justify-content:center:应用于所有元素的子节点(弹性布局)

谈笑有大士,无白人在交流中。与ru有说有笑,未接触口腔医学。

.h-c6{显示:flex;证明内容:居中;background-color:yellowgreen;}verticallycenteredpadding-top/bottom:应用于块级元素,父元素的高度由子元素的高度支持开启(自适应)子元素并设置padding-top和padding-底部相等。如果节点不是块级元素,需要声明显示:笑,但没有白人在交流。与ru有说有笑,未接触口腔医学。.v-c1{背景颜色:#ffcc00;.v-c1-child{填充:20px0;背景色:#fff;背景剪辑:内容框;}}line-height:应用于行内元素的父节点声明的line-height。line-height等于height如果节点不是内联元素,则必须声明display:inline/inline-block,使内联元素位于父容器的中间,可用于文本内容的垂直居中。谈笑有大儒,交际无白人。与ru有说有笑,未接触口腔医学。.v-c2{高度:100px;行高:100px;背景色:#6666ff;span{显示:内联块;/*或内联*/height:30px;行高:30px;垂直对齐:中间;/*inline-block-level元素和匿名行内框的基线对齐有很大区别,所以需要声明vertical-align:middle调整到垂直居中的位置*/background-color:red;}}display:table+display:table-cell+vertical-align:middle:应用于所有元素display:table+display:table-cell+vertical-align:middle.v-c3{显示:表格;高度:100px;背景色:#6666ff;细胞;高度:50px;/*设置高度没用,会和父节点的高度一样*/vertical-align:middle;背景色:红色;}}display:table-cell+vertical-align:middle:应用于所有元素子节点的父节点声明display:table-cell来模拟表格布局的垂直居中
display:table-cell+vertical-align:middle
。v-c4{身高:100px;display:table-cell;vertical-align:middle;background-color:bisque;}position+top/bottom+margin-top/bottom+height:适用于所有元素,适用于parent高度为1的情况而子元素是确定的儿子必须相对于父亲:position:relative,son:position:absolute。position+top/bottom+margin-top/bottom+height.v-c5{位置:相对的;高度:100px;背景色:珊瑚色;.v-c5-child{位置:绝对;顶部:50%;/*相对于父元素的高度*/height:70px;边距顶部:-35px;/*子元素高度的一半负数*/background-color:#6666ff;}}position+top/bottom+transform:translateY(-50%):应用于所有元素,适用于父元素高度确定的情况。父母:位置:相对,孩子:位置:绝对。position+top/bottom+transform:translateY(-50%).v-c6{位置:相对的;高度:100px;背景色:#ffcc00;.v-c6-child{位置:绝对;顶部:50%;/*相对于父元素的高度*/transform:translateY(-50%);/*相对于自身高度*/background-color:#6666ff;}}display:flex+align-item:center:应用于所有元素的子节点(弹性布局)
display:flex;
display:flex;.v-c7{显示:flex;对齐项目:居中;高度:100px;背景色:#ffbb00;}display:flex+margin:auto0:应用于所有元素父节点声明display:flex;子节点声明margin:auto0;display:flex;margin:auto0;.v-c8{display:flex;高度:100px;背景色:#ffbbff;/*只设置auto水平和垂直居中*/}}父节点声明display:flex生成FFC容器,子节点声明margin:auto让浏览器自动计算子节点到边缘的距离父节点