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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • tcp rst报文_TCP报文格式

    tcp rst报文_TCP报文格式RESET报文的接收和检查处理。客户端握手阶段对于TCP客户端,在发送完SYN报文之后,如果接收到的回复报文同时设置了ACK和RST标志,在检查完ACK的合法性之后,处理RST标志,关闭套接口。对于ACK确认序号,其应当大于第一个未确认序号(snd_una),并且,确认序号不应大于未发送数据的序号(snd_nxt)。通常情况下ACK确认序号应当等于snd_una加一(SYN占用一个序号),但是,如果SYN报文中带有数据(例如:TFO),ACK确认序号会更大。以上情况向对端发送reset报文,但是,如果

  • 免费的抢小米软件_小米手机自动抢红包软件

    免费的抢小米软件_小米手机自动抢红包软件发现一个免费抢小米的工具。http://liulanqi.baidu.com/

    2022年10月28日
  • mac goland激活码[最新免费获取]

    (mac goland激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • 迭代与递归的区别「建议收藏」

    迭代与递归的区别「建议收藏」迭代和递归的区别:从“编程之美”的角度看,可以借用一句非常经典的话:“迭代是人,递归是神!”来从宏观上对二者进行把握。递归:重复调用函数自身实现循环称为递归;    递归实际上不断地深层调用函数,直到函数有返回才会逐层的返回,递归是用栈机制实现的,每深入一层,都要占去一块栈数据区域,因此,递归涉及到运行时的堆栈开销(参数必须压入堆栈保存,直到该层函数调用返回为止),所以有可能导致堆…

  • kong网关教程_网关怎么登陆

    kong网关教程_网关怎么登陆网关是微服务中不可或缺的一部分,它承载了所有请求流量入口,参数验证拦截,用户权限验证,但是除了JAVA的springcloud之外,公共网关屈指可数,其中最受关注的就是KONG了,笔者半年前就已经在使用kong的那时候使用的是0.11.2-bate版本(之前还被官方坑了一次),前不久终于等到了1.X的正式版发布了,笔者就在这里给大家分享一下kong网关的基本情况以及使用安装的方式。附上:喵…

  • JAVA贪吃蛇代码(带注释)

    JAVA贪吃蛇代码(带注释)贪吃蛇图片是代码里面的素材游戏数据类packagecom.tang.retor_snaker;importjavax.swing.*;importjava.net.URL;publicclassData{privatestaticURLbodyURL=Data.class.getResource(“/com/tang/retor_snaker/statics/body.png”);privatestaticImageIconbo

发表回复

您的电子邮箱地址不会被公开。

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