CSS垂直居中指南
大概整理下css中的垂直居中问题
主要分两大类
1 知道块元素尺寸,一般就是指知道元素高度。
方法一:最简单的,类比水平居中。
思路:子元素设置为absolute; top bottom都设置为0 ; margin:auto;这样就行啦;
<div class="lev1">我是第一层
<div class="lev2">我是第二层
</div>
</div> /*CSS*/
.lev1{
width:200px;
height:200px;
background-color: #008BCD;
border: 1px solid #1874CD;
position: relative;
} .lev2{
background-color: #C078CD;
border: 1px solid #B800CD;
width:100px;
height:100px;
position: absolute;
top: 0;
bottom: 0;
margin:auto;
}
CSS垂直居中指南
大概整理下css中的垂直居中问题
主要分两大类
1 知道块元素尺寸,一般就是指知道元素高度。
方法一:最简单的,类比水平居中。
思路:子元素设置为absolute; top bottom都设置为0 ; margin:auto;这样就行啦;
方法二:同样设置子元素绝对定位,让其margin-top:-height/2; top:50%;
思路:同样是绝对定位,理解负margin是要点。多说两句负margin margin 设为负值会使该元素实际高度变矮,映射到HTML上一般表现为被向上拉(margin-top2为负)或者把其他元素拉到上面(margin-bottom为负)。具体的可以参考这篇博客 http://www.51xuediannao.com/html+css/htmlcssjq/css-margin.html
最后多说两句:如果并不知道子元素高度 可以transform: translateY(-50%); 是不是很机智!!!
<div class="lev3 lev">我是第一层
<div class="lev4">我是第(absolute margin:-height/2;top:50%)
</div>
</div> /css/
.lev3{
width:200px;
height:200px;
background-color: #008BCD;
border: 1px solid #1874CD;
position: relative;
}
.lev4{
background-color: #C078CD;
border: 1px solid #B800CD;
width:100px;
height:100px;
position: absolute;
top: 50%;
margin-top: -50px;
}
方法三:增加一个多余子div,让其高度等于50%;然后设置其margin-bottom:-height/2;相当于子div把content向上拉了这么多高度
思路:理解负margin是关键。要点 floater要设置的属性(float 为何要设置float 又要清除? 设置其高度为50%是相对于父元素;margin-top:-height/2 相当于把子元素向上拉这么多距离)
<div id="parent">
<div id="floater"></div>
<div id="child">Content here</div>
</div> /*CSS*/
#parent {height: 250px;}
#floater {
float: left;
height: 50%;
width: 100%;
margin-bottom: -50px;
}
#child {
clear: both;
height: 100px;
}
方法四:父元素设置为table,子元素设置为table-cell vertical-alight:middle;
思路:改变布局属性,优点是其可以布局未知高度元素。顺便复习下vertical-align属性,这个鬼呢,好像深究起来挺复杂,记住最简单的,只对inline 和 inline-block属性有效
传送门 vertical-align 具体理解 http://www.zhangxinxu.com/wordpress/2010/05/%E6%88%91%E5%AF%B9css-vertical-align%E7%9A%84%E4%B8%80%E4%BA%9B%E7%90%86%E8%A7%A3%E4%B8%8E%E8%AE%A4%E8%AF%86%EF%BC%88%E4%B8%80%EF%BC%89/
div id="parent">
<div id="child">Content here</div>
</div>
/*CSS/ #parent {display: table;}
#child {
display: table-cell;
vertical-align: middle;
}
方法五:也算黑科技了,用幽灵元素撑开
具体方法:
<div class="ghost-center">
<p>I'm vertically centered multiple lines of text in a container. Centered with a ghost pseudo element</p>
</div> /*CSS/ body {
background: #f06d06;
font-size: 80%;
} div {
background: white;
width: 240px;
height: 200px;
margin: 20px;
color: white;
resize: vertical;
overflow: auto;
padding: 20px;
} .ghost-center {
position: relative;
}
.ghost-center::before {
content: " ";
display: inline-block;
height: 100%;
width: 1%;
vertical-align: middle;
}
.ghost-center p {
display: inline-block;
vertical-align: middle;
width: 190px;
margin: 0;
padding: 20px;
background: black;
}
CSS垂直居中指南的更多相关文章
- 《CSS权威指南》基础复习+查漏补缺
前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...
- 《CSS 设计指南》学习笔记 一
本篇文章是对这几天看完 Charles Wyke-Smit 的 <CSS 设计指南> 后的一些学习笔记与心得,笔者好像是大一的时候开始接触网页设计,由于并不是计算机专业的,所以所有都是自己 ...
- CSS权威指南 - 层叠
CSS权威指南 第三章结构与层叠 - 层叠 按权重及来源排序 1. Reader important declarations 2. Author important declarations 3. ...
- CSS权威指南学习笔记系列(1)CSS和文档
题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对, ...
- [转载]CSS 创作指南(Beta)(css规范)
当年还在纠结各种规范的时候,不知道从哪里翻到这个,就让我脱离了css这个规范的苦海了... 反正就是团队和项目合作说的算,选择合适的进行使用就可以了,见到合适的文章,我也会转载过来的 来源 https ...
- CSS设计指南之理解盒子模型
原文:CSS设计指南之理解盒子模型 一.理解盒模型 每一个元素都会在页面上生成一个盒子.因此,HTML页面实际上是由一堆盒子组成的.默认情况下,每个盒子的边框不可见,背景也是透明的,所以我们不能直接看 ...
- CSS设计指南之浮动与清除
原文:CSS设计指南之浮动与清除 浮动意思就是把元素从常规文档流中拿出来,浮动元素脱离了常规文档流之后,原来紧跟在其后的元素就会在空间允许的情况下,向上提升到与浮动元素平起平坐. 一.浮动 CSS设计 ...
- CSS设计指南之定位
原文:CSS设计指南之定位 CSS布局的核心是position属性,对元素盒子应用这个属性,可以相对于它在常规文档流中的位置重新定位.position属性有4个值:static.relative.ab ...
- 最常用的css垂直居中方法
css垂直居中一直以来都是一个被大家说烂了的话题,翻来覆去的炒.不过说实话,正是因为css没有提供标准的垂直居中方法(不过在css3中已经有了相关规范),所以大家才会对它进行专门的研究.这研究来研究去 ...
随机推荐
- SQL中插入单引号,新增修改删除
1.插入单引号如果不转化的话,字符串插入到数据库中错误的,只要在字符串中有单引号的地方在加一个单引号即可. 例如:在数据库插入'井下设备' : insert into Static_Bel ...
- xib中的view对iPhone和iPad自适应
1 This worked for me: Make a copy of the .xib in the Finder. Open the copied file in a text edito ...
- VBA 操作 Excel 生成日期及星期
直接上代码~~ 1. 在一个 Excel 生成当月或当年指定月份的日期及星期 ' 获取星期的显示 Function disp(i As Integer) Select Case i disp = & ...
- 修改 MyEclipse 中的 jsp 和 servlet 模板
找到 MyEclipse/Common/plugins/com.genuitec.eclipse.wizards_9.0.0.me201211011550.jar 这个文件(wizards后面的数字 ...
- [转] C语言常见笔试题大全1
点击阅读原文 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365UL) [ ...
- VM arguments
VM arguments -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m
- Ubuntu16.04搭建LAMP架构服务器
安装Apache: weirubo@weirubo-VirtualBox:~$ sudo apt-get install apache2 查看Apache版本: weirubo@weirubo-Vi ...
- Date类型,Boolean类型,Number类型
1.Date类型: 1)创建Date对象: var date=new Date(); //Date对象会把当前日期和时间保存为其初始值 2)Date对象的方法: --这些得到的都是数字 ...
- UDP:用户数据报协议
UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报.这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数 ...
- iframe显示错误页面
当系统出现异常时,ifrme中显示的内容为错也页面,而不是罪顶层的框架显示错误内容,此时的解决办法是在错误页面或相关的登录页面中加入 错误页面加载的JS如下 <script type=" ...