CSS中实现元素水平居中、垂直居中的6个方法(详解)

Html css水平居中+垂直居中+水平垂直居中的方法总结 (1)块级元素(如div):独占一行,不和其他元素在一起,可以设置宽和高;当没设置宽和高时,宽度和父级宽度一样,高度由内容的高度决定;当设置宽和高时,元素的宽高就是设置值,当内容超过宽高值时,元素宽高值也不变高,会溢出。(2)行级元素(如span):不会独占一行,和其它元素在一起,不可以设置宽和高,由里面的内容决定;设置的宽高无效。(3)行内块级元素(如img):不会独占一行,可以和其它元素在一起,可以设置宽和高;当没设置宽和高时,宽高有元素内容决定;当设置宽和高时,元素内容宽高为设置值。 阅读详情
AI摘要

本文主要介绍了CSS实现水平与垂直居中的多种方法。水平居中包括使用text-align:center对文本、行内元素等生效;margin:0 auto对块元素生效;以及用position和transform实现。垂直居中则有line-height适用于文本等元素、flex布局适用于所有元素,还有使用position和transform的方法。

目录

一、水平居中

1、text-align:center;

 2、margin:0 auto;

 3、使用position和transform

二、垂直居中

 1、line-height

2、flex布局

3、使用position和transform


 

 

一、水平居中

1、text-align:center;

对文本元素设置水平居中

案例:给一个宽为400px高为200px的div盒子,盒子里面放置了块元素div、行内元素span、行内块元素input。现在,我们给这个盒子添加一个css样式:text-align:center。

HTML结构:

    <div class="box">
        <div class="div1">文本 div1</div>
        <span>文本 span</span>
        <div class="div2">文本 div2</div>
        <input type="text">
    </div>

CSS样式:

    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .box {
            width: 400px;
            height: 200px;
            background-color: rebeccapurple;
            text-align: center; /*给父元素设置text-align*/
        }

        div {
            background-color: #918a8a;
        }

        .div2 {
            width: 200px;
        }

        span {
            background-color: palegoldenrod;
        }
    </style>

下图是实现结果,我们看到,span标签和input标签均实现水平居中;看到div1你可能以为它水平居中,但是从div2中可以发现,div标签并没有实现水平居中,只是里面的文字水平居中了。不难总结出:text-align对文本、行内元素、行内块元素生效,对块元素却是无效的。

不过,有个疑问的地方,虽然div标签没有水平居中,但是div标签里面的文字却是水平居中的,为什么呢?原来是因为css具有继承性,div标签继承到了父元素的text-align属性,使得div内部的文本对div水平居中。

1bf964628abb422dbd46d969832c8d90.png

 2、margin:0 auto;

对块元素实现水平居中。

实现原理:块级元素在水平方向上具有满屏特性,表现为水平方向上占满整个父容器的宽度,所以,当水平方向上padding、border,width都是定值时,margin左右外边距设置为auto,默认会由margin左右平分剩余空间。从而达到水平居中效果。

比如下面这个例子:

    <div class="father">
        <div class="son"></div>
    </div>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .father {
            width: 400px;
            height: 200px;
            background-color: rebeccapurple;
        }

        .son {
            width: 200px;
            height: 100px;
            background-color: palegoldenrod;
            margin: 0 auto;
        }
    </style>

 我们设置了一个宽400的div父盒子,一个宽200的div子盒子,给子盒子添加了一个margin:0 auto;的样式。如下图2所示,我们可以看到子盒子在父盒子中实现了水平居中。我们在浏览器中查看它的盒子模型(图1),可以明确发现,子盒子的左右margin值为100,正是父盒子宽度减去子盒子border+padding+width后( (400-200)/2=100  )的宽度,以此成功实现水平居中。

438d8dedbc604e87966ea6352563d7a9.png

图1​​​​​

da57f7a5fce74cfb977c42ec39a6a886.png

图2

 3、使用position和transform

            position: absolute;

            left: 50%;

            transform: translateX(-50%);

 实现原理: position: absolute;给元素设置绝对定位,left: 50%;让其距离左边偏移父元素的50%,然后通过 transform: translateX(-50%);让其向左平移自身宽度的50%,从而实现一个水平居中的效果。

下图是实现原理的一个过程图:

f3027e1eef8d496a859c50298bb3e44e.jpeg

 完整案例代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .father {
            width: 400px;
            height: 200px;
            background-color: rebeccapurple;
            position: relative;
        }

        .son {
            width: 200px;
            height: 100px;
            background-color: palegoldenrod;
            position: absolute;
            left: 50%;
            transform: translateX(-50%);

        }
    </style>
</head>

<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>

</html>

 

二、垂直居中

 1、line-height

把行高line-height和高度height设置为一样,可以实现文本元素的垂直对齐,(该做法只适用于文本、行内块元素、行内元素的垂直居中,块元素的垂直居中不适用)案例代码:

height:200px;

line-height:200px;

 如下图,我们可以看到行高的组成,分别为文字大小及其两端的空白区域。在文字两端(也就是红线与绿线之间)的空白区域是高度相同的两部分。当元素的高度height和行高line-height相等时,刚好可以实现文本的垂直居中。

66a777b7deb246babbbcb7f51bcb4f5a.jpeg

2、flex布局

flex布局中,通过设置侧轴上子元素排列方式为center,可以实现将元素垂直居中,适用于所有类型的元素。

display: flex;

flex-direction: row;   /*设置主轴方向是水平方向*/

align-items: center;  /*设置侧轴上,子元素的排列方式为居中对齐*/

3、使用position和transform

使用该方法实现垂直居中的原理和上面所讲的水平居中类似,简而言之就是,先让元素向下移动父元素的50%,在向上移动自身的50%,从而移动到了父元素垂直方向的中间位置。

position: absolute;

top: 50%;

transform: translateY(-50%);

e8961068298d448d858262f6a61c8792.png

案例图

 

 

 

 

css中垂直对齐常用的几种方法 将容器设置为display:table,然后将子元素也就是要垂直居中显示的元素设置为display:table-cell,然后加上vertical-align:middle来实现。这段代码的效果和line-height法差不多。这段代码可以达到让文字在段落中垂直居中的效果。五:css3的box方法实现水平垂直居中。四、CSS3的transform来实现。一、行高(line-height)法。二、内边距(padding)法。/*flex 布局*//*实现垂直居中*//*实现水平居中*/ 阅读详情

相关推荐

CSS实现文字垂直居中

CSS实现文字垂直居中

weixin_48596030的博客 4万+

css垂直居中的6种方式

这里实现了比较常用的垂直水平居中的方案,十分有用,希望对于面试必考题来说,只要熟练掌握前面三种,基本上是没有问题了,源码我会放在本人主页的资源里面,供大家免费下载,创作不易,关注一下,后续将带来vue版本大屏可视化解决方案。敬请期待吧~~~❤️。

weixin_42974827的博客 2万+

XCAT集群管理实战:从裸机到节点批量部署

在数据中心与HPC集群运维中,裸机配置与操作系统批量部署是关键环节。PXE引导、IPMI带外管理等基础技术为自动化装机提供了底层支持,而集群管理工具则将这些能力整合为可扩展的运维体系。XCAT作为一款开源集群管理工具,通过数据库驱动的方式统一管理DHCP、TFTP、HTTP等服务,实现从裸机发现、系统安装到电源控制的全流程自动化。本文从XCAT的核心设计出发,详细介绍了环境准备、安装配置、节点定义、镜像分发及常见问题排查,帮助运维人员快速构建高效的集群部署流程,降低规模化管理的复杂度。

weixin_30899023的博客 241

CSS 垂直居中的七种方法——史上最详细总结

我们在写页面时,通常会用到水平居中或垂直居中,而水平居中很好处理,不外乎就是设定 margin: 0 auto; 或是 text-align: center; “垂直居中”却比较麻烦,下面介绍七种纯 CSS 实现垂直居中的方式。 一、设定行高(line-height) 设定行高是垂直居中最简单的方式,适用于“单行”的“行内元素”(inline、inline-block),例如单行的标题,或是已经设为 inline-block 属性的 div,若将 line-height 设成和高度一样的数值,则内容的行内元

qq_37384271的博客 3万+

Unity热更实战:用YooAsset+HybridCLR实现小游戏资源与代码双更新(含避坑清单)

本文详细介绍了Unity小游戏开发中如何通过YooAsset与HybridCLR实现资源与代码双热更新方案。内容涵盖环境配置、架构设计、微信小游戏专项优化、热更代码工程化实践及真机调试技巧,帮助开发者解决审核周期长、紧急修复等痛点,提升更新效率与稳定性。

weixin_42520025的博客 501

C#开发医学影像胶片打印系统(一):万能花式布局的实现思路

本篇文章将介绍开发医学影像胶片打印系统(printscu模式)遇到不规则排版时的一种思路,一般来讲,医院打印胶片时都是整张胶片打印,但有时需要将多个病人或一个病人的多个检查打印在同一张胶片上,这时候就需要不规则排版来满足打印需求,使胶片利用率最大化。

罗万科技的博客 1325

css实现元素居中的6种方法

相信大家在面试的时候也会经常碰到css实现元素居中的方法,下面我介绍6种方法给大家,欢迎大家评论区交流。给定两个元素,这两个元素是父子级关系并且两个元素的大小都是不确定的,那么这时候如何让子级在父级中上下左右都居中?(暂且设定父级比子级要大一些)。

富朝阳的博客 4万+

fatal: unable to access ‘https://github.com/Stability-AI/stablediffusion.git/‘解决方案

本文主要介绍在安装 stable-diffusion-webui 时出现的 fatal: unable to access 'https://github.com/Stability-AI/stablediffusion.git/': Failed to connect to github.com port 443 after 21071 ms: Couldn't connect to server 问题的解决方案,希望能对你有所帮助。

水滴的博客 5685

CSS垂直居中的几种方法

推荐大家几种常见的css垂直居中的方法,便于不同的场景使用,也方便大家面试时有更多的思路,如果大家有更好更多的方法,欢迎留言讨论

m0_72838183的博客 8415

uni-app - 文本展开 / 收起折叠功能,支持自定义样式(当文本内容超出规定行数后,展开收起折叠的功能)兼容 H5 / App / 小程序且易用更容易修改的插件组件源码,超详细的示例代码及注释

uniapp实现文本的展开与收起功能,uniapp展开全部和收起,uniapp里文本的展开与收起,uniapp中文本内容超出规定行数后展开收起的处理,UNIAPP兼容h5、微信小程序多行文本展开或收起,uni-app中,文字超出隐藏并显示省略号(实现展开、收起全文),uni-app中文本过长-实现折叠与展开效果,中文本内容超出规定行数(字数)后展开收起的处理,超出部分...显示,uniapp适用于uniapp多行文本溢出显示...,多行文本展开或收起,uni-app-文本展开/收起折叠功能,支

🏆 前端领域优质创作者 5639

YOLOv11【第六章:模型压缩与极致优化篇·第15节】YOLOv11 专用剪枝工具库使用指南!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1312

CSS实现元素水平垂直居中的各种方法

在设计网页页面的过程中,总会有将元素或者文字进行水平或者垂直居中的要求,各种CSS样式调整,搞的头都大了。这里将会介绍CSS中几种常用到的水平垂直居中的方法,希望能够对你有所帮助。...

Kotlin0139的博客 1万+

vectorCast——Probe point 功能实现故障注入,局部变量打印,断点调试。

选择一个测试用例,选择coverage窗口进行查看。点击edit probe point,如图所示绿色的小圆圈。 选代码中选择需要打断点的地方进行点击。黑色的小圆点都可以选。 点击黑色小圆点,小圆点变绿,表示打断点成功。 此时就可以根据自己的需求在打断点的位置编写一些C语言的命令语句。 点击编译,成功会弹出窗口显示编译成功,失败会在下方报错error,并显示错误的原因。 点击应用保存,选择yes to all就可以了。 点击用例执行就可以看到打断点情况下的执行结果了。

weixin_59334478的博客 2069

实现元素的水平垂直居中:全面详解

实现元素的水平垂直居中:全面详解

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 7129

小工匠聊架构-分布式场景下的并发幂等性常见的解决方案

Pre 我们来回顾下单体时代 单体时代,应用部署在一台主机上,可以使用JVM级别的锁来控制并发请求 。 随着应用规模的不断扩大,集群化或者微服务化的分布式部署越来越普及,每个应用都是一个单独的JVM应用,所以单体时代的这种处理方式已经无法满足当前架构下的业务需求了。 JVM级别的锁已经无法满足跨进程之间访问控制了,进而演化出来了分布式锁。 分布式锁 能否解决幂等性问题? 分布式锁解决什么问题? 简言之: 解决跨进程间无法共享本地资源的问题 ,解决的是分布式场景下并发访问的问题。 为什么需要确保并发.

小工匠 2万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

利用CSS实现【水平居中和垂直居中】的方法

使用该方法实现垂直居中的原理和上面所讲的水平居中类似,简而言之就是,先让元素向下移动父元素的50%,在向上移动自身的50%,从而移动到了父元素垂直方向的中间位置。(2) flex布局中,通过设置侧轴上子元素排列方式为center,可以实现将元素水平居中,适用于所有类型的元素。(1)flex布局中,通过设置侧轴上子元素排列方式为center,可以实现将元素垂直居中,适用于所有类型的元素。对文本元素设置水平居中。/*设置侧轴上,子元素的排列方式为居中对齐*//*设置侧轴上,子元素的排列方式为居中对齐*/

2401_82930760的博客 3191

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

CSS实现水平垂直居中的5种方法

本文将详细介绍五种不同的CSS技术来实现这一目标,并通过具体示例帮助读者理解每种方法的工作原理及其适用场景。随着CSS的发展,实现这一效果的方法越来越多,包括使用。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。通过上述示例和技术解析,希望能帮助大家更好地理解和应用CSS来实现水平垂直居中的效果。一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身农奴把歌唱,对于某些情况,我们可能需要基于父元素的尺寸来计算子元素的位置。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 3185

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

css元素水平垂直居中

/图片与文字垂直居中,但会有少量偏差,再通过。在应用一的基础上,给子项(元素) 添加 vertical-align: middle;//子元素相对父元素水平(主轴)居中。//子元素相对父元素垂直(交叉轴)居中。这种写法,在没有指定子元素宽高的情况下,也能让其在父容器中垂直居中。//给父元素加,弹性布局。margin-left:- 自身宽度一半;margin-top:-自身高度一半;

博哥的二进制世界 2048

CSS将元素水平居中、垂直居中、水平垂直居中的方法总结

在实际开发中,经常会遇到要将页面上某个盒子元素水平居中、垂直居中或者水平垂直居中的情况,需要居中的元素类型不同,采用的方法也不一样,下面就一起看看实现不同类型的元素居中的方法吧

qq_35727582的博客 1632

元素水平垂直居中的方法

我们在制作页面的时候,经常需要把元素进行水平垂直居中,所以今天主要介绍行内元素和块级元素水平垂直居中的多种方法,供大家选择运用。 1.行内元素水平垂直居中的方法 1.1 水平居中 text-align:center; /* 实现行内元素水平居中 */ 1.2 垂直居中 1.2.1单行文本的垂直居中 只需要让元素高度和行高相等即可; <style> div { height: 50px; width: 300px;

JJ_Smilewang的博客 5027

CSS中让元素水平垂直居中的6种写法

水平居中 使用CSS控制水平居中: 块级元素 设置width,并设置margin auto 内联元素 父元素设置text-align center 块级元素水平居中 关键属性:margin: 0 auto <style> .container{ width: 300px; height: 300px; border: 2px solid black; } .little{ width: 200px; margin: 0 auto; border: 2px solid

PILIpilipala的博客 1424

【CSS进阶】CSS元素的水平、垂直居中方法

这篇文章介绍了CSS行内元素、行内块元素、块元素的水平、垂直居中方法

Bl_a_ck的博客 1271

css 实现元素水平垂直居中的几种方法

在做网页的时候经常会需要让某一个元素水平垂直居中,而要实现水平垂直居中有很多种方法,不知道你们有没遇到这种情况:方法倒是知道,甚至还知道许多种,可一到真正用到的时候,却突然在努力地回想,这或许就是人们经常说的「脑子短路」,所以,这篇文章和大家一起来温故而知新,梳理一下常见的几种元素水平垂直居中的方法,以后突然短路了,就翻出来看一看,而且万一以后面试就问到了,那就更好不过了。 div 元素的水平垂直...

LightLinV的博客 2061

CSS水平垂直居中的方法总结

Html中水平居中和垂直居中问题详解 水平居中 行内元素: 父级是不是 块级元素: 垂直居中

qq_41260655的博客 1468

div+css 元素水平居中 及垂直居中的几种写法

CSS控制居中是前端开发中非常常用的布局技能,本文列出几种CSS控制元素居中的几种方法。   谈及HTML元素居中展示,涉及到水平居中和垂直居中,以及水平垂直居中。由于HTML文档流是水平方向的,所以水平方向上的布局控制比垂直方向要简单很多,居中也是如此。不过(水平)垂直居中还是有很多种写法,至少一只手是数不过来了,本文列出几种,并进行简单比较。 一、水平居中   使用CSS控制水平居中很简单: ...

肖帅的博客 1701

css不同元素类型实现水平/垂直/水平垂直居中的方法

本文详细总结了CSS中不同元素类型(行内、行内块、块级、定位元素)实现水平、垂直及水平垂直居中的方法。行内元素推荐使用text-align和line-height;行内块元素可用text-align和Flexbox;块级元素适合margin:auto和Flexbox;定位元素则多用绝对定位配合Transform。现代布局首选Flexbox和Grid,兼容性方案可选择绝对定位+Transform或传统Table-Cell方法。文中提供了具体代码示例和适用场景说明,帮助开发者根据需求选择最优方案。

2301_80270696的博客 1020
上一篇: CSS | 盒子模型
下一篇: css案例(一)遮罩层
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值