首页编程css居中的几种方法?css居中怎么设置

css居中的几种方法?css居中怎么设置

编程之家2026-05-16716次浏览

大家好,今天给各位分享css居中的几种方法的一些知识,其中也会对css居中怎么设置进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

css居中的几种方法?css居中怎么设置

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这个设置来完成,代码示例如下

css居中的几种方法?css居中怎么设置

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

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

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

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

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

CSS实现水平垂直居中的几种方法介绍

CSS实现水平垂直居中对齐在CSS中实现水平居中,会比较简单。常见的,如果想实现inline元素或者inline-block元素水平居中,可以在其父级块级元素上设置text-align: center实现;如果想实现块级元素的水平居中对齐,可以设置magin: auto。而如果想实现垂直居中对齐,或许就不太容易。

css居中的几种方法?css居中怎么设置

以下,我总结了一些实现水平垂直居中对齐的一些方法。如果有什么不足之处,望指出。

水平垂直居中的实现可以分为两大内容,一是高度随内容自适应变化,一是固定高度。

固定高度实现水平垂直居中方法一最常用的方法是使用height+ line-height的方式,设置同样的值,配合text-align的使用,即可实现文本的水平垂直居中对齐

<div class="container">Hello World!</div>

.container{

width: 300px;

height: 300px;

line-height: 300px;

text-align: center;

border: 1px solid red;

}缺点:固定高度,无法实现两行文本的垂直居中对齐

方法二使用绝对定位的方法,配合margin负值使用。可以实现元素的水平垂直居中效果。

<div class="container">Hello World!</div>

.container{

position: absolute;

left: 50%;

top: 50%;

margin-left:-150px;

margin-top:-150px;

width: 300px;

height: 300px;

border: 1px solid red;

}当然了,可以使用CSS3的calc函数简化上面的CSS代码

.container{

position: absolute;

left: calc(50%- 150px);

top: calc(50%- 150px);

width: 300px;

height: 300px;

border: 1px solid red;

}缺点:固定高度,高度无法自适应内容。元素脱离文档流。

方法三添加空标签的方式,并且使该元素浮动,脱离文档流,避免影响其他元素的布局。

<div class="space"></div>

<div class="container">

<div class="inner">

hello world!

</div>

</div>

.space{

float: left;

height: 50%;

margin-top:-150px;

}

.container{

clear: both;

height: 300px;

border: 1px solid red;

position: relative;

}缺点:这种方式下的垂直居中需要固定高度,无法实现内容自适应高度。同时,出现多余的空div元素。

高度自适应实现水平垂直居中方法一CSS3中有transform属性,此属性下有一个translate移动函数,此函数接受两个参数。如果两个参数都为百分比值,此时会基于自身宽度和高定进行移动。此函数移动的机制同position:relative相似。

<div class="container">Hello World!</div>

.container{

position: absolute;

top: 50%;

left: 50%;

transform: translate(-50%,-50%);//自身宽度和高度的一半

border: 1px solid red;

}优点:无需定高度。高度随内容自适应。

缺点:元素脱离文档流。如果需要居中的元素已经在高度上超过了视口,那它的顶部会被视口裁切掉。

方法二我们知道,可以使用margin来实现水平居中对齐,而无法使用margin实现垂直居中的原因在于margin的百分比值是基于宽度计算的。

<div class="container">Hello World!</div>

.container{

width: 300px;

margin: 50% auto 0;

border: 1px solid red;

tarnsform: translateY(-50%);

}上面代码中,由于百分比是基于父元素(此时的父元素为body元素)的宽度计算的,所以此时的50%加上translate负值并不能实现垂直居中布局。

不过,CSS中存在一个vh(视口高度),也就相当于DOM中document.body.clientHeight或者document.documentElement.clientHeight的高度,1vh=1%,即1vh等于视口高度的1%。vh单位的浏览器兼容性问题可看vh。因此,以上代码可改为如下,即可实现水平垂直居中效果。

<div class="container">Hello World!</div>

.container{

width: 300px;

margin: 50vh auto 0;

transform: translateY(-50%);

border: 1px solid red;

}方法三CSS3中存在flex布局(伸缩布局盒模型,也叫弹性布局盒模型),对于flex熟悉的朋友来说,使用flex实现水平垂直居中是再简单不过的了。

<div class="container">

<div class="inner">

<p>hello world!</p>

</div>

</div>

.container{

display: flex;

height: 100vh;

}

.inner{

margin: auto;

}当我们使父元素display: flex时,margin: auto不仅可以水平居中,也能够实现垂直居中。这是因为auto外边距会平分水平或垂直方向上的额外空间。

当然,也可以使用justify-content: center来定义弹性项目主轴的对齐方式,align-items: center来定义弹性项目侧轴的对齐方式。

<div class="container">

<div class="inner">

<p>hello world</p>

</div>

</div>

.container{

display: flex;

justify-content: center;

align-items: center;

height: 100vh;

}方法四可以使用display: table来模拟表格,并给子元素设置display: table-cell,让其成为表格的某个单元格,同时设置vertical-align: middle,即可实现垂直居中布局

<div class="container">

<div class="inner">

hello world!

</div>

</div>

.container{

display: table;/*让div以表格的形式渲染*/

width: 100%;

border: 1px solid red;

}

.inner{

display: table-cell;/*让子元素以表格的单元格形式渲染*/

text-align: center;

vertical-align: middle;

}使用此种方式,不需要固定高度。只需要给定任意高度或者不给高度,即可实现水平垂直居中效果。

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居中的几种方法的内容到此结束,希望对大家有所帮助。

java环境变量配置win10?java环境变量配置详细教程css特效代码大全 css特效网站