CSS居中方案大全

html-css027

CSS居中方案大全,第1张

如果您觉得我的文章有用,欢迎点赞和关注,也欢迎光临我的个人博客 https://github.com/BokFang

在这里总结一下CSS水平居中、垂直居中的各种方式。应该说非常全了。

总览一下:

用法:在父级元素的样式中添加 text-align:center

效果图:

用法:在元素样式添加 margin:0 auto ,使其margin-left和margin-right平分块级元素那一行剩余的宽度。

效果图:

当然如果你的块级元素没有设置width,那么div就会占满一行,也就没有水平居中的说法了。

如果由多个块级元素,则可以使用 inline-block 配合 text-align:center ,将 inline-block 写在需要居中的元素样式上, text-align:center 写在父级元素上。

效果图:

使用flex也可以轻松做到多个块级元素水平居中

用法:在父级元素样式增加 display: flex justify-content: center

效果图与第三个一样。

当然,多个块级元素能用的居中方法,在单个块级元素上也同样可以使用。

使用 display:table 配合 margin:0 auto ,可以达到不定宽块级元素居中效果。

效果图:

使用绝对定位给元素一个left:50%,然后再加一个margin-lelt:-(宽度的一半)

效果图:

不过缺点很明显,就是你知道元素宽度而且得固定不变,所以是比较蠢的一种写法。

效果图:

效果图:

这个方法和水平居中的第6个方法一样,就不多说了。

效果图:

这个和水平居中的第7个方法一样,我也就不多说了。

效果图:

效果图:

效果图:

缺点也比较明显,需要计算。

效果图:

效果图:

效果图:

需要在html中加入 <table>标签,比较低效,我就不详写了,想了解的朋友可以Google搜索一下。

如果您觉得我的文章有用,欢迎点赞和关注,也欢迎光临我的个人博客 https://github.com/BokFang

容器的居中显示在网页设计中是很常见的,居中显示可以获得视觉的焦点,是内容更加突出,下面就简单的说明一下如何在HTML中通过样式的控制来实现

01

最常见的一种,代码示例如下图,首先,取big一半像素大小赋给small层,通过margin: 0 autotext-align: center来实现

02

第二种方法,代码示例如下图,将big层的display设置为table-cell,然后small层的margin-left取(500-250)/2,也就是125即可

03

第三种方法,代码示例如下图,将big层的position设置为absolute,然后small层的margin-left取(500-250)/2,也就是125即可

04

第四种方法,通过display:flex实现,代码示例如下图,big层display:flexflex-direction:column而small层align-self:center

05

第五种方法,在small层的宽度没有的时候,可以通过width:fit-content这个设置来完成,代码示例如下

06

第六种方法,通过display:inline-block来实现,将这个设置赋给big层即可,代码示例如下图

07

第七种方法,设置big层position:relative,相对情况下,使small层左浮动,代码示例如下

08

第八种方法,transform属性,代码示例如下

09

第九种方法,借助第三方样式,比如增加一个add节点,水平浮动向左,使small层随之浮动,代码示例如下

特别提示

每种方法都适应不同的运行环境,实际操作时需要考虑不同浏览器的解析时的兼容性

position 的四个属性:static、absolute、relative、fixed

static:默认值

absolute:脱离文档结构,导致父元素坍塌;相对于最近的非static元素进行定位;使得inline元素被“块”化;使得元素已有的float失效。多个悬浮元素,后来者在上方;

relative:根据原来位置,导致自身位置的相对变化,而不会影响其他元素的位置、大小的变化。

产生新的定位上下文,影响子元素(如absolute属性元素定位)

fixed:根据浏览器确定位置

参考文章:https://www.cnblogs.com/wangfupeng1988/p/4322680.html

css原理:

vertical-align :指定行内元素(inline)和行内块级元素(inline-block)或表格单元格(table-cell)元素的垂直对齐方式。

文本垂直居中:

单行文本:设置line-height 和区域高度height 一致即可

多行文本垂直居中:

1、父级元素高度不固定,随内容变化:内填充padding-top = padding-bottom

2、父级元素高度固定:

父元素div:display:table

子元素div:display:table-cell;vertical-align:middle

子div垂直居中:

1、子div具体大小设置偏移

2、利用transform:translateX(-50%)translateY(-50%)

3、利用绝对布局absolute

4、利用vertical-align属性实现子div大小不固定垂直居中

5、利用display:flex:

justify-content: center/*实现水平居中*/

align-items:center/*实现垂直居中*/

参考链接:https://blog.csdn.net/u014607184/article/details/51820508