元素垂直居中

下面介绍的方法主要是利用display:inline-block;让元素变为行内块元素,利用vertical-align:middle来实现垂直居中,利用父元素的text-align:center;实现水平居中。

一、表格方法
表格本来对立面的内容是垂直居中的,所以用表格来做很适合。但是它里面的内容是行内元素才行,所以下面的代码就可以实现。

*{margin:0px; padding:0px;}
table {position:absolute; width:100%; height:100%; text-align:center; background:rgba(0,0,0,0.5);}
.test {background:red; display:inline-block;}
在css里面有个display:table-cell;属性值可以让元素渲染为表格单元格,就可以轻松实行让子元素水平垂直居中了,自己试下

.wrap {display:table-cell; width:300px; height:300px; text-align:center; vertical-align:middle; background:rgba(0,0,0,0.5);}
.test {background:red; display:inline-block;}

二、利用vertical-align:middle
这个方法目前是我的最爱,因为下面介绍的兼容性不是很好
这个是利用一个没有宽度b标签来实现水平垂直居中

.wrap {width:300px; height:300px; text-align:center; background:rgba(0,0,0,0.5);}
.vamb {display:inline-block; width:0px; height:100%; vertical-align:middle;}
.test {background:red; display:inline-block;}
三、使用transform实现
一般使用百分比单位的时候都是相对父元素来计算的,但是在css里面有个比较特殊的属性是相对自身宽高来计算的。那就是transform:translate();
这样就简单了,只是这个低版本IE不兼容,而且很遗憾 安卓2.3使用这个有bug,暂时不能在移动端使用

*{margin:0px; padding:0px;}
.test {position: absolute; left:50%; top:50%; -webkit-transform:translate(-50%,-50%); transform:translate(-50%,-50%);}

四、弹性盒模型
弹性盒模型就是flex,css3新增布局方式,超级好用,谁用谁知道,推荐大家都学习一番。
这个方法我在手机端都很喜欢用,相对爽啊 呵呵。同样比较遗憾的是低版本IE不支持,不过手机端是没有问题的,使用旧版方法display:box;

*{margin:0px; padding:0px;}
.flex {display:-webkit-box; display:-ms-flex; display:-webkit-flex; display:flex;}
.flex-hc {-webkit-box-pack:center; -ms-justify-content:center; -webkit-justify-content:center; justify-content:center;}
.flex-vc {-webkit-box-align:center; -ms-align-items:center; -webkit-align-items:center; align-items:center;}
.wrap {position:fixed; width:100%; height:100%; background:rgba(0,0,0,0.5); left:0px; top:0px;}


 
时间: 2024-10-11 23:27:51

元素垂直居中的相关文章

实现元素垂直居中的方法(补充)

之前发过一次<实现元素垂直居中的方法>的文章,今天又碰到了更简便的方法,就是利用transform属性,特别是当要居中的元素宽度,高度未知时非常好使,废话不多说,直接上demo: <!DOCTYPE html><html><head lang="zh-cn">    <meta charset="UTF-8">    <title>居中的方法</title>    <style

让浮动元素垂直居中

让容器中设置为浮动的元素垂直居中: 在父元素上进行设置: <style type="text/css"> #demo { width: 300px; height: 200px; background-color: grey; display: table-cell; vertical-align: middle; } .fl { float: left; width: 50px; height: 50px; background-color: black; } </

css-实现元素垂直居中对齐

原文:css-实现元素垂直居中对齐 css-实现元素/元素内容,垂直居中对齐 一.单行内容的垂直居中(line-height:行高方法) 只考虑单行是最简单的,无论是否给容器固定高度,只要给容器设置 line-height 和 height,并使两值相等,就可以了. 缺点:1:这种方法局限性太大,只有单行文本的元素才适用,所以在多行元素中是不能使用这种方法的了.         2 :IE中不支持<img>等的居中. 优点:适合在所有浏览器,没有足够空间时,内容不会被切掉,同时支持块级和内联元

关于浮动元素垂直居中的问题

两种浮动元素垂直居中的情况: 父盒子有宽高; 父盒子没有宽高下面时 HTML 中的代码: 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title>浮动元素垂直居中</title> 6 </head> 7 <body> 8 <div class="pare

CSS 使元素垂直居中

重点内容:负外边距,绝对垂直居中,box 拓展点:设置inline-block,使元素居中 1.实现文字居中对齐 水平居中:text-align:center 垂直居中:设置line-height和height一样 2.实现元素居中对齐 使用元素定位,并移动元素  方法1:负外边距法(兼容IE) 原理:使用绝对定位,定位元素left和top值都为50%:然后使用margin移动负的元素半宽高 条件:需要知道当前元素的宽高. 代码: #content1{ position: relative; w

关于使用绝对定位使元素垂直居中的问题

今天学习中遇到了使元素垂直居中的问题,网上一搜至少有8种不同的方法,我只试了使用绝对定位的方法.这一试不要紧,一试就懵逼了.下面我把我遇到的问题说一下. 我刚开始是这么试的: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title>one</title> </head> <style rel="stylesheet&qu

css元素垂直居中

一.css元素垂直居中初始状态 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>css元素垂直居中</title> <style type="text/css"> .wrapper{ background-color: #f24444; width:200px; height:

元素垂直居中方法总结

以下总结了一些常见的元素垂直居中方法: 首先,基本的html和CSS为 #wrap{ width: 320px; height: 160px; background: red; } #wrap>div{ width: 50px; height: 50px; background: black; color: #fff; } <div id="wrap"> <div class="v-center">我是前端狗</div> &

网页元素居中攻略记_(2)元素垂直居中

单行内元素垂直居中 方案 设置行内元素的行高等于父元素的高度或者包裹块的高度即可实现垂直居中,具体看代码效果 代码实现 index.html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>单行内元素垂直居中</title> <style> div { width: 200px; height

inline-block 实现元素垂直居中

---恢复内容开始--- 1.元素的显示方式: 1 display:inline; 3 display:linline-block; 5 display:block display:inline 表示,元素做为内联元素显示,两个或者多个内联元素可以并列成一行显示:常见的内联元素如:span strong 标签:内联元素的特点是:不能给元素设置宽和高: display:block 表示,元素作为块级元素显示,两个或者多个块级元素分成多行显示:常见的块级元素如:div, h1~h5 标签:块级元素的