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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • poweroff 命令_powercfg -h off 函数出了问题

    poweroff 命令_powercfg -h off 函数出了问题2019-02-17基础命令学习目录首页原文链接:https://www.cnblogs.com/Baron-Lu/p/6951297.html基础命令学习目录首页原文链接:https://w

    2022年8月1日
    5
  • mysql中有execute_jdbc连接mysql数据库

    mysql中有execute_jdbc连接mysql数据库最近在补基础知识,刚好补到C#中对数据库操作的一些技术,今天学习了ExecuteNonQuery的东西,看自己项目维护项目的代码和网上资料查询,基本上搞懂了ExecuteNonQuery的用法,小小的做个总结,供以后查阅。ExecuteNonQuery方法主要用来更新数据,当然也可以用来执行目标操作(例如查询数据库的结构或者创建诸如表等的数据库对象)。通常用它来执行insert、update、de…

    2025年10月30日
    2
  • 服务器购买_服务器可以挂什么赚钱

    服务器购买_服务器可以挂什么赚钱原标题:解放双手,什么值得买自动签到京东自动签到给你更多时间享受生活日活作为考核运营狗的重要指标,为了日活,签到成了各大网站和app日活指标达成的重要举措。签到给红包、签到升等级、签到拿好礼,种种签到福利固然好,可苦了佛系玩家,不签到没奖励、不签到没等级没金币各种限制。那么今天就给大家搬运个小福利:自动签到!当然对于itg是不屑的,能分分钟写出代码然后放置服务器自动运行。小白,自然要依靠大佬的…

    2022年9月13日
    2
  • linux内核使用的编程语言_linux内核模块编程

    linux内核使用的编程语言_linux内核模块编程1、内核编程不能访问C库2、内核编程时必须使用GNUC3、内核编程时缺乏像用户空间那样的内存保护机制4、内核编程时浮点数很难使用5、内核只有一个很小的定长堆栈6、由于内核支持异步中断,抢占和SMP,因此必须时刻注意同步和并发7、要考虑可移植性的重要性

    2022年10月8日
    2
  • JavaScript实现页面前进后退「建议收藏」

    JavaScript实现页面前进后退「建议收藏」function pagebackward()   {     window.history.back();   }      function pageforward()   {     window.history.forward();   }      click=”pageforward()”>

    2022年7月25日
    34
  • 数据库期末考试复习题 第二�

    数据库期末考试复习题 第二�

    2021年11月14日
    39

发表回复

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

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