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实现水平垂直居 ...
随机推荐
- Fescar Example-Spring Cloud
项目说明 本项目演示如何使用 Fescar Starter 完成 Spring Cloud 应用的分布式事务接入. 准备工作 在运行此示例之前,你需要先完成如下几步准备工作: 配置数据库 创建 UND ...
- L2-016. 愿天下有情人都是失散多年的兄妹(深搜)*
L2-016. 愿天下有情人都是失散多年的兄妹 参考博客 #include<iostream> #include<cstdio> #include<cstring> ...
- Linux下截屏方法
参考百度经验 https://jingyan.baidu.com/article/48a42057c8e8dfa92525047c.html 第一种: 截屏部分画面并保存 快捷键Shift+PrtSc
- 让MySQL数据库跑的更快的7个优化建议!
随着容量和负载的增加,MySQL 的性能会日趋缓慢.这里有七点建议能够保证 MySQL 的平稳运行. 性能是我们衡量应用的一种方式,而应用性能的一项指标就是用户体验,也就是平时我们常说的:“用户需要等 ...
- 链接属性external的使用
//demo1.c #include<stdio.h> ; //static int x = 10; void print(void) //static void print(void) ...
- libnids-1.24 使用源码问题
从网上下载libnids-1.24源码包,解压后./configure安装. 会出现提示 checking for GLIB... configure: error: Package requirem ...
- 单例模式demo
package com.test; /** * * @author Administrator *我的发现:调用这个的时候,不能直接实例化了;需要=null;然后get; 这样安全些; *然后仔细找了 ...
- 13.python错误和异常
一.错误和异常1.程序中的错误分为俩种:(1)语法错误:不按照语言的规则,必须在程序执行前就改正(2)逻辑错误2.异常就是程序运行时发生错误的信号,分为三部分(1)Traceback:异常追踪的信息( ...
- 如何在Python中使用ZeroMQ和Docker构建微服务架构
@Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自携程.PPTV.蚂蚁金服.京东.浙江移动.海尔电器.唯品会.eBay.道富银行.麻袋理财等公司的技术负责人将带来实践经 ...
- 搭建自己的Docker registry(五)
弄了一天,在网上查了很多资料,感觉都好复杂好复杂,一步一步踩坑踩出来就好了. 服务器:阿里云(香港) 环境:CentOS Linux release 7.4.1708 (Core) Docker:1. ...