CSS元素(文本、图片)水平垂直居中方法

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="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>

原文地址:https://www.cnblogs.com/lizwsky/p/10026074.html

时间: 2024-09-29 04:40:21

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

转 Div+Css控制背景图片水平垂直居中显示 背景铺满全屏

在Web开发中我们经常要碰到这样的问题:在为一个页面设置背景图片之后往往希望图片能够在分辨率比较大的情况下水平垂直都居中显示.通常水平居中显示在Css中是很容易做到的,而垂直居中就需要使用一些Css的技巧: 1. 首先为了能使得网站能够根据浏览器大小自适应,我们需要将页面的body元素height值设为100%,而在这之前,我们需要将xhtml验证从网站头删除.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo

《转》CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳)

转自大地Dudy的CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳) 本文主要是对主流居中方法进行了归纳,有些地方甚至就是把别人的代码直接复制过来的,没有什么自己的东西,除了大漠以及张鑫旭的方法外,还有来自司徒正美.怿飞博客的几个方法 以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说的IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法: <!doctype html> <html lang="en&

高宽不定图片水平垂直居中

图片水平垂直居中的两个常用方法: 1.Table-cell. IE8+及标准浏览器利用display:table-cell让容器以表格元素的方式呈现,配合vertical-align和text-align实现内部图片水平垂直居中. IE67不支持display:table-cell,可用font-size,值为容器的0.875倍做hack. html,body,p, div { margin: 0; padding: 0; } .wrap { height: 300px; width: 300p

图片水平垂直居中

效果仅见:http://runjs.cn/detail/tkid13aj <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style type="text/css"> body{ margin:0; padding:0;} dl,dt,dd,img{ margin:0; paddin

公司的一个面试题:如何用css让一个容器水平垂直居中?

原文:公司的一个面试题:如何用css让一个容器水平垂直居中? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>demo</title> </head> <body> <style type="text/css"> .div1{ width: 100px; height: 100px; bo

不定宽的图片水平垂直居中

如何让不定高和不定宽的图片水平垂直居中在某一个定高定宽的容器中呢,请听我细细到来. 现在有很多浏览器(如chrome,部分ie,firefox,opera等)都支持display:table,display:table-cell,让图片水平垂直居中就很简单了,给外部容器加一个display:table和vertical-align:middle,text-align:center属性,图片给display:table-cell属性,就可以实现水平垂直居中. 当然,并不是所有的浏览器(如ie6,等

CSS:div/img水平垂直居中

div水平垂直居中方法一: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #test{ position: absolute; width: 100px; height: 100px; background: pink; left: 0; rig

HTML-img图片水平垂直居中。

<style> .box{ width:800px;height:800px;border:1px solid #000; text-align:center;}//水平居中 span{ display:inline-block; height:100%; vertical-align:middle;}//垂直居中 img{ vertical-align:middle;}//垂直居中 </style> </head> <body> <div class

CSS元素水平垂直居中方法总结(方法主要来自大漠以及张鑫旭博客)

以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法:<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"&g