CSS 技巧篇(七):设置元素居中

CSS定位技巧:如何优雅地居中元素 本文深入探讨了CSS中的元素居中技巧,包括使用绝对定位、变换方法和负边距等策略。我们学习了如何在不同的定位上下文中实现元素的精确定位,并讨论了如何处理溢出内容。此外,文章还介绍了固定定位和自定义属性的使用,以及如何在阴影DOM环境中应用这些技术。 阅读详情

目录:

以下将整理关于使用CSS使元素居中的一些方法

案例模版:

<body>
    <div id="main">
        <div id="center">这个块居中</div> 
    </div>
</body>

<style>
    body{
        height: 200px;
    }
    #main{
        border:1px red solid;
    }
    #center{
        border: 1px green solid;
    }
</style>
一、水平居中

1、使用margin:0 auto配合元素的width

#center{
    width: 100px;
    margin: 0 auto;
}

要让居中元素满足两个条件:其一,元素需要有一个固定宽度值;其二元素的margin-left和margin-right都必须设置为auto,这两个条件少了任何一个都无法让元素达到水平居中的效果。

缺点:需要固定居中元素的宽度。

注意:当元素处于position:absolute;时,margin:0 auto无效,需要将right于left都设为0才可以,如下所示:

#center{
    width: 100px;
    margin: 0 auto;
    position:absolute;
    right:0;
    left:0;
}

2、使用绝对定位配合margin

#center{
    width: 100px;
    position: absolute;
    left: 50%;
    margin-left: -100px; /*值为width的一半*/
} 

居中元素设置一个负的“margin-left”并且值等于宽度的一半,另外如果元素不是相对于浏览器的话,还需要在其父元素上设置一个相对定位“position: relative”。

缺点:需要固定居中元素的宽度。

以上两种方式都必须设置固定的宽度值,下面将解决不需要固定宽度值的方法。

3、块级父元素让行内元素居中

#main{
    text-align: center;
}

对居中元素的父元素设置text-align属性。

优点:不需要设置元素的固定宽度。
缺点:居中元素必须是行内元素或者设置为inline-block。

4、利用relative定位与行内样式

#main{
    display: inline-block;
    position: relative;
    left: 50%;
}
#center{
    display: inline-block;
    position: relative;
    right: 50%;
}

将#main与#center全部设置为inline-block,将包裹他们的内容:
在这里插入图片描述

将#main往右移其宽度的50%:
在这里插入图片描述

然后将#center往左移其宽度的50%:
在这里插入图片描述
最终#center元素居中。

优点:不需要设置元素的固定宽度。
缺点:居中元素的元素被设置为inline-block。

5、通过transform进行设置

#main{
    position: relative;
}
#center{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

首先left:50%先右移#main50%的宽度,然后通过translateX(-50%)在左移本身50%的宽度。

优点:不需要设置元素的固定宽度。
缺点:居中元素被设置为absolute。

6、通过flex-box

#main{
    display: flex; 
    justify-content: center; 
}

优点:不需要设置元素的固定宽度。
缺点:父元素被设置为flex。

二、垂直居中

1、通过line-height

#main{
    height: 200px;
    line-height: 200px;
}

居中元素的父元素必须要设置准确height数值。并且居中元素如果是多行文本将错乱。这种方式适合小元素,单行文本。

缺点:需要固定父元素的height值,并且居中元素如果是多行文本将错乱。仅适合小元素,单行文本。

2、使用绝对定位搭配margin

#main{
    position: relative;
}
#center{
    height: 50px;
    position: absolute;
    top: 50%;
    margin-top: -25px; /*值为height的一半*/
}

缺点:需要固定居中元素的height值。

以上两种方式都必须设置固定的height值,下面将解决不需要固定heignt值的方法。

3、通过table-cell与vertical-align

#main{
    height: 100%;
    display: table;
}
#center{
    display: table-cell;
    vertical-align: middle;
}

父元素设置为display:table;子元素设置为display:table-cell;并且设置vertical-align:midden;

4、通过添加一个额外的标签

<body>
    <div id="main">
        <div id="center">这个块居中</div> 
        <div id="other"></div>
    </div>
</body>
<style>
#main{
    height: 100%;
}
#center,#other{
    display: inline-block;
    vertical-align: middle;
}
#other{
    height: 100%;
}
</style>

缺点:需要额外添加一个元素。

5、通过transform进行设置

#main{
    height:100%;
    position: relative;
}
#center{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

首先top:50%先下移#main50%的高度,然后通过translateY(-50%)在上移本身50%的高度。

优点:不需要设置元素的固定高度。
缺点:居中元素被设置为absolute。

6、通过flex-box

#main{
    height:100%;
    display: flex; 
    align-items: center; 
}

优点:不需要设置元素的固定宽度。
缺点:父元素被设置为flex。

M6 Mac mini涨价2500值不值?深度拆解硬件成本与购买决策 统一内存架构将CPU、GPU和内存封装在一起,通过共享高带宽内存池提升数据交换效率,尤其适合本地AI推理和视频渲染等场景。在苹果生态中,起步内存和存储的配置直接决定设备生命周期,因为后期无法自行升级。M6 Mac mini将起步内存从16GB提升至24GB、存储从256GB提升至512GB,同时芯片制程和GPU核心数均有升级,持续负载性能保持率明显改善。对于开发者、内容创作者和本地大模型推理用户,这些变化能转化为实际效率收益;而轻度办公用户则可能面临性能冗余。理解硬件成本结构与自身工作流需求,才能判断这25 阅读详情

相关推荐

别再乱点U盘里的.exe了!手把手教你清除‘Usb Disk.exe’病毒并恢复隐藏文件

本文详细介绍了如何识别和清除U盘病毒(如Usb Disk.exe),并提供从终止病毒进程到恢复隐藏文件的完整步骤。通过禁用自动播放、清理注册表和使用命令行工具,帮助用户彻底清除病毒并预防未来感染,确保数据安全。

weixin_42530732的博客 595

margin 实现水平居中,垂直居中

首先了解下,margin的auto属性的作用是用来分配剩余空间,所以对于有剩余空间的元素才有效哦(块及元素)。比如图片设置margin: 0 auto是无效的,因为图片是内联元素,不是占一整行,没有剩余空间。 1.块及元素水平方向居中: 原理:两侧auto,则平分剩余空间,相当于水平居中。 div { margin-right: auto;  margin-left: auto;...

lucky__peng的博客 8708

openEuler Embedded新增软件包及在线安装软件方法

openEuler Embedded是基于Yocto构建的嵌入式操作系统,默认不包含dnf/apt软件包管理器,主要使用rpm格式。新增软件需通过manifest文件检查是否集成,未集成则需适配新配方。对于在线安装需求,可采用轻量级容器方案:通过isulad运行openEuler服务器版容器镜像,在容器内使用dnf命令安装软件(如Nginx),实现服务器生态兼容。部署前提包括设备支持、存储空间(≥10GB)和网络连接,需先安装并启动isulad服务。这种方法结合了嵌入式系统的轻量化特性和服务器系统的软件管理

专注嵌入式开发与 Linux 系统应用实战,分享芯片驱动、设备调试、系统工具开发干货。 1226

【前端学习】CSS常用水平居中方法记录

1. 通过子元素`margin`属性来实现水平居中 2.通过给父元素设置`text-align`属性居中,子元素改为行内块元素来实现水平居中 3.通过给子元素`margin-left`属性设置为50%,`transform`的translate函数参数为-50%来实现水平居中 4.通过父元素flex布局`justify-content`属性来设置居中

qq_43741689的博客 526

使用单片机开发PWM的案例&相关项目源码

该项目使用STM32单片机生成PWM信号,通过改变PWM的占空比来控制连接在PWM输出引脚(如PA0)上的LED的亮度。在主循环中,通过改变比较值,PWM信号的占空比在0%到100%之间变化,从而实现LED亮度的渐变效果。这个项目是一个基础的PWM控制示例,通过学习和实践这个项目,可以掌握PWM的基本原理和使用方法,并为进一步开发和应用打下良好的基础。该项目实现了使用STM32单片机产生PWM信号,并通过改变PWM的占空比来控制LED的亮度。配置PWM输出引脚(如PA0),确保其模式为PWM输出。

清风明月 643

Matlab实战:从零搭建弹道导弹六自由度仿真模型(附完整代码)

本文详细介绍了如何使用Matlab从零搭建弹道导弹六自由度仿真模型,涵盖仿真环境配置、核心运动方程实现、气动力建模及仿真结果分析。通过完整代码示例,帮助读者掌握弹道导弹六自由度仿真的关键技术,适用于航空航天工程和复杂系统建模领域。

x8y9z0的博客 947

【前端】用margin解决居中问题

【前端】用margin解决居中问题

qq_63135173的博客 691

非华为电脑也能用!华为电脑管家完美安装教程来了

GitHub 上有一个开源项目 ​****​,专门解决“非华为设备无法安装华为电脑管家”的问题。它通过智能模拟 + DLL 劫持技术,绕过官方对硬件型号的检测,让你在联想、戴尔、华硕甚至 DIY 主机上也能流畅使用华为电脑管家!⭐ 项目已获 ​700+ Stars​,社区活跃,持续更新,兼容性优秀!科技不该有围墙。如果你成功在非华为电脑上跑起了 PCManager,欢迎在评论区晒出你的设备型号 + 使用体验!也别忘了把这篇推文分享给同样“眼馋”华为生态的朋友 ~📱 ​关注我们。

程序员朱永胜 4931

水平居中的几种方法-margin,text-align

水平居中的几种方法-margin,text-align在对元素进行水平居中时,可能会有多种方法,但不同的居中方法的适用场景也可能是不相同的。margin设置为auto来水平居中我们知道,在普通流的块级元素中,元素的七个水平属性相加的和等于包含块的width值,利用这个属性,将margin-left,和margin-width两个值设置为auto,它们会被剩下的值均分,设置为相同的长度(注意width

u010250808的博客 7924

抖音直播间人气接口算法 抖音协议

抖音直播间人气接口算法 抖音协议 抖音算法

Q44804487的博客 1万+

FreeRTOS-Plus-CLI使用笔记

FreeRTOS-Plus-CLI使用笔记 一、简介 详细介绍可参考FreeRTOS-Plus-CLI官网地址入口 FreeRTOS+CLI(Command Line Interface, 命令行接口)提供了一种简单、小型、可扩展且RAM高效的方法,使FreeRTOS应用程序能够处理命令行输入。添加一条指令的步骤如下: 提供一个实现命令功能的函数 将命令映射到该功能函数 注册命令 运行命令解释器 命令行调试接口对于排查分析出现的问题提供了很好的接口,可以通过查看传感器信息判断传感器是否正常,可以查看内置

ApexYuan 6964

margin 实现水平居中,垂直居中原理

水平居, 居右,垂直居中方法及原理。

shizhan1881的专栏 6万+

在WIN10系统中安装TIA博途V18,重启后提示安装介质不可用,请插入DVD 或检查网络连接的解决办法

在WIN10系统中安装TIA博途V18,重启后提示安装介质不可用,请插入DVD 或检查网络连接的解决办法

Robot_PLC_HMI_Automation 1万+

html怎么设置7个格子剧中,CSS 技巧篇(七):设置元素居中

以下将整理关于使用CSS使元素居中的一些方法案例模版:这个块居中body{height: 200px;}#main{border:1px red solid;}#center{border: 1px green solid;}复制代码一、水平居中1、使用margin:0 auto配合元素的width#center{width: 100px;margin: 0 auto;}复制代码要让居中元素满足两...

weixin_33735910的博客 486

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

CSS设置元素水平居中、垂直居中方式汇总

按照水平居中、垂直居中、行内元素、块级元素等条件进行组合获取效果水平居中:行内元素解决方案只需要把行内元素包裹在一个属性display为block的父层元素中,并且把父层元素添加如下属性即可:.parent { text-align:center; }水平居中:块状元素解决方案.item { /* 这里可以设置顶端外边距 */ margin: 10px auto; }水平居中

javaloveiphone的专栏 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

CSS中实现块级元素水平居中的N种方法

CSS中实现块级元素水平居中的N种方法: CSS中的居中可分为水平居中和垂直居中。 水平居中分为行内元素居中和块状元素居中两种情况,而块状元素又分为定宽块状元素居中和不定宽块状元素居中。 下面详细介绍这几种情况。 一、水平居中 1、行内元素居中 顾名思义,行内元素居中是只针对行内元素的,比如文本(text)、图片(img)、按钮等行内元素, 可通过给父元素设置 text-align:center 来实现。 另外,如果块状元素属性display 被设置为inline时,也是可以使用这种方法。 但有个首要条件是

phenix323的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

CSS设置行内元素和块级元素的水平居中、垂直居中

什么叫行内元素(内联元素)? 常见的span、a、lable、strong、b等html标签都是行内元素 默认情况下,行内元素均无法设置宽度、高度、上下方向margin的外边距等 一般在css中添加属性: display:inline //这时设置成了内联元素   什么叫块级元素? 常见的div、p、li、h1、h2、h3、h4等html标签都是块级元素 一般在css中添加属性:...

zuo_er_lyf的博客 3051

常用的css将元素垂直居中的6种方法

常用的css将元素垂直居中的方法 1. 使用line-height将单行文本垂直居中 设置line-height等于height,可使单行文本垂直居中 例: div { height: 50px; width: 200px; border: 1px solid #ccc; } 效果如下: 加入line-h...

weixin_43152611的博客 4650

CSS总结:让元素居中的方法

一、text-align:center; 这个是没有浮动的情况下,我们可以先将要居中的块级元素设为inline/inline-block,然后在其父元素上加上属性text-align:center;即可。如果要居中的块级元素直接是内联元素(span、img、a等),直接在其父级元素上加上属性text-align:center;即可; 二、margin:0 auto; 前提:居中的元素必须是块级元素,如果是内联元素,需要添加属性display:block;而且元素不浮动。 三、绝对定位+偏移(已知宽高,需计.

丹 1884

html实现水平垂直居中,HTML技巧篇:实现元素水平与垂直居中的几种方式

如何使用html+css实现元素的水平与垂直居中效果,这也是我们网页在编码制作中会经常用到的问题。1)单行文本的居中主要实现css代码:水平居中:text-align:center;垂直居中:line-height:XXpx; /*line-height与元素的height的值一致*/我们先来看这样一个例子,加入我们这里有一个div,宽度和高度为300px,背景颜色为黑色,然后在div中有一行简短...

weixin_27015733的博客 2万+

CSS元素分类及CSS样式居中大全

水平居中 垂直居中

FL_csdn1的博客 1774

块级元素水平垂直居中的5种技巧

元素居中分为水平居中,垂直居中,还有水平垂直居中这三类。其中文本元素和块元素的居中方式又有略微不同。平时工作中我们最常见的就是块级元素的水平垂直居中和文字的水平居中了。下面是几种块级元素水平垂直居中的方式。 方式1:margin: auto + 绝对定位 .wrapper { position: relative; background: yellow; ...

qq_34295211的博客 4597

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

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

肖帅的博客 1702

CSS元素居中大全

前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里获取!前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里获取![外链图片转存中…(img-0HHio7Xx-1711654868225)][外链图片转存中…(img-qbyPw8VM-1711654868225)]

2401_83703893的博客 1040

CSS内联元素、块级元素的水平居中和垂直居中方法总结

CSS内联元素、块级元素的水平居中和垂直居中方法总结 宽高不定和宽高固定元素居中法均有 Sublime Text3编辑,360浏览器9.1.0.348版本显示无误

weixin_39431859的博客 6007

html 浮动后居中,css如何让浮动元素水平居中

对于定宽的非浮动元素我们可以在CSS中用 margin:0 auto 进行水平居中,对于不定宽的浮动元素我们也有一个常用的技巧解决它的水平居中问题。解决水平居中问题有很多种方法,下面先给大家分享一下三种方法,希望能帮助到大家。方法一:1、HTML 部分:我是浮动的我也是居中的2、CSS 部分:.box{float:left;position:relative;left:50%;}p{float:l...

weixin_28465009的博客 5745
上一篇: CSS 技巧篇(六):display设置元素为行内元素时,元素之间存在间隙问题
下一篇: JS 应用篇(一):Underfined与Null的区别
madman0621
博客等级 码龄11年 36粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值