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中已经有了相关规范),所以大家才会对它进行专门的研究.这研究来研究去 ...
随机推荐
- WORD自定义宏
自定义快捷键 折叠所有标题 Word选项—自定义功能区—自定义键盘—不在功能区内的命令—ColllapseAllHeadings 展开所有标题 Word选项—自定义功能区—自定义键盘—不在功能区内的命 ...
- curl_init函数用法
使用PHP的cURL库可以简单和有效地去抓网页.你只需要运行一个脚本,然后分析一下你所抓取的网 页,然后就可以以程序的方式得到你想要的数据了.无论是你想从从一个链接上取部分数据,或是取一个XML文件并 ...
- PHP Socket 编程过程详解
使用代码 目的:开发一个客户端用于发送string消息到服务端,服务端将相同的信息反转后返回给客户端. PHP服务器 第1步:设置变量,如“主机”和“端口” $host = "127.0.0 ...
- linux查看修改线程默认栈空间大小(ulimit -s)
linux查看修改线程默认栈空间大小 ulimit -s 1.通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M 2.通过命令 ulimit -s 设置大 ...
- Volley获取网络图片使用总结
参考资料 http://www.3fwork.com/b600/001956MYM002697/ //缓存 int cacheSize= 10 * 1024 * 1024; //声明一个新的Reque ...
- 【转】 Tomcat v7.0 Server at localhost was unable to start within 45
转载地址:http://www.jsjtt.com/java/JavaWebkaifa/58.html Starting Tomcat v7.0 Server at localhost' has en ...
- sql注入过滤的公共方法
/// <summary> ///SQL注入过滤 /// </summary> /// <param name="InText">要过滤的字符串 ...
- ajax (返回类型:text)
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- RCP: P2 Update两个烦人bug和解决办法
问题 Eclipse新的P2 Update机制,使用起来很方便,如果使用P2 plugin自带的UI,开发者完全不用写任何代码 即可实现application的在线更新. 但是P2 Update至少有 ...
- CRM系统简析
寄语: 简单阐述一下对CRM系统应用的理解,此内容参考网上资料所整理. CRM是Customer Relationship Management的缩写,简称客户关系管理. CRM系统可以从三个方面来分 ...