css 实现元素水平垂直居中总结5中方法

个人总结,如有错误请指出,有好的建议请留言。o(^▽^)o

一、margin:0 auto;text-align:center;line-height方法  

1 <div id="divAuto">margin,text-align;水平居中</div>
 1 /*
 2     margin:0 auto; 设置块元素(或与之类似的元素)的水平居中
 3     text-align:center;设置文本或img标签等一些内联对象(或与之类似的元素)的水平居中
 4     line-height:;高度设置为容器的高度 实现单行文本垂直居中(伪居中)
 5     overflow:hidden;为了防止内容超出容器或者产生自动换行
 6 */
 7 #divAuto {
 8     width:300px;
 9     height:50px;
10     background-color:#ff6a00;
11     margin:0 auto;
12    text-align:center;
13    line-height:50px;
14    overflow:hidden;
15 }

二、div不设置高度,子元素padding填充

1     <div id="divPar">
2         <p>padding填充实现居中</p>
3     </div>
 1 /*
 2     div 不设置高度
 3     padding:20px 0;使用padding值把div填充起来,是一种“看起来”的垂直居中方式,
 4     这种方法应用的前提就是容器的高度必须是可伸缩的
 5 */
 6 #divPar {
 7     width:100px;
 8     background-color:#00ff21;
 9 }
10 #divPar p{
11     padding:20px 0;
12 }

三、display:table;display:table-cell; 元素表格化实现垂直居中

   <div id="divBox">
        <div id="divChild">table化,vertical-align:middle;实现垂直居中</div>
    </div>
 1 /*
 2     使用table的方式实现元素垂直居中
 3     父div的display设置为table
 4     子div的display设置为table-cell
 5     通过vertical-align:middle;实现元素垂直居中
 6     缺点:IE8无效
 7 */
 8 #divBox {
 9     width:200px;
10     height:100px;
11     margin:10px auto;
12     background-color:#000000;
13     display:table;
14     text-align:center;
15 }
16 #divChild {
17     width:50px;
18     height:50px;
19     background-color:#ff6a00;
20     display:table-cell;
21     vertical-align:middle;
22 }

 四、利用父元素相对定于,子元素绝对定位的方式实现

    <div id="divRel">
        <div id="divAbs">绝对定位</div>
    </div>
 1 /*
 2     利用父元素相对定位 子元素绝对定位的方式实现子元素水平垂直居中
 3     top:50%;left:50% 实现子元素左上角处在父元素的中心位置
 4     margin设置宽高位负的子元素宽高的一半 实现子元素相对父元素水平垂直居中
 5     缺点:没有足够空间时,content 会消失(类似div 在 body 内,当用户缩小浏览器窗口,滚动条不出现的情况)
 6 */
 7 #divRel {
 8     width:500px;
 9     height:200px;
10     position:relative;
11     background-color:#ffd800;
12 }
13 #divAbs {
14     width:100px;
15     height:50px;
16     position:absolute;
17     background-color:#4800ff;
18     text-align:center;
19     top:50%;
20     left:50%;
21     margin:-25px 0 0 -50px;
22 }
 1 /*绝对居中 子元素的另一种实现方式*/
 2 #divAbs {
 3     width:100px;
 4     height:50px;
 5     position:absolute;
 6     background-color:#4800ff;
 7     text-align:center;
 8     left:0;/*-- left和right配对出现控制水平方向 --*/
 9     right:0;
10     top:0;/*-- top和bottom配对出现控制垂直方向居中 --*/
11     bottom:0;
12     margin:auto;/* 这句是必须的*/
13
14 }

 

五、使用一个div当填充元素实现子元素的垂直居中

    <div id="parent">
        <div id="zero">填充元素</div>
        <div id="child">Content here</div>
    </div>
 1 /*这种方法,在 content 元素外插入一个 div。设置此 div height:50%; margin-bottom:-contentheight;content 清除浮动,并显示在中间;
 2 缺点:需要额外的空元素*/
 3
 4 #parent {width:800px;
 5     height:300px;
 6     border:1px solid #ccc;}
 7
 8 #zero {
 9     float:left;
10     height:50%;
11     margin-bottom:-100px;/*居中元素高度的一半*/
12 }
13 #child  {
14     clear:left;/*清除浮动*/
15     height:200px;
16     background-color:#ff0000;
17 }

经验所限,暂时更新到这里...

时间: 2024-12-19 20:22:08

css 实现元素水平垂直居中总结5中方法的相关文章

使元素相对于窗口或父元素水平垂直居中的几种方法

如果一个元素具有固定或相对大小,要使其不管如何调整窗口大小或滚动页面,始终位于浏览器窗口中间,可使用如下方法: <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title><meta charset="utf-8&q

CSS实现元素水平垂直居中—喜欢对称美,究竟是谁的错

在CSS中对元素进行水平居中是非常简单的:如果它是一个行内元素,就对它的父元素应用text-align:center;如果它是一个块级元素,就对它自身应用margin:auto.然而要对一个元素进行垂直居中,就有点束手无策了,本文介绍了几种常用的垂直居中方法以供参考! 一.表格布局法二.基于行内块的解决方案(来自于第二篇参考文献)三.基于绝对定位的解决方案1.绝对定位+负的外边距2.绝对定位+margin:auto3.绝对定位+transform反向偏移四.基于视口单位的解决方案(仅适用于基于视

让一个元素水平垂直居中的几种方法

1.方法一——margin负 div.box{ weight:200px; height:400px; position:absolute; <!--设置元素的定位位置,距离上.左都为50%--> left:50%; top:50%; <!--设置元素的左外边距.上外边距为宽高的负1/2--> margin-left:-100px; margin-top:-200px; } 优点:兼容性好; 缺点:必须已知元素的宽高: 2.方法二——translate负50% div.box{ w

关于元素水平垂直居中的那些事?

关于元素水平垂直居中的那些事? 中国式的美,总是少不了对称美的存在.对称美,存在于建筑之上,也巧秀于美食之中.对称之美,中国之风!美,用户体验的一种,作为用户体验的打造者,我们是不是也应该知道些有关于前端开发中的对称美呢?那我们大前端中到底存在些什么对称美呢?ok,那我们今天就来聊聊,关于元素水平垂直居中的那些事吧! 什么是元素水平垂直居中? 什么是元素水平垂直居中?想必大家看到这问题,心里早已经有数了!水平则为左右,垂直即为上下,居中亦为中心.也就是说,我们在使用元素的时候,有可能要水平居中,

未知宽高元素水平垂直居中

一.transform <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <!--方法1:一个未知宽高的弹出框,水平垂直居中--> <div style="position:relative;width:100%;height:600px;border:1px solid #888">

css中元素水平垂直居中4种方法介绍

table-cell轻松设置文本图片水平垂直居中 让一个元素垂直居中的思路:把这个元素的容器设置为table-cell,也就是具有表格单元格的特性,再使用vertical-align(这个属性对block元素不起作用,但对table-cell元素是有效的)设置元素垂直居中,即可达到我们想要的效果. IE7及以下版本不支持此方法,IE8及以上版本及大部分的主流浏览器都很好的支持. HTML代码  代码如下   <div class="img">    <img src=

《转》CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳)

转自大地Dudy的CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳) 本文主要是对主流居中方法进行了归纳,有些地方甚至就是把别人的代码直接复制过来的,没有什么自己的东西,除了大漠以及张鑫旭的方法外,还有来自司徒正美.怿飞博客的几个方法 以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说的IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法: <!doctype html> <html lang="en&

CSS元素水平垂直居中方法总结(方法主要来自大漠以及张鑫旭博客)

以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法:<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"&g

总结:前端开发中让元素水平垂直居中的方法

前端开发中,我们经常需要对元素进行水平垂直居中.为此,小编特地总结了让元素居中的方法. 水平居中text-align:center; 这个是没有浮动的情况下,我们可以先将要居中的块级元素设为inline/inline-block,然后在其父元素上加上属性text-align:center;即可.如果要居中的块级元素直接是内联元素(span.img.a等),直接在其父级元素上加上属性text-align:center;即可: .way { border: 1px solid red; width: