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实现水平垂直居 ...
随机推荐
- query
- aps.net国际化本地资源 .resources”正确嵌入或链接到程序集
asp.net国际化提供了资源文件的解决的方式, asp.net自带的两个项目文件夹 分别是:App_GlobalResources和App_LocalResources, App_GlobalRes ...
- 用vs2008打开vs2005项目
1 使用记事本打开*.sln解决方案文件,将Visual Studio 2005改为Visual Studio 2008 将版本号改为9.00 2 打开扩展名为*.csproj的项目文件,在Defau ...
- 基于SPA的网页授权流程(微信OAuth2)
先说传统MVC网站的网页授权流程. 1.用户发起了某个需要登录执行的操作 2.收集AppId等信息重定向到微信服务器 3.微信服务器回调到网站某个Controller的Action 4.在此Actio ...
- Linux下安装oracle的步骤和一些问题
今天在Linux64位系统安装oracle数据库,折腾了一天,终于搞定了,现在把安装步骤梳理下,防止以后忘记: (以下内容来自http://blog.163.com/junwu_lb/blog/ ...
- Selenium 基础知识
被测产品是B/S 结构,那么推荐selenium selenium 并不是单纯的一个工具,他是一组工具的集合 1. selenium IDE 是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器 ...
- SQL 优化经历
一次非常有趣的 SQL 优化经历 阅读本文大概需要 6 分钟. 前言 在网上刷到一篇数据库优化的文章,自己也来研究一波. 场景 数据库版本:5.7.25 ,运行在虚拟机中. 课程表 #课程表 cr ...
- Python开发 基礎知識 3.類別&方法 (bool & str) (未完待續)
類別 可使用type()查看 內建 [ 布爾:bool (Boolen) 字串:str (String) 數字:int (Integer) 小數:float 列表:list 元祖:tuple 字典:d ...
- css 易错点总结
心得:思路清晰,细致,耐心. 慢慢来,先规划,再动手,先整体后局部,规划好整个页面先. 命名合理,且小心重复 防止标签嵌套错误,以及忘记闭合 行高要在字体后面,如下: 正确:font:400 15px ...
- oracle命令2
使用DDL创建和管理表 DBA角色:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构,并且系统权限也需要DBA授出,且DBA用户可以操作全体用户的任意基表,包括删除 grant dba t ...