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


相关推荐

  • Eurake配置心得

    Eurake配置心得server:port:10086spring:application:name:ly-registryeureka:client:fetch-registry:falseregister-with-eureka:falseservice-url:defaultZone:http://127.0.0.1:${se…

    2022年4月30日
    45
  • mysql去重查询groupby「建议收藏」

    mysql去重查询groupby「建议收藏」一、Dubbo是什么?Dubbo是阿里巴巴开源的基于Java的高性能RPC(一种远程调用)分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。二、为什么要用Dubbo?因为是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考验。内部使用了Netty、Zookeeper,保证了高性能高可用性。1、使用Dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的市场

    2025年6月21日
    4
  • 三分钟彻底理解冒泡排序

    三分钟彻底理解冒泡排序0.如果遇到相等的值不进行交换,那这种排序方式是稳定的排序方式。1.原理:比较两个相邻的元素,将值大的元素交换到右边2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。(1

    2022年7月2日
    29
  • web安全测试_web测试的主要测试内容

    web安全测试_web测试的主要测试内容1.1什么是web安全测试?Web安全测试就是要提供证据表明,在面对敌意和恶意输入的时候,web系统应用仍然能够充分地满足它的需求1.2为什么进行Web安全测试2005年06月,CardSystems,黑客恶意侵入了它的电脑系统,窃取了4000万张信用卡的资料。2011年12月,国内最大的开发者社区CSDN被黑客在互联网上公布了600万注册用户的数据;黑客随后陆续公布了网易、人人、天涯、猫扑等多家大型网站的数据信息。2014年12月,大量12306用户数据被泄露,被泄露的数据达131653条,包括

    2022年9月16日
    2
  • 知识点总结:Java核心技术(卷1)

    知识点总结:Java核心技术(卷1)Java核心技术(卷1)一、基础概念1.1基本程序设计结构1.1数据类型1.1.1数值类型1️⃣从java7开始,加上前缀0b或0B就可以写二进制;2️⃣指数的表示十进制中以10为底指数的表示:doubled=1.0e+4;//10000.0doubled2=100000.0e-4;//10.0十六进制中以2位底指数的表示:…

    2022年7月8日
    31
  • STM32F103芯片手册带寄存器定义链接[通俗易懂]

    STM32F103芯片手册带寄存器定义链接[通俗易懂]STM32F1中文参考手册_V10-豆丁网(docin.com)

    2022年10月15日
    2

发表回复

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

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