2016-09-15 57 views
1

我有一個引導程序網格,我試圖將一個圖像(每個提供的示例爲200x100)居中在單元格內。Twitter引導程序單元中圖像的垂直對齊(高度未知)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title></title> 
 
    <meta charset="utf-8" /> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
</head> 
 
<body> 
 
    <div class="container"> 
 
     <div class="row" style="border:1px solid red;"> 
 
      <div class="col-xs-6"> 
 
       some text<br /> 
 
       some text<br /> 
 
       some text<br /> 
 
       some text<br /> 
 
      </div> 
 
      <div class="col-xs-6"> 
 
       some text<br /> 
 
       some text<br /> 
 
       some text<br /> 
 
       some text<br /> 
 
      </div> 
 
     </div> 
 
     <div class="row" style="border:1px solid red;"> 
 
      <div class="col-xs-6"> 
 
       <img src="http://placehold.it/350x150"> 
 
      </div> 
 
      <div class="col-xs-6 container"> 
 
       <img class="img" src="http://placehold.it/200x100"> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</body> 
 
</html>

我已經嘗試了很多提供互聯網上沒有任何的運氣技巧。 (順便說一句,他們大多數明確定義的高度)作爲一個證明,我在這裏提供他們一些:

Example1:與填充頂部的技巧:100%增加了一行,我不需要。

Example2:表/表小區只是不工作

實施例3:具有內聯塊和垂直對齊特技不工作

<style> 
     .container:before { 
      content: ''; 
      display: inline-block; 
      height: 100%; 
      vertical-align: middle; 
     } 

     img { 
      display: inline-block; 
      vertical-align: middle; 
     } 
    </style> 

實施例4:絕對位置與頂部,左側50 %和翻譯工作錯誤

<style> 
     .img { 
      position: absolute; 
      top: 50%; 
      left: 50%; 
      transform: translate(-50%,-50%); 
     } 
    </style> 

回答

3

CODEPEN

CSS試試這個

檢查例如:

.row { 
    display: -webkit-box; 
    display: -webkit-flex; 
    display: -ms-flexbox; 
    display: flex; 
    flex-wrap: wrap; 
} 

.row > [class*='col-'] { 
    display: flex; 
    flex-direction: column; 
    align-self: center; 
} 

.row > [class*='col-'] img { 
    align-self: center; 
} 
3

我最喜歡的垂直對齊黑客:

.vertical-center { 
    position: relative; 
    top: 50%; 
    transform: translateY(-50%); 
} 

它使用translateYtop將物品夾在未知高度的容器中。這需要IE10 +。

+0

在這種情況下它不工作 – Julian

0

你必須去對自舉造型,但不是它的工作原理

.img_container { 
 
    position: relative; 
 
} 
 
.reset_pos { 
 
    position: static !important; 
 
} 
 
.center { 
 
    position: absolute !important; 
 
    top: 50%; 
 
    transform: translateY(-50%); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title></title> 
 
    <meta charset="utf-8" /> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
</head> 
 

 
<body> 
 
    <div class="container"> 
 
    <div class="row" style="border:1px solid red;"> 
 
     <div class="col-xs-6"> 
 
     some text 
 
     <br />some text 
 
     <br />some text 
 
     <br />some text 
 
     <br /> 
 
     </div> 
 
     <div class="col-xs-6"> 
 
     some text 
 
     <br />some text 
 
     <br />some text 
 
     <br />some text 
 
     <br /> 
 
     </div> 
 
    </div> 
 
    <div class="row img_container" style="border:1px solid red;"> 
 
     <div class="col-xs-6"> 
 
     <img src="http://placehold.it/350x150"> 
 
     </div> 
 
     <div class="col-xs-6 container reset_pos"> 
 
     <img class="img center" src="http://placehold.it/200x100"> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</body> 
 

 
</html>

+0

謝謝你,但在這種情況下,在沒有響應的圖像列。 – Julian

1

您還需要確保該圖像的父div具有高於圖像高度的高度。

.row { 
 
    display: -webkit-box; 
 
    display: -webkit-flex; 
 
    display: -ms-flexbox; 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
} 
 

 
.row > [class*='col-'] { 
 
    display: flex; 
 
    flex-direction: column; 
 
    align-self: center; 
 
} 
 

 
.row > [class*='col-'] img { 
 
    align-self: center; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title></title> 
 
    <meta charset="utf-8" /> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
    
 
</head> 
 
<body> 
 
    <div class="container"> 
 
     <div class="row" style="border:1px solid red;"> 
 
      <div class="col-xs-6"> 
 
       some text<br /> 
 
       some text<br /> 
 
       some text<br /> 
 
       some text<br /> 
 
      </div> 
 
      <div class="col-xs-6"> 
 
       some text<br /> 
 
       some text<br /> 
 
       some text<br /> 
 
       some text<br /> 
 
      </div> 
 
     </div> 
 
     <div class="row" style="border:1px solid red;"> 
 
      <div class="col-xs-6 different-height-1" style="border:1px solid green;"> 
 
       <img class="img-responsive" src="http://placehold.it/350x150"> 
 
      </div> 
 
      <div class="col-xs-6 different-height-2" style="border:1px solid green;"> 
 
       <img class="img-responsive" src="http://placehold.it/200x100"> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</body> 
 
</html>

+0

你把分高度,但我不知道事件一分鐘的高度。您的第二張圖像不在該行內垂直對齊。 – Julian

+0

我試圖讓它與col對齊。但其他答案解決了它..只是嘗試和編輯我的.. –