2016-11-08 45 views
0

我需要垂直对齐div容器内的元素。元素如下图所示。 通过此代码,我可以很好地包装左侧的大图,但文字和小图片仍然按照自己的意愿进行。 我需要避免flexbox,因为我需要支持IE8或至少IE9。 我一直trought几种解决方案,还与表或绝对位置,但propably我总是做错了什么......div中的响应垂直中心元素

谢谢你帮我弄的这个:)

responsive vertical center elements

HTML

<section class="contact"> 
     <div class="adress"> 
      <h4>abc</h4> 
      <span>acbd<br> 
      efgh</span> 
      <span>tyre<br> 
      asdsad<br> 
      cxzcasd</span> 
      <img src="img/ccc-map.png" alt="map-ccc"> 
     </div> 
     <div class="map"> 
      <img src="img/ccc-g-map.png" alt="google-map"> 
     </div> 
    </section> 

SCSS

.contact { 
    border: 1.5px solid $grey; 
    width: 100%; 

    .adress { 
     float: left; 
     width: 40%; 
     padding: 2%; 

     h4 { 
      font-size: 130%; 
     } 

     span { 
      font-size: 100%; 
     } 

     img { 
      width: 45%; 
      height: auto; 
     } 
    } 
    .map { 
     float: right; 
     width: 60%; 
     padding: 1%; 

     img { 
      width: 100%; 
      height: auto; 
     } 
    } 
} 
.contact::after { 
    content: " "; 
    display: table; 
    clear: both; 
} 
+1

在图像&你给的代码,'.adress'里面的文本似乎已经是垂直居中了。我在这里错过了什么? –

回答

1

你混合块级元素,如h4和内联像img,并期待他们正确对齐,可能的,但有一个简单的解决方案,增加第三单元:

.contact{ 
 
    display: table; 
 
    width: 100%; 
 
    border-collapse: collapse; 
 
    border: 2px solid #ddd; 
 
} 
 
.contact > div{ 
 
    display: table-cell; 
 
    vertical-align:middle; 
 
    padding:8px; 
 
} 
 
.contact img{ 
 
    vertical-align: middle; 
 
    width: 100%; 
 
} 
 
.pic{ 
 
    width: 100px; 
 
} 
 
.map{ 
 
    width: 60%; 
 
}
<section class="contact"> 
 
    
 
    <!-- Create three cells instead! --> 
 
    
 
    <div class="adress"> 
 
    <h4>abc</h4> 
 
    <span> 
 
     acbd<br> 
 
     efgh 
 
    </span> 
 
    <span> 
 
     tyre<br> 
 
     asdsad<br> 
 
     cxzcasd 
 
    </span> 
 
    </div> 
 
    
 
    <div class="pic"> 
 
    <img src="//placehold.it/100x100/fac" alt="map-ccc"> 
 
    </div> 
 
    
 
    <div class="map"> 
 
    <img src="//placehold.it/500x300/fac" alt="google-map"> 
 
    </div> 
 
    
 
</section>

+0

谢谢你,你的代码工作完美,但我仍然有一个小问题。我有边框,缠绕在接触部分,右侧边框缺失。看起来这是涵盖的东西,但尽管我已经隐藏图像,这个边界仍然失踪。你能帮我解决吗? – JZK

+0

@JZK完成。看我编辑 –

+0

这是超级奇怪。看来这个问题只出现在Chrome上。我已经在Firefox中打开网站,一切正常。问题就像我上面所描述的那样,但它的行为如下所示: 当我调整浏览器窗口大小时,每个第二个调整大小的像素都会隐藏此部分的右边框。 Superstrange。有趣的是,它没有在页面上的任何其他部分执行,其中应用了相同的边框。只有在这里,在你的代码部分。你有什么想法为什么? :) – JZK