css元素水平垂直居中的十种方法

css元素水平垂直居中的十种方法

大家好,又见面了,我是全栈君。

        

首先看页面结构和元素的基本样式:

<div class="parent" style="width: 400px;height: 200px;background: #797099;">
    <div class="child" style="width: 200px;height: 100px;background: #eee;"></div></div>

 注:为了便于演示,这里给父元素和子元素都设置了宽高,但是实际情况下,这两者的宽高经常都是未知的。

 要实现的效果如下:

css元素水平垂直居中的十种方法

1、父元素设置高度等于行高

只在父元素高度已知,并且子元素是文本的情况下适用。

css元素水平垂直居中的十种方法

2、子元素相对定位

这种方法只在子元素宽高已知的情况下适用。

css元素水平垂直居中的十种方法

3、子元素相对于父元素绝对定位,并配合使用负值的 margin

最常见的方法,这种方法只能在子元素宽高已知的情况下使用。

css元素水平垂直居中的十种方法

4、子元素相对父元素绝对定位,并使用 calc() 计算属性

思想同上一种方法,只不过用计算属性替代了偏移量和 margin

css元素水平垂直居中的十种方法

 5、子元素相对于父元素绝对定位(偏移量都为0),子元素设置margin:auto;

这种方式同样只在子元素高宽已知的情况下使用。

 css元素水平垂直居中的十种方法

6、父元素设置 display:table-cell 和 vertical-align:middle; 子元素设置 margin: auto;(低版本IE会有问题)

css元素水平垂直居中的十种方法

7、父元素设置  display:table-cell 已经内容的水平和垂直居中,子元素设置为行内块(低版本IE没有问题)

css元素水平垂直居中的十种方法

8、父元素 display:flex; 子元素 margin:auto;

最简单的方式,子元素宽高已知未知的情况都适用。 

css元素水平垂直居中的十种方法 

9、父元素设置 display:flex; 以及内容的水平和垂直居中(有兼容问题)

css元素水平垂直居中的十种方法

10、子元素相对父元素决定定位,并使用 transform 属性

这种方式和第三、四种方法类似,只不过是用了 translate 偏移量实现了负值 margin 的效果。

不过不同的地方在于,使用 translate 对子元素的宽高没有要求,在未知宽高的情况下依然适用。

这种方式在子元素是单行或多行文本的时候要求垂直居中的情况下十分适用。

 css元素水平垂直居中的十种方法

本文转自帅气的头头博客51CTO博客,原文链接http://blog.51cto.com/12902932/1924586如需转载请自行联系原作者

sshpp

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107963.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月11日 下午9:00
下一篇 2022年3月11日 下午9:00


相关推荐

  • Cocos2d-x 游戏存档[通俗易懂]

    Cocos2d-x 游戏存档

    2022年1月22日
    56
  • R-CNN算法_贝叶斯R语言

    R-CNN算法_贝叶斯R语言**R-CNN算法优化策略**1,两阶段检测的进阶模型首先进行数据处理,然后输入backbone得到特征图,然后进入RPN中提取候选区域roi,然后再ROIAlign提取特争,然后送入BBoxHead进行进一步的回归和分类。主要介绍方面第一步主要解决多尺度问题,预测物体大小第二部算是fastRNN的局部表示图主要用最后一层对下一步进行输入。第三步卷积神经网络存在下采样,在不同深度存在不同特征,第四步fpn将不同层的特征相互融合,将特征展现得更加全面。骨干网络和fpn相对独立,

    2025年10月1日
    4
  • 宝塔 多个版本PHP切换默认PHP版本

    宝塔 多个版本PHP切换默认PHP版本切换命令 ln sf www server php 72 bin php usr bin php 分析原因明明我的代码没问题为什么运行 PHPthink 报错了呢 看一下报错信息 是语法错误 看了看代码没问题啊 那么问题出在哪了 检查宝塔后发现原来我是安装了两个 php 这时候运行 php v 看到我的版本号是 root iZ2zeg9qhj8a php vPHP5 6 40 cli built May 2

    2026年3月17日
    2
  • 组装电脑购机指南和记录自己的装机过程[通俗易懂]

    组装电脑购机指南和记录自己的装机过程[通俗易懂]最近家里组装了一台电脑,从采购到组装,前前后后涉及的内容挺多的,我特地在此总结下,防止自己忘记心急的小白可以直接看配件每部分的总结,你可以略过枯燥的概念,直接比较配件参数数字大小1组装电脑需要哪些配件一般需要主板、CPU、内存条、显卡、硬盘、电源、CPU风扇、键鼠、显示器等2配件选购指南我这里主要介绍参数的比较,即“数字大小的比较”,不会有太多的新概念。有的参数越…

    2022年5月16日
    56
  • python八进制表示_八进制python

    python八进制表示_八进制python广告关闭腾讯云 11 11 云上盛惠 精选热门产品助力上云 云服务器首年 88 元起 买的越多返的越多 最高返 5000 元 答案 python2 5 及更早版本 可以使用 int 0 2 python2 5 及更早版本 用 noway 来表示二进制文本 python2 6 测试版 可以这样做 0b 或 0b python2 6 测试版 也允许 0o27 或

    2025年6月25日
    3
  • cmd命令大全

    cmd命令大全

    2021年8月19日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号