HTML CSS中如何实现DIV中的水平垂直居中对齐

网上科普有关“HTML CSS中如何实现DIV中的水平垂直居中对齐”话题很是火热,小编也是针对HTML CSS中如何实现DIV中的水平垂直居中对齐寻找了一些与之相关的一些信息进...

网上科普有关“HTML CSS中如何实现DIV中的水平垂直居中对齐”话题很是火热,小编也是针对HTML CSS中如何实现DIV中的水平垂直居中对齐寻找了一些与之相关的一些信息进行分析 ,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

HTML CSS中实现DIV中的水平垂直居中对齐的方法:

所谓的水平垂直居中就是把放在一个容器元素中(容器大于尺寸或是指定了大小的容器),并且位居此容器正中间(中间是指元素容器的正中间) ,而不是以背景(background-image)形式展示,是以<img>元素形式展示的 。如下图所示:

1、解决水平居中的办法:如果左浮动并且"display:inline"时,只要给设置一个"text-align:center"属性 ,就顺利解决了水平居中。

2 、解决垂直居中的办法:使用display:table-cell和设置了display:inline-block的线合span。

完整例子:

html代码:

<ul >

<li><a href="#" ><span></span><img src="images/img1.jpg" /></a></li>

<li><a href="#" ><span></span><img src="images/img2.jpg" /></a></li>

<li><a href="#" ><span></span><img src="images/img3.jpg" /></a></li>

<li><a href="#" ><span></span><img src="images/img4.jpg" /></a></li>

</ul>

css代码:

<style type="text/css">

.imgWrap li {

float: left;

border: solid 1px #666;

margin: 10px 10px 0 0;

list-style: none;

border-collapse: collapse;

}

.imgWrap a {

background: #ffa url(images/gridBg.gif) repeat center;

width: 219px;

height: 219px;

display: table-cell;/*容器以表格的单元格形式显示*/

text-align: center; /* 实现水平居中 */

vertical-align: middle; /*实现垂直居中*/

}

.imgWrap a:hover {

background-color: #dfd;

}

.imgWrap img {

border: solid 1px #66f;

vertical-align: middle; /*垂直居中*/

}

</style>

实现效果如下:

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

本文章主要介绍css如何实现在div中垂直居中问题,具有一定参考价值,希望能给大家提供帮助

平时我们在做页面时经常会遇到让我们把一张显示在div正中间但是常常不知道如何去做 ,今天我们来分享几种常用的css实现在div中垂直居中的代码

HTML代码

<div>

<img src="images/1.jpg">

</div>方法一

利用position和margin共同实现

通过给父元素设置绝对定位属性来让子元素相对于div定位

relative是保留原来的位置进行定位并且是相对于自己原来的位置进行定位

absolute 是脱离原来位置定位 ,是相对于最近的有定位的父级进行定位;如果没有有定位的父级元素,就相对于文档进行定位

注意:要使子元素的上下左右都为0,然后设置margin:auto就会自动垂直居中

代码如下

div{

width:200px;

height:200px;

border: 1px solid #ccc;

position: relative;//父元素设置绝对定位

}

img{

position: absolute;//相对定位

width:80px;

height:50px;

top:0;

left:0;

right:0;

bottom:0;

margin:auto;//使其垂直居中

}效果图

方法二

利用display: table-cell;vertical-align: middle;text-align: center;三种属性实现

display:table-cell:会作为一个表格单元格显示(类似 <td> 和 <th>)

vertical-align: middle;设置垂直对齐方式 ,适用于行级元素

text-align: center:设置水平对其方式,该属性通过指定行框与哪个点对齐,从而设置块级元素内文本的水平对齐方式 。

div{

width:200px;

height: 200px;

margin:300px auto;

display: table-cell;//作为一个表格单元格显示

vertical-align: middle;//设置垂直对齐方式

text-align: center;//设置水平对其方式

border:1px solid #ccc;

}

img {

width:80px;

height:50px;

}效果图

方法三

利用position,以及margin-top、margin-left实现

在本方法中要注意margin-top、margin-left值的设定 ,要设置为元素高度和宽度的一半,而且都要取负值

例如margin-top: -40px意思就是元素距离上边界向上40px,而margin-top: 40px的意思是距离上边界元素向下40px

div{

width:200px;

height:200px;

border: 1px solid #ccc;

position: relative;

}

img{

position: absolute;

width:80px;

height: 50px;

top:50%;

left:50%;

margin-top: -40px;//向上40px

margin-left: -25px;//向左25px

}效果图

总结:实现利用css将在div中垂直居中问题的方法有很多中 ,

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

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

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

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

<div >Hello World!</div>

.container {

width: 300px;

height: 300px;

line-height: 300px;

text-align: center;

border: 1px solid red;

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

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

<div >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 ></div>

<div >

<div >

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 >Hello World!</div>

.container {

position: absolute;

top: 50%;

left: 50%;

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

border: 1px solid red;

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

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

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

<div >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 >Hello World!</div>

.container {

width: 300px;

margin: 50vh auto 0;

transform: translateY(-50%);

border: 1px solid red;

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

<div >

<div >

<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 >

<div >

<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 >

<div >

hello world!

</div>

</div>

.container {

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

width: 100%;

border: 1px solid red;

}

.inner {

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

text-align: center;

vertical-align: middle;

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

关于“HTML CSS中如何实现DIV中的水平垂直居中对齐 ”这个话题的介绍 ,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[花钰文]投稿,不代表石号立场,如若转载,请注明出处:https://s0429.com/cshi/202512-2155.html

(111)

文章推荐

  • 植物生长的必要条件是什么?

    网上科普有关“植物生长的必要条件是什么?”话题很是火热,小编也是针对植物生长的必要条件是什么?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。一:光照。万物生长靠太阳,所以说光的强弱对植物的生长有极大的影响,有些植物喜阳性,有些植喜阴性。二:水分。世间有生命的

    2024年12月15日
    25
  • 疫情最新数据消息山东(山东疫情最新数据统计)

    山东疫情死了多少人1、病毒性肝炎病毒与新冠病毒2023年7月山东传染病疫情数据显示,病毒性肝炎、新冠病毒、肺结核位列乙类传染病感染病例数前三,共导致52人死亡。2、病毒性肝炎与新冠病毒:乙类传染病的高发威胁根据2023年7月山东传染病疫情数据,病毒性肝炎和新冠病毒位列乙类传染病感染病例前两位,共造

    2025年11月23日
    34
  • 黑河疫情最新消息今天(黑河疫情最新数据消息)

    黑河今天解封了吗没有。根据相关疫情政策查询得知封控区和管控区14天内(自最后1例感染者隔离管控日期起计算)无新增感染者,则解除封控;防范区:当封控区、管控区全部解封解控后,防范区一并解除。黑河市20号不能解封。按照黑河市应对新型冠状病毒感染肺炎疫情工作领导小组指挥部《关于黑河市城区有序复工复产复业

    2025年11月23日
    29
  • 河北新增4例无症状(河北新增43例无症状感染者名单)

    31省区市新增本土476+10481、此前,全国经历过一次中高风险清零。4月30日,当时全国唯一高风险地区——北京市朝阳区的疫情风险等级降为低风险。5月7日,牡丹江市林口县由中风险降为低风险;当天,国家卫健委发言人米锋宣布,全国所有县域均调整为低风险。2、年1—11月,全国立案查处环保违法违规案件

    2025年11月23日
    32
  • 浙江6天之内出现5代病例(浙江有几天没有新增病例了)

    什么是四级密接四级密接说的是扬州这个地区的疫情状况,8月5日,扬州市公布了4日新增的36例新冠肺炎确诊病例信息,其中显示,有六个新增病例并不是此前确诊病例的密接人员。密接人员判定标准密切接触者指从疑似病例和确诊病例症状出现前4天开始,或无症状感染者标本采样前4天开始,未采取有效防护与其有1米内近距

    2025年11月25日
    28
  • 疫情最近情况(疫情最近新情况)

    3月11日至今,全国疫情情况目前无法直接给出3月11日至今全国疫情的完整情况,但可提供3月11日当天全国本土新增病例的分布数据,具体如下:总体新增本土病例数:3月11日新增本土病例476例。国家卫健委通报3月11日新增确诊病例15例,其中湖北8例;C罗队友鲁加尼确诊新冠肺炎,尤文图斯全队隔离;丹麦

    2025年11月28日
    32
  • 新郑疫情最新消息(新郑疫情最新消息)

    新郑市10月31号什么时候解封无新增感染者。根据查询新郑市疫情消息显示,新郑市10月31号无新增感染者即可解封。新郑市指新郑。新郑,河南省辖县级市,由郑州市代管。郑州城隍庙(郑州市商城路北):免费开放,开放时间08:00-17:00。需确认免费政策的景点福建鼓浪屿:厦门8家收费国有A级景区(含鼓

    2025年11月28日
    27
  • 科普知识内容大全手抄报图片(科普知识资料大全手抄报)

    科普手抄报的内容资料科学普及简称科普,又称大众科学或者普及科学,是指利用各种传媒以浅显的、让公众易于理解、接受和参与的方式向普通大众介绍知识。-防震减灾科普知识,地震发生时的室外和室内自我保护方法。1科普知识手抄报的内容-科普知识的价值和意义,它涵盖了科学各个领域和日常生活,对个人和社会都有

    2025年12月06日
    6
  • 南京禄口全域高风险(禄口街道高风险区域地图)

    北京丰台区某诊所四名医务人员被抓,一名村医确诊!1、北京市丰台区四名医务人员因骗取核酸检测阴性报告被采取刑事强制措施,同时南京疫情中有一名村医确诊。2、月6日,在新疆阿瓦提县阿依巴格乡玉斯屯克库拉斯村卫生室,村医汗克孜·玉散依木正在为5位患有慢性病的村民准备所需药品,用实际行动履行着一名乡村医生的

    2025年11月30日
    12
  • 济宁新增本土确诊病例1例(济宁新增冠状病毒)

    济宁有新增病例吗1、有的。根据相关查询2022年10月2日0时至24时,山东省济宁报告新增本土确诊病例1例,系集中隔离点检出。新增本土无症状感染者10例,其中济宁7例。2、济宁新增病例在济宁经开区。根据查询相关公开信息显示截止于2022年11月28日济宁疫情防控部发布2022年11月27日0时至2

    2025年11月30日
    14

发表回复

本站作者后才能评论

评论列表(4条)

  • 花钰文
    花钰文 2025年12月07日

    我是石号的签约作者“花钰文”!

  • 花钰文
    花钰文 2025年12月07日

    希望本篇文章《HTML CSS中如何实现DIV中的水平垂直居中对齐》能对你有所帮助!

  • 花钰文
    花钰文 2025年12月07日

    本站[石号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 花钰文
    花钰文 2025年12月07日

    本文概览:网上科普有关“HTML CSS中如何实现DIV中的水平垂直居中对齐”话题很是火热,小编也是针对HTML CSS中如何实现DIV中的水平垂直居中对齐寻找了一些与之相关的一些信息进...