天涯论坛

 找回密码
 立即注册
搜索
查看: 72|回复: 2

详解 CSS 居中布局技巧

[复制链接]

3048

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109040
发表于 2024-6-30 09:49:10 | 显示全部楼层 |阅读模式

水平居中元素:

通用办法,元素的宽高未知

方式一:CSS3 transform

.parent { position: relative; } .child { position: absolute; left: 50%; transform: translateX(-50%); }

方式二:Flex 布局

.parent { display: flex; justify-content: center; }

适用于子元素为浮动,绝对定位,内联元素,均可水平居中。

居中的元素为常规文档流中的内联元素(display: inline)

平常的内联元素有:span, a, img, input, label 等等

.parent { text-align: center; }

办法一样适用于 display: inline-block 的元素。

居中的元素为常规文档流中的块元素(display: block)

平常的块元素:div, h1~h6, table, p, ul, li 等等

方式一:设置 margin

.parent { width: 100%; } .child { width: 600px; height: 50px; margin: 0 auto; bac公斤round: #999; }

办法只能进行水平的居中,且对浮动元素或绝对定位元素效。

方式二:修改为 inline-block 属性

.parent { text-align: center; } .child { display: inline-block; }
居中的元素为浮动元素
.child { width: 100px; float: left; position: relative; left: 50%; margin-left: -50px; }
居中的元素为绝对定位元素

方式一:

.parent { position: relative; } .child { position: absolute; width: 100px; left: 50%; margin-left: -50px; }

方式二:

.parent { position: relative; } .child { position: absolute; width: 100px; left: 0; right: 0; margin: 0 auto; }

垂直居中元素:

通用办法,元素的宽高未知

方式一:CSS3 transform

.parent { position: relative; } .child { position: absolute; top: 50%; transform: translateY(-50%); }

方式二:Flex 布局

.parent { display: flex; align-items: center; }

适用于子元素为浮动,绝对定位,内联元素,均可垂直居中。

居中元素为单行文本
.text { line-height: 200px; height: 200px; }

把文字的 line-height 设为文字父容器的高度,适用于仅有一行文字的状况

已知元素宽高

方式一:

.parent { position: relative; } .child{ position: absolute; top: 50%; height: 100px; margin-top: -50px; }

方式二:

.parent { position: relative; } .child{ position: absolute; top: 0; bottom: 0; height: 100px; margin: auto 0; }

垂直居中元素:

1. 绝对居中定位
div { width: 100px; height: 100px; margin: auto; position: fixed; //absolute is ok top: 0; right: 0; bottom: 0; left: 0; }

优点:

不仅能够此刻正中间,还能够在正左方,正右方

元素的宽高支持百分比 % 属性值和 min-/max- 属性能够封装为一个公共类,可做弹出层浏览器支持性好2. 负边距居中
.child { width: 100px; height: 100px; position: abso




上一篇:CSS实现元素居中N种办法 ——比较全,附上 demo
下一篇:CSS实现居中对齐
回复

使用道具 举报

3089

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098770
发表于 2024-9-30 07:25:07 | 显示全部楼层
真情实感,其含义为认真了、走心了的意思,是如今的饭圈常用语。
回复

使用道具 举报

3070

主题

3万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99158930
发表于 2024-9-30 19:08:00 | 显示全部楼层
我深感你的理解与共鸣,愿对话长流。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-23 05:30 , Processed in 1.658378 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.