zoukankan      html  css  js  c++  java
  • 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>    

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

  • 相关阅读:
    Android中margin和padding的区别
    自动编号
    5s6r
    手动上传文件到数据表
    FTP from Axapta
    vba 图片
    右键菜单
    x++ 手动while select 表
    传输文件从客户端到服务器
    address
  • 原文地址:https://www.cnblogs.com/yanruilong/p/6623295.html
Copyright © 2011-2022 走看看