css元素垂直水平居中实例

/* 
    名称: 垂直 水平 居中
    用法:
        1. [原理] 设定宽度和高度,父节点为 position:relative; CSS是这样写的:
   
          position:absolute;left:50%;top:50%;
          margin-left:-元素自身宽度的一半;
          margin-top:-元素自身高度的一半;
   
        2. [原理] table, 用起来就更简单了, 只要添加:
   
          text-algin:center;
          vertical-align:middle;
   
        3. [方法] 提供模板化的CSS class方法, 规则如下:

 代码如下 复制代码

   
          <div class="sl-hvalign" style="width:500px"> <!-- 记得加宽度, 不要写行内样式, 这里只是一个提示 -->
                 <div class="sl-hvalign-cnt">
                         <div class="sl-hvalign-cnt-inner">
                               <!-- your code -->
                         </div>
                 </div>
          </div> <!-- .sl-hvalign -->
 */

.sl-hvalign{
    display:table;
    overflow:hidden;
    margin:0 auto;
    height: 100%;
    *position:relative;
}

.sl-hvalign-cnt{
    display:table-cell;
    vertical-align: middle;
    *position:absolute;
    top:50%;
}

.sl-hvalign-cnt-inner{
    *position:relative;
    *top:-50%;
}

单纯的图片垂直居中,写三层标签确实有些费,但是这不得不说是一种折中的方案,当有图片、有文字时,是一个比较好的选择。。

 代码如下 复制代码

<!doctype html>
<html>
<head>
<meta charset='utf-8' />
<title></title>
<style type="text/css">
.out{width:400px;height:300px;margin:20px auto;display:table-cell;text-align:center;vertical-align:middle;background:#ccc;}
.out img{width:100px;height:100px;background:#fcc;}
</style>
</head>

<body>
<div class='out'>
<img src="" alt="" />
</div>
</body>
</html>

其他的CSS实现垂直居中的方法
A
在 content 元素外插入一个 div。设置此 div height:50%; margin-bottom:-contentheight;。
content 清除浮动,并显示在中间。
优点:适用于所有浏览器;没有足够空间时(例如:窗口缩小) content 不会被截断,滚动条出现
缺点:唯一我能想到的就是需要额外的空元素了

 代码如下 复制代码

#floater{float:left; height:50%; margin-bottom:-120px;}
#content{clear:both; height:240px; position:relative;}

<div id="floater"></div>
<div id="content">
Content here
</div>

B
使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。使用 margin:auto;使块级元素垂直居中是很简单的。优点:简单;缺点:IE(IE8 beta)中无效;无足够空间时,content 被截断,但是不会有滚动条出现

 代码如下 复制代码

<!doctype html>
<html>
<head>
<title></title>
<meta charset='utf-8' />
<style type="text/css">
.outer{height:240px;width:500px;margin:20px auto 0;position:relative;background:#ccf;}
.inner{width:300px;height:100px;background:#9f9;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;text-align: center;}
.inner img{height:100px;}
</style>
</head>

<body>
<div class="outer">
<div class="inner">
<img src="bokan.png" alt="" />
</div>
</div>
</body>
</html>

C
使用绝对定位的 div,把它的 top 设置为 50%,top margin 设置为负的 content 高度。这意味着对象必须在 CSS 中指定固定的高度。
因为有固定高度,或许你想给 content 指定 overflow:auto,这样如果 content 太多的话,就会出现滚动条,以免content 溢出。
优点:适用于所有浏览器;不需要嵌套标签。缺点:没有足够空间时,content 会消失(类似div 在 body 内,当用户缩小浏览器窗口,滚动条不出现的情况)

 代码如下 复制代码

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

<div class="content">
Content goes here

</div>

时间: 2024-10-10 12:51:56

css元素垂直水平居中实例的相关文章

css实现垂直水平居中实例代码

首先我们我们想到居中就是相对于当前窗口,上边距和左边距各一半即可,于是有了下边的css样式:  代码如下 复制代码 .center {     left:50%;     top:50%;     position:fixed; } 我们很快发现,问题还没有真正解决, 要实现居中,我们要将对象向左.向上分别移动图片宽度.高度的一半,所以最终的样式如下:  代码如下 复制代码 .center {     left:50%;     margin-top:-50px;     margin-left

css垂直水平居中代码

css教程垂直水平居中代码 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.jzread.com/1999/xhtml"> <head> <meta http-eq

css中固定高度容器内的图片垂直水平居中的实例

在某一个网站(freeappstools)上看到的这个"新奇"解法,说新奇,主要是国内各种总结的方法都没提到过,打引号,只是因为其中的原理很多人都知道:即依靠行高(line-height)的方法.  line-height对于img元素并不起作用:  代码如下 复制代码 <div style="height:250px;background:#ccc;line-height:250px;width:400px;text-align:center;">  

纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示_javascript技巧

下文以span元素为例子,介绍一下如何实现span元素在div中实现水平垂直居中效果,代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title></title> <sty

CSS图片响应式 垂直水平居中_javascript技巧

我看最近微博流行CSS居中技术,我看了几编资料写的都不多好,于是抽时间把相关资料整合了,具体内容如下. 点击此处下载源码 效果展示: 要求: 1.尽可能兼容更多浏览器,这里兼容到ie7,ie6不支持max-*就不考虑了. 2.浏览器尺寸变化时,图片总是等比例拉伸或缩放. 3.包裹图片的div也是响应式的,并且每个div的尺寸是一样的. 4.图片始终保持水平垂直居中. 5.图片的行列数不变,这里一直都是3*3. 下面来搞定一个个要求. 满足要求1意味着这里要尽量不使用高级浏览器才有的属性,比如高级

纯css完美地解决图片在div内垂直水平居中,兼容全部浏览器

本站提供的方法,纯css完美地解决图片在div内垂直水平居中,兼容IE7.0.IE6.0.IE5.5.IE5.0.FF.Opera.Safari...... 强烈推荐收藏! [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

纯css完美实现图片在div内垂直水平居中

以下是要实现插入图片的绝对居中,如果你仅仅是想让图片居中,最简单的方法是设为背景图片,如: div {    width:500px;border:1px solid #f00;    height:500px;    background:url("/images/logos.gif") center no-repeat    } 言归正转,请看以下代码实现图片在div内垂直水平居中: 以下是HTML网页特效代码,点击运行按钮可查看效果: [Ctrl+A 全部选择 提示:你可先修改部

Android应用借助LinearLayout实现垂直水平居中布局

首先说的是LinearLayout布局下的居中一般是这样的: (注意:android:layout_width="fill_parent" android:layout_height="fill_parent" 属性中,若水平居中,至少在宽度上占全屏:若垂直居中,则在高度上占全屏) <LinearLayout android:layout_width="fill_parent" android:layout_height="fil

CSS横向导航菜单实例教程

CSS横向导航菜单实例教程2,又一款css导航菜单.   <ul id="nav">      <li><a href="http://www.alixixi.com/">Div+CSS教程</a></li>      <li><a href="http://www.alixixi.com/" id="current">CSS布局实例</