css居中的几种方法(css里怎么居中)
CSS居中方案大全
如果您觉得我的文章有用,欢迎点赞和关注,也欢迎光临我的个人博客
在这里总结一下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搜索一下。
如果您觉得我的文章有用,欢迎点赞和关注,也欢迎光临我的个人博客
css居中的几种方式
1.横向居中
(1)方法一
position:?fixed;
/*?居中对齐begin?*/
left:?50%;
/*?兼容老版本的方法?*/
-webkit-transform:?translateX(-50%);
transform:?translateX(-50%);
(2)方法二
设置固定宽度,并且设置margin:auto
(3)方法三
position:?fixed;
left:?50% - 居中盒子宽度的50%;
2.纵向居中
(1) 高度和行高设置一样
height: 100px;
line-height:100px;
3.横向和纵向都居中
display:?flex;
/*?默认的主轴是x轴row,?justify-content:?center?沿着主轴居中对齐?*/
justify-content:?center;
/*?我们需要一个侧轴居中?*/
align-items:?center;
CSS水平居中的9种方法
容器的居中显示在网页设计中是很常见的,居中显示可以获得视觉的焦点,是内容更加突出,下面就简单的说明一下如何在HTML中通过样式的控制来实现
01
最常见的一种,代码示例如下图,首先,取big一半像素大小赋给small层,通过margin: 0 auto; text-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:flex;flex-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层随之浮动,代码示例如下
特别提示
每种方法都适应不同的运行环境,实际操作时需要考虑不同浏览器的解析时的兼容性
CSS实现垂直居中的7种方法
HTML:
CSS:
重点:父容器高度和子元素line-height一样的数值,内容中的行内元素就会垂直居中。
HTML:
CSS:
重点:给父元素添加一个伪元素::before,让这个伪元素的div高度为100%,这样其他div就可垂直居中了,但div 本身就是块级元素,而vertical-align是行内元素属性,则需要修改为inline-block。
HTML:
CSS:
重点:在父元素中设置相对定位position: relative,子元素设置绝对定位 position: absolute;top和left相对父元素的50%,与其搭配的 transformse: translate(-50% , -50%)表示X轴和Y轴方向水平居中。
HTML:
CSS:
重点:子元素绝对定位position:absolute,父元素相对定位position: relative,将上下左右的数值都设置为0,同时margin:auto。绝对定位是会脱离文档流的,这点要注意一下。
HTML:
CSS:
重点:给父元素设置display: flex布局,水平居中 justify-content: center,垂直居中align-items: center。
HTML:
CSS:
重点:父元素position定位为relative,子元素position定位为absolute。水平居中同理。calc居中要减多少要结合到自己的宽高设置多少再进行计算。
HTML:
CSS:
重点:将父元素设置display:table,子元素table-cell会自动撑满父元素。组合 display: table-cell、vertical-align: middle、text-align: center完成水平垂直居中。
CSS div居中的几种方法
CSS实现div垂直居中的方法有很多,下面div居中的几种方法是自己平时写网页中经常用到的,最常见的例子就是登录注册弹出框。
方法一:对div使用绝对布局position:absolute;并设置top,left,right,bottom的值相等,但不一定都等于0;并且设置margin:auto。
方法二:这个方法要知道div的宽度和高度。对div使用绝对布局position:absolute;并把top和left的值都设置为50%;50%就是指页面窗口的宽度和高度的50%;最后将div左移和上移,左移和上移的大小为div宽度和高度的一半。
其中 margin-left:-100px 和 margin-top:-100px 可以写成 margin:-100px ?0px ?0px ?-100px
方法三:div使用绝对定位position:absolute,并且设置left和top的值都为50%。使用css3的transform属性。transform:translate(-50%,-50%)。
以上3种方法的效果如下显示
若有两个div,里面小的div相对于外面大的div水平垂直居中对齐,有以下几种方法。
方法一:利用position和margin:auto实现。父元素设置position:relative;子元素设置position:absolute,并设置top,left,right,bottom值相等。
方法二:使用position。父元素设置position:relative;子元素设置position:absolute。并设置top和left为50%,并设置左移和上移为子元素的大小的一半。
方法三:使用display:flex。这种方法需要设置浏览器的兼容性。
方法四:使用transform:translate()。父元素设置position:relative;子元素设置position:absolute。并设置top和left为50%。最后设置transform:translate(-50%,-50%)。
以上四种方法的效果图如下显示
今天就跟大家分享这么多~如果你有更好的方法,请在下方留言
Css实现元素上下左右都居中的4种方法
例:居中.wrapper里的.content
一. 已经元素的宽高的前提下:
(1)? left:50%;top:50%
父元素设置相对定位,position: relative;?
子元素(要居中的元素)设置绝对定位,position: absolute;? left: 50%;? ?top: 50%
(2)设置margin: auto;
父元素设置相对定位,position: relative;
子元素(要居中的元素)设置绝对定位,position: absolute; margin: auto
(3)? ?flex布局
父元素设置 display: flex;? justify-content: center;? ?align-items: center;
二.未知元素宽高的情况下:
(1)四个方向设置值,把元素撑开
父元素设置相对定位,position: relative;?
子元素设置绝对定位,position: absolute; top与bottom设置一样的值,left与right设置一样的值,把容器撑开