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


相关推荐

  • mavlink协议原理_mavlink协议长度

    mavlink协议原理_mavlink协议长度参考https://cloud.tencent.com/developer/news/48344https://www.cnblogs.com/lovechen/p/5801679.htmlhtt

    2022年8月5日
    6
  • java中接口(interface)详解

    java中接口(interface)详解接口(interface)有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。接口(interface)是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。接口定义举例publicinterfaceRunnerintid=…

    2022年7月13日
    25
  • 用git将项目文件上传至github

    用git将项目文件上传至github1,新建文件夹,在文件夹中新增txt文件2,下载githttps://git-scm.com/download/win3,点击文件右键(gitbasehere)打开git客户端4,根据https://jingyan.baidu.com/article/295430f18d33490c7e0050e4.html步骤安装直到出现登录github账号5,将需要上传的项目文件拖至新建的文件…

    2022年7月16日
    17
  • StretchDIBits 的使用

    StretchDIBits 的使用StretchDIBits 该函数将DIB中矩形区域内像素使用的颜色数据拷贝到指定的目标矩形中。如果目标矩形比源矩形大小要大,那么函数对颜色数据的行和列进行拉伸,以与目标矩形匹配。如果目标矩形大小要比源矩形小,那么该函数通过使用指定的光栅操作对行列进行压缩。参数:hdc:指向目标设备环境的句柄。XDest:指定目标矩形左上角位置的X轴坐标,按

    2022年6月23日
    30
  • SQL Server 2008备份数据库失败,拒绝访问的原因

    SQL Server 2008备份数据库失败,拒绝访问的原因

    2021年8月28日
    142
  • PHP函数高级(二)

    PHP函数高级(二)

    2021年10月31日
    50

发表回复

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

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