CSS垂直居中网页布局实现的5种方法

2016-02-19 23:43 7 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享CSS垂直居中网页布局实现的5种方法,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - Web开发 】

利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法。我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站。

使用 CSS 实现垂直居中并不容易。有些方法在一些浏览器中无效。下面我们看一下使对象垂直集中的5种不同方法,以及它们各自的优缺点。(可以看看 测试页面 ,有简短解释。)

方法一

这个方法把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align property 属性。

div id="wrapper"
div id="cell"
div class="content"
  Content goes here/div
/div
/div

#wrapper {display:table;}
#cell {display:table-cell; vertical-align:middle;}

优点

content 可以动态改变高度(不需在 CSS 中定义)。当 wrapper 里没有足够空间时, content 不会被截断

缺点

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

Internet Explorer(甚至 IE8 beta)中无效,许多嵌套标签(其实没那么糟糕,另一个专题)

方法二

这个方法使用绝对定位的 div,把它的 top 设置为 50%,top margin 设置为负的 content 高度。这意味着对象必须在 CSS 中指定固定的高度。

因为有固定高度,或许你想给 content 指定 overflow:auto,这样如果 content 太多的话,就会出现滚动条,以免content 溢出。

div class="content"
 Content goes here/div

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

#content {
 position:absolute;
 top:50%;
 height:240px;
 margin-top:-120px; /* negative half of the height */
}

优点

适用于所有浏览器
不需要嵌套标签

缺点

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

没有足够空间时,content 会消失(类似div 在 body 内,当用户缩小浏览器窗口,滚动条不出现的情况) 

来源:http://www.tulaoshi.com/n/20160219/1630467.html

延伸阅读
标签: Web开发
在曾经的 淘宝UED 招聘 中有这样一道题目: 使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中。 当然出题并不是随意,而是有其现实的原因,垂直居中是 淘宝 工作中最常遇到的一个问题,很有代表性。 题目的难点在于两点 :垂直居中; 图片是个置换元素,有些特殊的特性。 至于如何解决,下面是一个权衡...
标签: Web开发
尽管有CSS的vertical-align特性,但是并不能有效解决未知高度的垂直居中问题(在一个DIV标签里有未知高度的文本或图片的情况下)。标准浏览器如Mozilla, Opera, Safari等.,可将父级元素显示方式设定为TABLE(display: table;) ,内部子元素定为table-cell (display: table-cell),通过vertical-align特性使其垂直居中,但非标准浏览器是不支持...
标签: Web开发
因为垂直居中的主要问题出在IE系列上,因此用到了IE的条件注释、IE8的兼容视图,还算完美解决了目前所有的主流浏览器的CSS实现DIV内容垂直及水平居中问题,IE5.5,IE6,IE7,IE8,Firefox,Chrome,Safari,Opera 测试通过,逸品天空Web开发代码站 http://code.dlstu.cn/。 核心代码:  程序代码 meta http-equiv="X-UA-Compatible" co...
标签: Web开发
CSS* { margin:0; padding:0; list-style:none;  }  #vertical_box { width:100%; display:table; border:1px red solid; height:400px; /*针对IE的hack*/ *position:relative; } #vertical_box_sub { display: table-cell; vertical-align: middle; /*针对IE的hack*/ *position:absolute; *top:50%; } #vertical_box_container { fo...
标签: Web开发
在CSS网页布局中,不可避免的会涉及到CSS伪类的问题。到底该如何正确的定义CSS伪类呢?虽然webjx中有很多相关的介绍,但复习一下也无妨。大家看下面的代码就能明白。 a.webjxcom{text-decoration:none;} a.webjxcom:link{color:#f90;} a.webjxcom:hover{color:#fff;background-color:#FF5900;} a.webjxcom:active{color:#FF5900;} a href=&...

经验教程

477

收藏

30
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部