css 中 div垂直居中的方法

在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS

Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生

效,例如表格元素中的<td>、<th>、<caption>等,而像<div>、<span>这样的元素是没有valign特性的,因此使用vertical-align对它们不起

作用。

单行垂直居中 

如果一个容器只有一行文字,那比较简单,设置的方法就是 所在行的高度line-height和实际高度height的值相等即可

例如:

<div class="div1">单行文本的垂直居中,只需设定height和line-height的值一样即可</div>

对应设置的css为:

 .div1 {
            border: 1px red solid;
            height: 25px;
            line-height: 25px;
            overflow: hidden;
        }

多行未知高度文字的垂直居中

这种情况可以通过padding的值相同来实现文字垂直居中的效果

例如:

 <div class="div2">多行未知高度的文字垂直居中,只需要设定padding值相同即可</div>

对应的css:

.div2 {         padding: 25px;
         border: 1px blue solid;
         width: 300px;
        }

多行文本固定高度垂直居中

在本文的一开始,我们已经说过CSS中的vertical-align属性只会对拥有valign特性的(X)HTML标签起作用,但是在CSS中还有一个display

属性能够模拟<table>,所以我们可以使用这个属性来让<div>模拟<table>就可以使用vertical-align了。注意,display:table和

display:table-cell的使用方法,前者必须设置在父元素上,后者必须设置在子元素上,因此我们要为需要定位的文本再增加一个<div>元素:

例如:

<div class="div3">
     <div class="content">多行文字实现垂直居中,可以模拟table中的vertical-align属性,需要注意display:table和display:table-cell的使用方法
            ,display:table用于设置在父元素上,display:table-cell,必须设置在子元素上
     </div>
</div>

对应的css为:

      .div3 {
            display: table;
            height: 100px;
        }
        .content {
            display: table-cell;
            vertical-align: middle;
            border: 1px solid green;
            width: 400px;
        }

这种方式在IE6下不起作用,Internet Explorer 6 并不能正确地理解display:table和display:table-cell,所以在IE6下可以通过绝对定位来实现,但是IE6一般不再考虑的范围内。

时间: 2024-12-30 15:36:35

css 中 div垂直居中的方法的相关文章

css的div垂直居中的方法,百分比div垂直居中

我们都知道,固定高宽的div在网页中垂直居中很简单,相信大家也很容易的写出来,但是不是固定高宽的div如何垂直居中呢?我们在网页布局,特别是手机等web端网页经常是不固定高宽的div,那么这些div如何垂直居中呢?这篇文章,我总结一下. 固定高宽div垂直居中 如上图,固定高宽的很简单,写法如下: position: absolute; left: 50%; top: 50%; width:200px; height:100px; margin-left:-100px; margin-top:-

css中em的使用方法

css中em的使用方法 em的使用方法的总结: 1. 浏览器的默认字体大小是16px,可以在浏览器中设置默认的字体大小(下面的Chrome浏览器的设置方法) 2.  em是一个相对的单位,是当前元素相对于父元素字体的大小而言的:例如:父元素设置font-size: 32px ,子元素设置font-size: 1em ,那么子元素的字体大小也是32px 3.  如果父元素没有设置字体大小的话,就是想对于浏览器默认的字体大小而言的 4.  除了元素字体可以设置em,元素的width,height,

CSS教程:div垂直居中的N种方法[转]

在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生 效,例如表格元素中的<td>.<th>.<caption>等,而像<div>.<span>这样的元素是没有valign特性的,因此使用vertic

CSS教程:div垂直居中的N种方法以及多行文本垂直居中的方法

在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生 效,例如表格元素中的<td>.<th>.<caption>等,而像<div>.<span>这样的元素是没有valign特性的,因此使用vertic

CSS中的各种居中方法总结

CSS中的居中可分为水平居中和垂直居中.水平居中分为行内元素居中和块状元素居中两种情况,而块状元素又分为定宽块状元素居中和不定宽块状元素居中.下面详细介绍这几种情况. 一.水平居中 1.行内元素居中 顾名思义,行内元素居中是只针对行内元素的,比如文本(text).图片(img).按钮等行内元素,可通过给父元素设置 text-align:center 来实现.另外,如果块状元素属性display 被设置为inline时,也是可以使用这种方法.但有个首要条件是子元素必须没有被float影响,否则一切

使用CSS完美实现垂直居中的方法

使用XHTML+CSS来实现元素的垂直居中一直是前端开发中的一个比较复杂且棘手的问题,作为网页设计师或前端开发工程师,这个垂直居中问题也是必须掌握的技巧之一,一些互联网公司面试题中也会出现这类题目.今天暴风彬彬将分享一个完美通过CSS实现垂直居中的方法,该方法是由aka Yuh?发明的,这个方法也是目前暴风彬彬觉得最完美最简洁的CSS垂直居中实现方法.下面来看看暴风彬彬曾经总结的笔记,大家有不同意见请多拍砖: 先来看看实例效果Demo 该CSS垂直居中的条件: 1.已有一个已定义高度的容器(如<

HTML CSS 中DIV内容居中汇总

转载博客(http://www.cnblogs.com/dearxinli/p/3865099.html) (备注:DIV居中情况,网上谈到也比较多,但是这篇文字,相对还是挺全面,现转载,如果冒犯,还望博主见谅) 在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valig

CSS元素水平垂直居中的方法(附内联元素,块级元素的基本概念)

用CSS让元素居中显示并不是件很简单的事情.同样的CSS居中设置在不同浏览器中的表现也各有千秋.本文就介绍了在CSS中常见的几种让元素水平居中显示的方法. 1.使用自动外边距实现居中 CSS中首选的让元素水平居中的方法就是使用margin属性—将元素的margin-left和margin-right属性设置为auto即可.在实际使用中,我们可以为这些需要居中的元素创建一个起容器作用的div.需要特别注意的一点就是,必须为该容器指定宽度: 在大多数主流浏览器中,这种方法都非常有效,即使是Windo

(转)HTML&amp;CSS——background: url() no-repeat 0 -64px;CSS中背景图片定位方法

http://blog.csdn.net/oscar92420aaa/article/details/51304067 CSS中背景图片的定位,困扰我很久了.今天总算搞懂了,一定要记下来. 在CSS中,背景图片的定位方法有3种: 1)关键字:background-position: top left; 2)像素:background-position: 0px 0px; 3)百分比:background-position: 0% 0%; 上面这三句语句,都将图片定位在背景的左上角,表面上看效果是