CSS实现垂直居中的方法

垂直居中是CSS布局中十分常见的布局效果,在平时的工作中遇到的垂直居中布局大概分为以下的几类:

1,首先是单行文本居中,非常简单,只需要设置父级元素的高和行高相等,或者设置本身元素为内联块或者块元素,再设置高和行高相等就可以。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6    <style>
 7         .sp1{
 8         height:100px;
 9         line-height:100px;
10         border:1px solid red;
11     }
12         .sp2{
13         display:inline-block;
14         height:50px;
15        line-height:50px;
16        border:1px solid blue;
17     }
18     </style>
19     </head>
20     <body>
21         <div class="sp1"><span>我是单行文本,我需要垂直居中1</span></div>
22     <span class="sp2">我是单行文本,我需要垂直居中2</span>
23     </body>
24 </html>    

效果如下:

------------------------------------------------------------------------------------------------------------------------------------------------------

2,第二种遇到比较多的就是多行文本和图片以及按钮,类似这种。

  小白遇到这种图文处理就会无从下手,当初我对CSS一知半解,写类似的布局会用很多比较2的方法,绝对定位,相对定位,margin,padding基本都会被我用到,总算是稀里糊涂给糊弄过去了,下来查了查资料,发现此布局的写法简单的令人发指,在这里分享给前段路上的小白们,一起学习进步,人不怕笨,但一定要勤奋。

2,代码如下:

首先要给父元素设置宽高,然后设置display:table;意思是此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。

然后在子元素设置display:table-cell;意思是此元素会作为一个表格单元格显示(类似 <td> 和 <th>);

有了这些属性之后,给子元素设置垂直居中vertical-align:middle,大功告成。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6    <style>
 7
 8     </style>
 9     </head>
10     <style>
11         *{
12             margin: 0;
13             padding: 0;
14         }
15         .box1{
16             width: 100%;
17             height: 180px;
18             font-family: "微软雅黑";
19             color: #ffffff;
20             background: black;
21             display: table;
22         }
23         .box2{
24             width: 140px;
25             text-align: center;
26             display: table-cell;
27             vertical-align: middle;
28         }
29         .box2 .img{
30             width: 100px;
31             height: 100px;
32             line-height: 100px;
33             display: inline-block;
34             background: rgb(255,209,97);
35             border-radius: 50%;
36             text-align: center;
37             color: #000000;
38         }
39            .box3{
40             display: table-cell;
41             vertical-align: middle;
42            }
43            .btn{
44                display: table-cell;
45                vertical-align: middle;
46            }
47            input{
48                width: 170px;
49                height: 60px;
50             font:bold 30px "微软雅黑";
51             background: rgb(255,209,97);
52             border: none;
53             border-radius: 4px;
54            }
55     </style>
56     <body>
57         <div class="box1">
58             <div class="box2">
59                 <span class="img">我是图片</span>
60             </div>
61             <div class="box3">
62                 <h1>商家入驻</h1>
63                 <p>平台优势,成单量更有保证,销量与品牌双重提升</p>
64             </div>
65             <div class="btn">
66                 <input type="button" value="立即入住"/>
67             </div>
68         </div>
69     </body>
70 </html>    

——————————————————————————————————————————————————————————————————————-——————

时间: 2024-10-12 13:18:11

CSS实现垂直居中的方法的相关文章

css元素垂直居中的方法

用 CSS 实现垂直居中也不简单.如果你想在一个固定高度的元素内垂直居中一行文本,可以把这一行文本的 line-height 设定为该元素的高度.假设元素高度为 300 像素,可以这样写:text-align:center; /*水平居中*/line-height:300px; /*垂直居中:行高=容器高度*/如果想垂直居中其他元素,比如图片,可以将容器的 display 属性设定为 table-row,再设定(只对单元格有效的) vertical-align 属性为 middle,比如:dis

介绍一种css水平垂直居中的方法(非常好用!)

这次介绍一下一个水平垂直居中的css方法,这个方法可以说是百试百灵,废话不多说,直接附上代码: html,body{ width:100%; height:100%; } 你需要居中的元素{ position: fixed;(absolute)      left:50%;      top:50%;      -webkit-transform: translate(-50%,-50%); } 他的父元素{ position: relative; width:100%; height:100%

CSS水平垂直居中常见方法总结(转)

行内元素: 父级元素是块级元素:父元素设置text-align:center 1.元素水平居中 margin: 0 auto;谁居中,谁设置 居中不好使的原因: 1.元素没有设置宽度,没有宽度怎么居中嘛! 2.设置了宽度依然不好使,你设置的是行内元素吧 实例1: <div class="box"> <div class="content"> 哇!居中了 </div> </div> <style type=&quo

CSS水平垂直居中常见方法总结2

1.文本水平居中line-height,text-align:center(文字)元素水平居中 margin:0 auo 方案1:position 元素已知宽度 父元素设置为:position: relative; 子元素设置为:position: absolute; left: 50%;top: 50%;margin: -50px 0 0 -50px;距上50%,据左50%,减去元素自身宽度的距离 方案2:position transform 元素未知宽度 margin: -50px 0 0

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

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

CSS实现垂直居中的常用方法

在前端开发过程中,盒子居中是常常用到的.其中 ,居中又可以分为水平居中和垂直居中.水平居中是比较容易的,直接设置元素的margin: 0 auto就可以实现.但是垂直居中相对来说是比较复杂一些的.下面我们一起来讨论一下实现垂直居中的方法. 首先,定义一个需要垂直居中的div元素,他的宽度和高度均为300px,背景色为橙色.代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q

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

利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器中无效.下面我们看一下使对象垂直集中的5种不同方法,以及它们各自的优缺点.(可以看看测试页面,有简短解释.) 方法一: 这个方法把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align property 属性. <div id="wrapper"&g

[转]-CSS 元素垂直居中的6种方法

原文地址:http://blog.zhourunsheng.com/2012/03/css-%E5%85%83%E7%B4%A0%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD%E7%9A%84-6%E7%A7%8D%E6%96%B9%E6%B3%95/ 利用CSS进行元素的水平居中,比较简单,行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.本文收集了六种利用css进行元素的垂直居中的方

CSS 元素垂直居中的 6种方法

利用CSS进行元素的水平居中,比较简单,行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.本文收集了六种利用css进行元素的垂直居中的方法,每一种适用于不同的情况,在实际的使用过程中选择某一种方法即可. Line-Height Method 试用:单行文本垂直居中,demo 代码: html 1 2 3 <div id="parent"> <div id="child&quo