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="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制作水平垂直居中对齐 多种方式各有千秋

    作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收 集了几种不同的方式制作垂直居中方法,但每种方法各有千秋 ...

  2. html中div使用CSS实现水平/垂直居中的多种方式

    CSS中的居中,在工作中,会经常遇到.它可以分为水平居中和垂直居中,以下是几种实现居中的方式. git 查看源码 配合在线预览,效果更佳 以下例子中,涉及到的CSS属性值. .parent-frame ...

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

    本文主要是对主流居中方法进行了归纳,有些地方甚至就是把别人的代码直接复制过来的,没有什么自己的东西,除了大漠以及张鑫旭的方法外,还有来自司徒正美.怿飞博客的几个方法 以下方法,由于测试环境的原因,IE ...

  4. css元素水平垂直居中

    温习一下元素水平垂直居中的几种方法 元素有具体宽度 1.absolute+负边距 .LV_center{ border: 1px solid red; position: absolute; widt ...

  5. CSS元素水平垂直居中的方法

    1.  元素水平居中 1.1  设置父元素的属性 text-align: center; 说明:此属性只针对父元素的子元素为内联元素时有效,比如:img,input,select,button等(行内 ...

  6. css元素水平垂直居中的十种方法

    四月底在杭州金诚的前端面试过程中,问到了父元素中子元素水平和垂直居中的方式,因为平时疏于整理,只说上来两种.后来面试过了,所以现在回想到这个问题,所以针对各种情况集中整理一下. 首先看页面结构和元素的 ...

  7. CSS实现水平垂直居中的数种方法整合

    CSS实现水平垂直居中可以说是前端老生常谈的问题了,一般面试官问的时候面试者都会回答出来,但是继续追问还有没有其他方法的时候有可能就说不出来了. 本着学习知识的目的,特在此纪录CSS实现水平垂直居中的 ...

  8. CSS布局:元素水平垂直居中

    CSS布局:元素水平垂直居中 本文将依次介绍在不同条件下实现水平垂直居中的多种方法 水平垂直居中是在写网页时经常会用到的需求,在上两篇博客中,分别介绍了水平居中和垂直居中的方法.本文的水平垂直居中就是 ...

  9. CSS实现水平垂直居中的1010种方式

    转载自:CSS实现水平垂直居中的1010种方式 划重点,这是一道面试必考题,很多面试官都喜欢问这个问题,我就被问过好几次了 要实现上图的效果看似很简单,实则暗藏玄机,本文总结了一下CSS实现水平垂直居 ...

随机推荐

  1. Fescar Example-Spring Cloud

    项目说明 本项目演示如何使用 Fescar Starter 完成 Spring Cloud 应用的分布式事务接入. 准备工作 在运行此示例之前,你需要先完成如下几步准备工作: 配置数据库 创建 UND ...

  2. L2-016. 愿天下有情人都是失散多年的兄妹(深搜)*

    L2-016. 愿天下有情人都是失散多年的兄妹 参考博客 #include<iostream> #include<cstdio> #include<cstring> ...

  3. Linux下截屏方法

    参考百度经验 https://jingyan.baidu.com/article/48a42057c8e8dfa92525047c.html 第一种: 截屏部分画面并保存 快捷键Shift+PrtSc

  4. 让MySQL数据库跑的更快的7个优化建议!

    随着容量和负载的增加,MySQL 的性能会日趋缓慢.这里有七点建议能够保证 MySQL 的平稳运行. 性能是我们衡量应用的一种方式,而应用性能的一项指标就是用户体验,也就是平时我们常说的:“用户需要等 ...

  5. 链接属性external的使用

    //demo1.c #include<stdio.h> ; //static int x = 10; void print(void) //static void print(void) ...

  6. libnids-1.24 使用源码问题

    从网上下载libnids-1.24源码包,解压后./configure安装. 会出现提示 checking for GLIB... configure: error: Package requirem ...

  7. 单例模式demo

    package com.test; /** * * @author Administrator *我的发现:调用这个的时候,不能直接实例化了;需要=null;然后get; 这样安全些; *然后仔细找了 ...

  8. 13.python错误和异常

    一.错误和异常1.程序中的错误分为俩种:(1)语法错误:不按照语言的规则,必须在程序执行前就改正(2)逻辑错误2.异常就是程序运行时发生错误的信号,分为三部分(1)Traceback:异常追踪的信息( ...

  9. 如何在Python中使用ZeroMQ和Docker构建微服务架构

    @Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自携程.PPTV.蚂蚁金服.京东.浙江移动.海尔电器.唯品会.eBay.道富银行.麻袋理财等公司的技术负责人将带来实践经 ...

  10. 搭建自己的Docker registry(五)

    弄了一天,在网上查了很多资料,感觉都好复杂好复杂,一步一步踩坑踩出来就好了. 服务器:阿里云(香港) 环境:CentOS Linux release 7.4.1708 (Core) Docker:1. ...