1、text-align:center;

2、margin:0 auto;

3、display:inline-block; + text-align:center;

4、position:relative; + float:left;

5、line-height

6、上下左右padding

7、position:absolute; + margin:auto;

8、position:absolute; + 负margin

9、position:absolute; + calc()

10、table-cell + vertical-align + inline-block + text-align

11、伪元素 + vertical-align + inline-block + text-align

12、position:absolute; + transform:translate(-50%, -50%);

13、display:flex;

14、background-position:center;

15、writing-mode

1、text-align:center;

父容器上设置text-align:center; 用于设置为行内元素的水平居中

<style>
p{ background-color:#f00; text-align:center; }
</style> <p>居中</p>

2、margin:0 auto;

元素自身设置margin:0 auto; 用于设置为块级元素的水平居中(元素宽度固定,且不能浮动、绝对定位)

<style>
div{ background-color:#099; }
p{ width:100px; height:100px; margin:0 auto; background-color:#f00; }
</style> <div><p></p></div>

3、display:inline-block; + text-align:center;

用于设置为内联块元素的水平居中(元素不能浮动、绝对定位,注意清除inline-block引起的下边空白)

<style>
div{ background-color:#099; text-align:center; }
p{ display:inline-block; margin:0; background-color:#f00; }
</style> <div><p>居中</p></div>

4、position:relative; + float:left;

用于所有元素的水平居中(元素不能绝对定位,且内容若是过多,会出现横向滚动条,可以在父容器外套一层容器设置overflow:hidden;)

<style>
div{ position:relative; left:50%; float:left; background-color:#099; }
p{ position:relative; left:-50%; background-color:#f00; }
</style> <div><p>居中</p></div>

5、line-height

用于单行文本的垂直居中(父容器高度固定)

<style>
p{ height:100px; background-color:#f00; line-height:100px; }
</style> <p>居中</p>

6、上下左右padding

父容器上设置上下左右padding,用于设置为内联块、块级元素的水平垂直居中(常用于按钮中)

<style>
p{ display:inline-block; margin:0; padding:10px; background-color:#f00; }
</style> <p>居中</p>

7、position:absolute; + margin:auto;

用于设置为块级元素的水平垂直居中(元素宽高固定)

<style>
div{ position:relative; height:100px; background-color:#099; }
p{ position:absolute; top:0; right:0; bottom:0; left:0; width:50px; height:50px; margin:auto; background-color:#f00; }
</style> <div><p></p></div>

8、position:absolute; + 负margin

用于设置为块级元素的水平垂直居中(元素宽高固定)

<style>
div{ position:relative; height:100px; background-color:#099; }
p{ position:absolute; top:50%; left:50%; width:50px; height:50px; margin:-25px 0 0 -25px; background-color:#f00; }
</style> <div><p></p></div>

9、position:absolute; + calc()

用于设置为块级元素的水平垂直居中(元素宽高固定,IE8及以下不支持)

<style>
div{ position:relative; height:100px; background-color:#099; }
p{ position:absolute; top:calc(50% - 25px); left:calc(50% - 25px); width:50px; height:50px; margin:0; background-color:#f00; }
</style> <div><p></p></div>

10、table-cell + vertical-align + inline-block + text-align

用于设置为内联块元素的水平垂直居中(元素不能浮动、绝对定位,注意清除inline-block引起的下边空白)

<style>
div{ display:table-cell; width:100px; height:100px; background-color:#099; text-align:center; vertical-align:middle; }
p{ display:inline-block; margin:0; background-color:#f00; vertical-align:middle; }
</style> <div><p>居中</p></div>

11、伪元素 + vertical-align + inline-block + text-align

用于设置为内联块元素的水平垂直居中(元素不能浮动、绝对定位,注意清除inline-block引起的下边空白)

<style>
div{ height:100px; background-color:#099; text-align:center; }
div:after{ content:""; display:inline-block; width:0; height:100%; vertical-align:middle; }
p{ display:inline-block; margin:0; background-color:#f00; vertical-align:middle; }
</style> <div><p>居中</p></div>

12、position:absolute; + transform:translate(-50%, -50%);

用于设置为块级元素的水平垂直居中(IE8及以下不支持)

<style>
div{ position:relative; height:100px; background-color:#099; }
p{ position:absolute; top:50%; left:50%; margin:0; background-color:#f00; transform:translate(-50%, -50%); }
</style> <div><p>居中</p></div>

13、display:flex;

父容器上设置display:flex; 用于所有元素的水平垂直居中(IE10及以下不支持,本方法适用于所有元素)

<style>
div{ display:flex; height:100px; background-color:#099; justify-content:center; align-items:center; }
p{ margin:0; background-color:#f00; }
</style> <div><p>居中</p></div>

14、background-position:center;

用于图片居中,使用透明图片宽高100%,背景图片background-position居中,background-image需要动态加载最好内联,也可以用span代替img,会少加载一张透明图片

以上方法都可以用于图片居中

<style>
p{ height:100px; background-color:#f00; }
img{ display:block; width:100%; height:100%; background-repeat:no-repeat; background-position:center; }
</style> <p><img style="background-image:url(images/1.jpg);" src="data:images/1.png" alt="居中"></p>

15、writing-mode

用于垂直居中,根据方法1、2、3改

<style>
div{ width:100%; height:100px; background-color:#099; text-align:center; writing-mode:vertical-lr; }
p{ display:inline; margin:0; background-color:#f00; writing-mode:horizontal-tb; }
</style> <div><p>居中</p></div>
<style>
div{ width:100%; height:100px; background-color:#099; writing-mode:vertical-lr; }
p{ margin:auto 0; background-color:#f00; writing-mode:horizontal-tb; }
</style> <div><p>居中</p></div>
<style>
div{ width:100%; height:100px; background-color:#099; text-align:center; writing-mode:vertical-lr; }
p{ display:inline-block; margin:0; background-color:#f00; writing-mode:horizontal-tb; }
</style> <div><p>居中</p></div>

CSS元素(文本、图片)水平垂直居中方法的更多相关文章

  1. CSS中图片水平垂直居中方法小结

    写页面时难免会遇到水平垂直居中的问题,总结一下最近使用的方法. 一.使用垂直居中和水平居中 <div id="div1"> <img src="img/ ...

  2. CSS制作图片水平垂直居中

    所谓的图片水平垂直居中就是把图片放在一个容器元素中(容器大于图片尺寸或是指定了大小的容器),并且图片位居此容器正中间(中间是指元素容器的正中间),而图片不是以背景图片(background-image ...

  3. 图片水平垂直居中(兼容IE6,IE7,firefox,opera,safari,其中图片可以是任何块元素)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. css两种常用的不定宽高的水平垂直居中方法,记住它,不再为样式发愁

    css 几种常用的简单容易记住的水平垂直居中方法 前言 正文 第一种方法 第二种方法 结束语 前言 我们在设计网页时,会大量的运用到水平垂直居中,如果知道元素的宽高,那水平垂直居中是很简单的,无非是用 ...

  5. css实现图片水平垂直居中

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. CSS布局中的水平垂直居中

    CSS布局中的水平垂直居中 各位好,先说两句题外话.今天是我开通博客园的博客第一天,虽然我申请博客园的账号已经有一年半了,但是由于各种原因迟迟没有开通自己的博客.今天非常有幸开通博客,在此也写一篇关于 ...

  7. div水平垂直居中方法及优缺点

    代码: <div class="father"> <div class="son"> </div></div> ...

  8. CSS实现文本,DIV垂直居中

    https://blog.csdn.net/linayangoo/article/details/88528774 1.水平居中 1.行内元素水平居中 text-align:center; 利用tex ...

  9. CSS:div/img水平垂直居中

    div水平垂直居中方法一: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

随机推荐

  1. 另一个画风的GSS1 - Can you answer these queries I(猫树)

    前言 其实我觉得你看猫锟的解释也看不懂(主要是还有一些不良心的讲解者不讲清楚,当然这里不是针对了qwq) 猫锟链接 Solution 考虑我们的线段树是个啥玩意? 每一层都是一堆区间叠在一起. 我们在 ...

  2. Mac 视频录制然后转 gif

    https://gist.github.com/dergachev/4627207 用 ScreenShot 或 Quicktime Player 录制视频, 保存位 in.mov ffmpeg -i ...

  3. 第二十节:详细讲解String和StringBuffer和StringBuilder的使用

    前言 在 Java中的字符串属于对象,那么Java 中提供了 String 类来创建和操作字符串,即是使用对象:因为String类修饰的字符一旦被创建就不可改变,所以当对字符串进行修改的时候,需要使用 ...

  4. Java学习笔记44(多线程一:Thread类)

    多线程的概念:略 多线程的目的:提高效率 主线程: package demo; //主线程 public class Demo { public static void main(String[] a ...

  5. 分布式任务调度系统xxl-job源码探究(一、客户端)

    前面讲了xxl-job的搭建,现在来粗略的解析下该分布式调度系统的源码,先来客户点代码 客户端源码 客户端开启的时候会向服务中心进行注册,其实现用的是jetty连接,且每隔半分钟会发送一次心跳,来告诉 ...

  6. [转]SQL SERVER整理索引碎片测试

    SQL SERVER整理索引碎片测试 SQL SERVER整理索引的方法也就这么几种,而且老是自作聪明的加入智能判断很不爽,还是比DBMS_ADVISOR差远了: 1SQL SERVER 2000/2 ...

  7. RabbitMQ常见错误2

    java.io.IOException at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:105) at com.rabbitmq ...

  8. .NET Core 2.0 Preview 1发布下载和文档

    .NET Core 2.0.0 Preview 1 发布于 2017 5.10. 你可以通过 Visual Studio 2017 Preview 15.3, Visual Studio for Ma ...

  9. mysql 开发进阶篇系列 37 工具篇 perror (错误代码查看工具)与总结

    一.  perror 错误代码查看工具   在mysql 的使用过程中,可能会出现各种各样的error.这些error有些是由于操作系统引起的,比如文件或者目录不存在等等,使用perror的作用就是解 ...

  10. mysql 开发进阶篇系列 24 查询缓存下

    一. 查询缓存 1.开启缓存 [root@xuegod64 etc]# vim my.cnf 设置了缓存开启,缓存最大限制128M,重启服务后,再次查询 -- 开启查询缓存后 SHOW VARIABL ...