css:元素水平垂直居中的多种方式
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:元素水平垂直居中的多种方式的更多相关文章
- CSS制作水平垂直居中对齐 多种方式各有千秋
作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收 集了几种不同的方式制作垂直居中方法,但每种方法各有千秋 ...
- html中div使用CSS实现水平/垂直居中的多种方式
CSS中的居中,在工作中,会经常遇到.它可以分为水平居中和垂直居中,以下是几种实现居中的方式. git 查看源码 配合在线预览,效果更佳 以下例子中,涉及到的CSS属性值. .parent-frame ...
- CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳)
本文主要是对主流居中方法进行了归纳,有些地方甚至就是把别人的代码直接复制过来的,没有什么自己的东西,除了大漠以及张鑫旭的方法外,还有来自司徒正美.怿飞博客的几个方法 以下方法,由于测试环境的原因,IE ...
- css元素水平垂直居中
温习一下元素水平垂直居中的几种方法 元素有具体宽度 1.absolute+负边距 .LV_center{ border: 1px solid red; position: absolute; widt ...
- CSS元素水平垂直居中的方法
1. 元素水平居中 1.1 设置父元素的属性 text-align: center; 说明:此属性只针对父元素的子元素为内联元素时有效,比如:img,input,select,button等(行内 ...
- css元素水平垂直居中的十种方法
四月底在杭州金诚的前端面试过程中,问到了父元素中子元素水平和垂直居中的方式,因为平时疏于整理,只说上来两种.后来面试过了,所以现在回想到这个问题,所以针对各种情况集中整理一下. 首先看页面结构和元素的 ...
- CSS实现水平垂直居中的数种方法整合
CSS实现水平垂直居中可以说是前端老生常谈的问题了,一般面试官问的时候面试者都会回答出来,但是继续追问还有没有其他方法的时候有可能就说不出来了. 本着学习知识的目的,特在此纪录CSS实现水平垂直居中的 ...
- CSS布局:元素水平垂直居中
CSS布局:元素水平垂直居中 本文将依次介绍在不同条件下实现水平垂直居中的多种方法 水平垂直居中是在写网页时经常会用到的需求,在上两篇博客中,分别介绍了水平居中和垂直居中的方法.本文的水平垂直居中就是 ...
- CSS实现水平垂直居中的1010种方式
转载自:CSS实现水平垂直居中的1010种方式 划重点,这是一道面试必考题,很多面试官都喜欢问这个问题,我就被问过好几次了 要实现上图的效果看似很简单,实则暗藏玄机,本文总结了一下CSS实现水平垂直居 ...
随机推荐
- JAVA学习笔记系列3-JVM、JRE和JDK的区别
JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的“虚拟计算机”.它和os打交道 JRE(Java Runtime Environment)包含:Java ...
- Python实现基于DES加密源码的文本加密器
这是自行制作的一个DES文本加密工具 最终效果图: 本加密器支持UTF-8字符的加解密(包含中文),由于其中的编码方式与常用编码方式不同,加密结果与网上工具不同,但是能实现正常加解密. 最终目标: 目 ...
- OperateResult 基础类及派生类介绍
前言 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装: Install-Package HslCommunication NuGet安 ...
- 深入理解使用synchronized同步方法和同步代码块的区别
一.代码块和方法之间的区别 首先需要知道代码块和方法有什么区别: 构造器和方法块,构造器可以重载也就是说明在创建对象时可以按照不同的构造器来创建,那么构造器是属于对象,而代码块呢他是给所有的对象初始化 ...
- Floodlight1.2+Mininet的安装及使用
直接转载的大神的,亲测Ubuntu16.04版本没问题 https://www.sdnlab.com/19189.html
- for break
public static void main(String[] args) { aaa: for (int j = 0; j < 2; j++) { System.out.println(&q ...
- best practices for designing web api
restful why: meaningful This will be improve efficiency , less documents , just read the code auto g ...
- How to Create an PostgreSQL Extension
转自:https://severalnines.com/blog/creating-new-modules-using-postgresql-create-extension Extensibilit ...
- memcached-redis
http://www.runoob.com/memcached/memcached-cas.html https://github.com/memcached/memcached/blob/maste ...
- svn安装和使用
https://www.cnblogs.com/webStyle/p/3696003.html