问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

CSS实现水平居中的几种方式 极客标签

发布网友 发布时间:2022-04-06 07:35

我来回答

2个回答

懂视网 时间:2022-04-06 11:56

(1)行内元素(文字、图片、行内标签(span)、行内块标签(display:inline-block)):text-align: center,下面以span为例:

<p class="father">
 <!-- 行内元素 -->
 <span class="son">hello</span> </p>
.father {
 width: 200px;
 height: 200px;
 border: 1px solid red;
 text-align: center;}

优点:兼容性好,简单

缺点:text-align具有继承性,会影响后代元素

(2)块级元素:margin:0 auto

<!-- 相对于body居中 --><body>
 <!-- 块级元素 -->
 <p class="son"></p></body>
.son {
 width: 200px;
 height: 200px;
 border: 1px solid red;
 margin: 0 auto;}

优点:简单,兼容性好

缺点:宽度必须已知且小于父级元素

(3)flex实现,设置主轴方向居中

 <p class="father">
 <span class="son"></span>
 </p>
.father {
 width: 500px;
 height: 100px;
 border: 1px solid red;
 display: flex;
 justify-content: center;}.son {
 width: 100px;
 background-color: turquoise;}

如果是多个元素可以设置为:

justify-content: space-around; /* 子元素左右两边距离均匀分布 */或justify-content: space-between; /* 最左边和最右边元素靠紧父元素,其余均匀 */

优点:方便,可以实现自适应

缺点:兼容性稍微差一点,PC端IE10以上支持

(4)绝对定位实现:子绝父相

 <p class="father">
 <span class="son"></span>
 </p>
 .father {
 width: 500px;
 height: 100px;
 border: 1px solid red;
 position: relative;
 }

 .son {
 position: absolute;
 width: 100px;
 height: 100px;
 background-color: red;
 left: 50%;
 transform: translate(-50%);/* margin-left: -50% */
 }

优点:优点很少,对于较难实现居中的元素可以用定位,margin-left兼容性好点

缺点:脱离文档流,代码多,兼容性稍微差点,IE9以上支持transform,而且需要知道宽度值。

推荐学习:《前端视频》

热心网友 时间:2022-04-06 09:04

对于行内元素:
text-align:center;
二、对于确定宽度的块级元素:
(1)margin和width实现水平居中
常用(前提:已设置width值):margin-left:auto; margin-right:auto;
(2)绝对定位和margin-left: -(宽度值/2)实现水平居中
固定宽度块级元素水平居中,通过使用绝对定位,以及设置元素margin-left为其宽度的一半
.content{
width: 200px;
position: absolute;
left: 50%;
margin-left: -100px; // 该元素宽度的一半,即100px
background-color: aqua;
}
(3)position:absolute + (left=0+top=0+right=0+bottom=0) + margin:auto
.content{
position: absolute;
width: 200px;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样写小说比较容易被发掘? 笔记本独显有黄色叹号,不能工作,n卡控制面板消失重下驱动也不管用,求助... ...我的独立显卡怎么显示一个黄色的小叹号。怎么解决啊? 去了怎么造句 跑到怎么造句 临床医学可不可以报考执业药师 中秋和双节公司都发放了什么礼物啊? 请问川藏线自驾旅游可以携带医用氧气瓶吗 个人家庭如何租医用氧气瓶 fell过去式和过去分词形式 如何实现块级元素的水平居中 BLADE是什么品牌的轮胎? Blade&Soul是什么意思 骑马与砍杀戎马丹心武库以及兵器厂问题 武道球魂的人物简介 EMC 存储中X-Blade是什么 interface Blade这个接口是什么意思 laravel框架摸版继承问题 blade中文是什么意思 laravel 模板语法规则{{}}不识别怎么办 英语里面BLADE 和SWORD 有什么区别 PHP lumen怎么输出uuid blade是什么意思啊 Laravel 5.1 会有哪些变化 PHP blade模板的继承时,@extend(&#39;xx&#39;)怎么才能写进注释里面(直接写会报错)? @if,so在php中是什么意思 请问phpstorm里如何新建一个blade模板 怎么让一个div在另一个div中垂直居中 如何让div垂直居中 如何让一个浮动的块元素垂直居中 如何让DIV高度固定 水平居中 最好写的详细点 如何让一个未知宽度的元素水平居中 如何让div里面的水平居中 如何让div中的内容水平居中,垂直居中 怎么让div里面的元素水平居中 如何让子div在父div中水平居中 设浮动后,怎样清除浮动? 网页布局中,如何清除元素的浮动??? html如何清除浮动 CSS清除浮动问题 清除浮动的清除浮动的方法 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方 css中,为什么给浮动元素的容器也添加上浮动属性即可清除内部浮动? HTML要怎么清除浮动? css中当子元素设置浮动,为什么父集要清掉浮动 关于CSS 定位中的浮动的清理怎么理解 什么是块元素和行内元素? 请分别列出五个块元素和行内元素 html中块属性和行属性的区别 div是块级元素,span是行内元素,这都是什么意思,具体有什么区别 属性是什么意思,说的通俗易懂,别从网上复制,两句话给我概括了行吗?