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. [算法专题] stack

    1. Convert Expression to Reverse Polish Notation http://www.lintcode.com/en/problem/convert-expressi ...

  2. 【手记】解决VS发布asp.net项目报错“该项目中不存在目标GatherAllFilesToPublish”及后续问题

    办法在最后. 用VS2017打开一个以前用VS2010写的asp.net项目后,设置好发布选项(发布到文件夹),发布的时候报错如图: 搜索一番,找到的办法是: 在项目文件(xxx.csproj)中,在 ...

  3. LINK1104:无法打开文件"\.obj"原因及解决办法

    那是由于具有空文件名的库导致的,只需要检查一下配置信息把出现空文件名的地方进行改正就可以了. 作者:耑新新,发布于  博客园 转载请注明出处,欢迎邮件交流:zhuanxinxin@foxmail.co ...

  4. gitlab 一键 merge request(III)

    已经有两位同学写过类似的 wiki 了,值得一看: gitlab一键提交request merge & assign 为啥我又来凑热闹呢?基于下面两个原由: 我的机子是 Win10,上面脚本的 ...

  5. jmeter获取cookies信息(配置)

    jmeter发送请求后,响应信息里获取不到cookies(实际上会返回一个cookies),解决方法: 在jmeter.properties里找到CookieManager.save.cookies, ...

  6. kafka之consumer参数auto.offset.reset 0.10+

    https://blog.csdn.net/dingding_ting/article/details/84862776 https://blog.csdn.net/xianpanjia4616/ar ...

  7. Http请求-get和post的区别

    GET和POST是HTTP请求的两种基本方法. 最直观的区别就是GET把参数包含在URL中,以?的方式来进行拼接,POST通过request body传递参数.并且GET请求在URL中传送的参数是有长 ...

  8. 基于httpclient的效率优化

    1.背景 我们有个业务,会调用其他部门提供的一个基于http的服务,日调用量在千万级别.使用了httpclient来完成业务.之前因为qps上不去,就看了一下业务代码,并做了一些优化,记录在这里. 先 ...

  9. Python获取网页指定内容(BeautifulSoup工具的使用方法)

    Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包. ...

  10. Windows抓屏技术

    Windows桌面共享中一些常见的抓屏技术 1. BitBlt   我想做Windows开发应该都知道这个API, 它能实现DC间的内容拷贝, 如果我们把源DC指定成Monitor DC或是桌面DC, ...