加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

CSS中高度不确定如何使元素垂直居中

发布时间:2023-10-03 14:52:39 所属栏目:语言 来源:
导读:  这篇文章给大家分享的是CSS中高度不确定如何让元素垂直居中。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
  这篇文章给大家分享的是CSS中高度不确定如何让元素垂直居中。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
 
  本文主要介绍了CSS未知高度垂直居中的实现,分享给大家,具体如下:
 
  <!doctype html>
 
  <html lang="en">  
 
    <head>  
 
      <meta charset="utf-8" />  
 
      <meta content="IE=8" http-equiv="X-UA-Compatible"/>  
 
      <title> CSS垂直居中</title>  
 
      <style type="text/css">  
 
        .container{  
 
          width:500px;/*装饰*/
 
          height:500px;  
 
          background:#B9D6FF;  
 
          border: 1px solid #CCC;  
 
        }  
 
      </style>  
 
    </head>  
 
    <body>  
 
      <h1>垂直居中(table)</h1>  
 
      <div class='container'>
 
          <table width="100%" height="100%">
 
              <tr>
 
                 <td align="center" valign="middle">
 
                    <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/205314/r_iebug.jpg" />
 
                 </td>
 
             </tr>
 
         </table>
 
     </div>
 
       
 
    </body>  
 
  </html>
 
  好了,我们看其CSS实现。凡是table能做到的,CSS都能做的,但各浏览器在CSS的差异比较大,因此要兼容它们难度很大。这涉及许多细节,各种流啊,display的表现效果与CSS hack,IE早些年搞了大堆的私有属性,这也有待我们深一步挖掘。我们先看最简单的实现,背景图片法
 
  背景图片法

  <!doctype html>
 
  <html>
 
  <head>
 
  <title> CSS垂直居中</title>
 
  <style type="text/css">
 
  .container {
 
    width:500px;
 
    height:500px;
 
    line-height:500px;
 
    background:#B9D6FF url(http://images.cnblogs.com/cnblogs_com/rubylouvre/205314/r_iebug.jpg)  no-repeat center center;
 
    border:1px solid #f00;
 
    text-align: center;
 
  }
 
  </style>

  </head>
 
  <body>
 
  <h1>垂直居中</h1>
 
  <div class="container">
 
  </div>
 
  </body>
 
  </html>
 
  CSS表达式法
 
  <html lang="en">  
 
    <head>  
 
      <meta charset="utf-8" />  
 
      <meta content="IE=8" http-equiv="X-UA-Compatible"/>  
 
      <title>司徒正美 CSS垂直居中</title>  
 
      <style type="text/css">  
 
        .container{  
 
          /*IE8与标准游览器垂直对齐*/
 
          display: table-cell;
 
          vertical-align:middle;
 
          width:500px;/*装饰*/
 
          height:500px;  
 
          background:#B9D6FF;  
 
          border: 1px solid #CCC;  
 
        }  
 
        .container img{  
 
          display:block;/*让其具备盒子模型*/
 
          margin:0 auto;  
 
          text-align:center;
 
          margin-top:expression((500 - this.height )/2);/*让IE567垂直对齐 */
 
        }  
 
      </style>  
 
    </head>  
 
    <body>  
 
      <h1>垂直居中(CSS表达式)</h1>  
 
      <div class="container">  
 
        <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/205314/r_iebug.jpg" />  
 
      </div>  
 
    </body>  
 
  </html>
 
  绝对定位法
 
  <!doctype html>
 
  <html lang="en">
 
    <head>
 
      <meta charset="utf-8" />
 
      <meta content="IE=8" http-equiv="X-UA-Compatible"/>
 
      <title>司徒正美 CSS垂直居中</title>
 
      <style type="text/css">
 
        div {
 
         /*IE8与标准游览器垂直对齐*/
 
          display:table-cell;
 
          vertical-align:middle;
 
          overflow:hidden;
 
          position:relative;
 
          text-align:center;
 
          width:500px;/*装饰*/
 
          height:500px;
 
          border:1px solid #ccc;
 
          background:#B9D6FF;
 
        }
 
        div p {
 
          +position:absolute;
 
          top:50%
 
        }
 
        img {
 
          +position:relative;
 
          top:-50%;
 
          left:-50%;
 
        }
 
      </style>
 
    </head>
 
    <body>
 
      <h1>垂直居中(绝对定位)</h1>
 
      <div class="container">
 
        <p>
 
          <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/205314/r_iebug.jpg" />
 
        </p>
 
      </div>
 
    </body>
 
  </html>
 
  display:inline-block法
 
  <!doctype html>
 
  <html lang="en">
 
    <head>
 
      <meta charset="utf-8" />
 
      <meta content="IE=8" http-equiv="X-UA-Compatible"/>
 
      <title>司徒正美 CSS垂直居中</title>
 
      <style type="text/css">
 
        div {
 
          display:table-cell;
 
          vertical-align:middle;
 
          text-align:center;
 
          width:500px;
 
          height:500px;
 
          background:#B9D6FF;
 
          border: 1px solid #CCC;
 
        }
 
  
 
      </style>
 
      <!--[if IE]>
 
  <style type="text/css">
 
  i {
 
      display:inline-block;
 
      height:100%;
 
      vertical-align:middle
 
      }
 
  img {
 
      vertical-align:middle
 
      }
 
  </style>
 
  <![endif]-->
 
      
 
    </head>
 
    <body>
 
      <h1>垂直居中(inline-block法)</h1>
 
      <div class="container">
 
        <i></i>
 
        <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/205314/r_iebug.jpg" />
 
      </div>
 
    </body>
 
  </html>
 
  writing-mode法
 
  <!doctype html>
 
  <html lang="en">
 
    <head>
 
      <meta charset="utf-8" />
 
      <meta content="IE=8" http-equiv="X-UA-Compatible"/>
 
      <title> CSS垂直居中</title>
 
      <style type="text/css">
 
        div{
 
          width:500px;
 
          height:500px;
 
          line-height:500px;
 
          text-align:center;
 
          background:#B9D6FF;
 
          border:1px solid #f00;
 
        }
 
        div span{
 
          height:100%\9;
 
          writing-mode:tb-rl\9;
 
        }
 
        div img{
 
          vertical-align:middle
 
        }
 
      </style>
 
    </head>
 
    <body>
 
      <h1>垂直居中(writing-mode法)</h1>
 
      <div class="container">
 
        <span>
 
          <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/205314/r_iebug.jpg" />
 
        </span>
 
      </div>
 
    </body>
 
  </html>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章