`
dingchao.lonton
  • 浏览: 49371 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

CSS 实现垂直居中

css 
阅读更多

本文转载与:http://blog.bingo929.com/css-vertical-center.html 

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

 


该CSS垂直居中的条件:

1.已有一个已定义高度的容器(如<div>)


2.内部有一个未知高度的对象(也许是后台动态生成的文本,放在另一个<div>中)


3.我想让内部的对象在容器内垂直居中。


4.不使用HTML的表格(table元素),也不使用Javascript。

该CSS垂直居中的方法:

最大的问题:IE浏览器的Bug。

  大部分浏览器能理解CSS中的display:table之类的表格方式声明,但IE7及其以下的旧版IE无法理解这个声明。

解决办法:让大部分能理解display:table声明的浏览器使用vertical-align属性达到垂直居中,让IE7及以下版本用自己理解高度的Bug来解决居中问题。

IE Bug: 

IE7及以下版本理解高度的Bug:如果a容器内有b对象,a容器并没有设置高度值,如果b对象有实际内容(如文字),那么就会将a的高度理解为与b相等。那么如果对b采取相对定位,b就会相对于在a中的原始位置移动(主要利用百分比高度)。

eg:a未定义高度,b的高度为100px,将b相对定位,并设top:-50%

在这种情况下:标准浏览器由于未知a的高度,所以b不动。而IE7及以下版本则会让b相对a的高度(其实等于b的高度)上移50%,也就是50px 。

如何仅让IE7及以下版本理解对它们的声明?

1.Pixy曾发明underscore hack,就是在每个CSS属性前加一个下划线”_”,这个hack是专门针对IE6及以下版本的,也就是说IE7无法理解。如:_position:absolute;  所以这种hack就PASS!
2.在属性前加”#”的声明正好可以仅让IE7及以下版本理解,而其它任何浏览器都无法理解这个”#”,所以”#”后的声明就会被其它浏览器忽略掉。 OK~~就这个!

兼容性:

  目前为止兼容直到IE8.x的所有IE浏览器、Gecko核心浏览器(Mozilla,Firefox,Netscape 7)、Opera 7、Webkit核心浏览器(Safari及Google Chrome)。

代码:

CSS部分:

#outer {
       display:table;
       height:400px;
       #position:relative;
       overflow:hidden;
}
#middle {
       display:table-cell;
       vertical-align:middle;
       #position:absolute;
       #top:50%;
} 
#inner {
       #position:relative;
       #top:-50%;
} 
 


XHTML部分:

<div id=”outer”>
    <div id=”middle”>
        <div id=”inner”>
           <!–这里是要垂直居中的内容–>
        </div>
    </div>
</div> 
 

 

分享到:
评论

相关推荐

    css实现垂直居中

    在网页设计中,让元素在页面上垂直居中是一项常见的需求。CSS(Cascading Style Sheets)提供了多种方法来实现这一目标。以下是一些主要的CSS技术,...在实践中不断尝试和学习,可以让你更好地掌握CSS垂直居中的技巧。

    CSS实现垂直居中的几种实现方式.pdf

    本文主要探讨了如何使用CSS实现垂直居中,这是页面布局中常见的需求。垂直居中分为两种主要情况:内外元素高度全定和外层元素高度定,内层高度不定。 1. **内外元素高度全部确定的情况** - **line-height 与 ...

    css实现垂直居中的方法

    ### CSS 实现垂直居中的五种方法 在前端开发中,如何使元素在页面中垂直居中是一项常见的需求。本文将详细介绍五种不同的方法来实现这一目标,并对每种方法的特点进行分析,以便开发者根据实际情况选择最合适的方案...

    CSS实现垂直居中的几种实现方式.docx

    在CSS布局中,垂直居中是一项常见的需求,尤其在页面设计中显得尤为重要。...以上就是针对不同情况的CSS垂直居中实现方式,每种方法都有其适用场景和局限性,开发者需要根据项目需求和目标浏览器范围选择合适的方法。

    CSS实现垂直居中的5种方法.rar

    本教程将详细讲解5种有效的CSS方法,帮助你掌握垂直居中的技巧。 1. **Flexbox布局** Flexbox是现代CSS布局模型,特别适合处理容器内子元素的对齐问题。要实现垂直居中,首先设置容器的`display`属性为`flex`,...

    CSS实现完美垂直居中 - 蓝色理想

    "CSS实现完美垂直居中"这一主题深入探讨了如何利用CSS技术使元素在容器内实现精确的垂直对齐。以下是一些关于这个主题的关键知识点: 1. **单行文本垂直居中**: 对于单行文本,可以使用`line-height`属性来实现...

    DIV+CSS 图片垂直居中效果

    综上所述,"DIV+CSS 图片垂直居中效果"可以通过多种方法实现,具体选择哪种取决于项目需求、浏览器兼容性和响应式设计的需求。在提供的`index.html`、`images`和`css`文件中,我们可以看到实际的代码应用和图片资源...

    css图片垂直居中方法

    以上都是在不同场景下实现CSS图片垂直居中的常见方法。具体选择哪种方法取决于你的项目需求,比如兼容性、布局复杂度等因素。在实际应用中,可能需要根据实际情况调整这些代码,以适应各种浏览器和设备。通过阅读...

    DIV+CSS水平垂直居中

    本文将详细介绍DIV+CSS水平垂直居中的方法和实现原理。 一、使用position:absolute实现水平垂直居中 使用position:absolute可以将DIV元素水平垂直居中,方法是将DIV元素的left和top属性设置为50%,然后通过margin-...

    css图片垂直居中

    本篇文章将深入探讨如何利用CSS实现图片的垂直居中效果。 首先,我们来看几种常见且实用的CSS方法: 1. **Flexbox布局**: Flexbox是CSS3引入的一种新的布局模式,特别适合处理容器内元素的对齐问题。要使图片在...

    [css]实现垂直居中水平居中的几种方式 - 霪霖笙箫 - 博客园1

    "CSS 实现垂直居中水平居中的几种方式" CSS 中实现垂直居中水平居中的几种方式是非常重要的,以下是几种常见的实现方式: 1. 容器内(Within Container) 在容器内实现垂直居中水平居中可以通过设置容器的 ...

    CSS实现垂直居中的几种方法

    本文将介绍几种有效的CSS垂直居中方法,以便开发者可以根据具体场景选择适合的方法。 1. 表格单元格方式 这种方法通过将容器设置为表格样式,然后将子元素设置为表格单元格并应用`vertical-align: middle`来实现...

    CSS实现垂直居中的4种思路详解

    CSS实现垂直居中是网页布局中的常见需求,本文将详细讲解四种不同的方法,帮助开发者更好地理解和运用这些技巧。 1. **行高line-height实现单行文本垂直居中** 单行文本的垂直居中可以通过设置`line-height`来实现...

    CSS解决未知高度的DIV垂直居中

    #### CSS垂直居中原理 在CSS中,`vertical-align`属性主要用于设置行内元素或表格单元格中的内容垂直对齐方式。但是,当涉及到块级元素时,这个属性并不起作用。因此,我们需要采用其他技术来达到垂直居中的目的。...

    div+css垂直居中和水平居中

    在网页设计中,实现元素的垂直居中和水平居中是一项常见的需求,这涉及到CSS布局技术。本篇文章将深入探讨如何使用div+css方法来实现这一目标。在现代Web开发中,div元素作为布局容器广泛使用,而CSS则是样式控制的...

    CSS 实现盒子水平居中、垂直居中和水平垂直居中….docx

    CSS 盒子水平居中、垂直居中和水平垂直居中的实现方法 在 CSS 中,实现盒子水平居中、垂直居中和水平垂直居中是非常常见的需求。本文将介绍五种不同的方法来实现这些效果,并对每种方法的优缺点进行分析。 一、...

    纯CSS实现垂直居中的9种方法

    为实现良好的兼容性,PC端实现垂直居中的方法一般是通过绝对定位,table-cell,负边距等方法。有了css3,针对移动端的垂直居中就更加多样化。 方法1:table-cell html结构: XML/HTML Code复制内容到剪贴板  box1&gt;...

    CSS实现垂直居中的七个方法实例代码详解

    ,就可以轻松解决掉水平居中的问题,但一直以来最麻烦对齐问题,都是“垂直居中”这个讨人厌的设定,以下将介绍七种单纯利用CSS垂直居中的方式。 七种垂直居中的方法 设定行高(line-height) 添加伪元素 calc...

    CSS 垂直居中的5种实现方法

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

Global site tag (gtag.js) - Google Analytics