2015-04-01 100 views
0

我想将容器内的内容水平居中。我使用了最小高度为&的flexbox,但在Internet Explorer中,此解决方案不起作用。 我不能用简单的高度,因为:最小高度柔性盒容器

  • 布局响应
  • 内容可以有不同的长度

在这种情况下,这里的内容会更长该容器中,布局将休息(使用时的高度 - 所以我必须用最小高度...)

我准备一个小的演示与“黑客”为IE: http://jsfiddle.net/pujceaam

HTML

<div id="content" class="flex-center"> 
<div id="content2">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ullam fugit eum modi aspernatur dicta, similique. Cupiditate sapiente at facilis tempore assumenda, eaque inventore veritatis aperiam et tenetur aliquam totam quo sequi dolor illo est amet quibusdam repellat, sed eius voluptate, a repudiandae molestiae asperiores! Alias omnis aperiam nam perferendis maiores quae minus repellat similique repellendus dolor quos magnam, labore architecto quasi vitae cumque officiis adipisci exercitationem autem eius fugiat. Velit nesciunt, excepturi neque. Perspiciatis delectus, autem rerum soluta esse, nulla necessitatibus repellat ducimus ex eligendi culpa! Iusto, repellat hic aliquam sit illum tempore, adipisci modi? At doloribus, illum quod perferendis ab dolorum aut, itaque laborum, voluptates nihil ea. Quia molestias tempore repudiandae pariatur laudantium ut velit inventore, consectetur distinctio officia deserunt laborum natus sunt voluptates alias corrupti veniam tempora exercitationem, fugiat aliquam provident soluta. Provident repellat odit totam aliquam culpa distinctio voluptas expedita ipsa deleniti quasi nesciunt qui eius esse iste debitis vitae ad soluta dolorem, amet, optio aperiam ullam. Dolorem ab dolores veniam, dolore, asperiores adipisci enim maiores quas accusantium porro consectetur sapiente officia exercitationem doloremque neque aperiam hic impedit nihil inventore alias ullam voluptatem soluta earum quisquam. Obcaecati, sapiente, at. Obcaecati eius ex, delectus! Atque, ullam et vitae.</div> 

CSS

.flex-center { 
    display: -ms-flexbox; 
    display: -webkit-flex; 
    display: flex; 
    -ms-flex-align: center; 
    -webkit-align-items: center; 
    align-items: center; 
    background: rgba(125, 125, 125, .5); 
    min-height: calc(100vh - 100px); 
} 
.va-parent { 
    width: 100%; 
    display: table; 
} 
.va-children { 
    display: table-cell; 
    vertical-align: middle; 
} 

JS

$(function() { 

    //detect IE 
    var isIE = (window.navigator.msPointerEnabled) || (document.all && document.addEventListener && !window.atob); 

    //old method to vertical align content 
    function flexible() { 
     var c1 = $('#content'), 
      c2 = $('#content2'); 

     if (c1.height() > c2.height()) { 
      c1.addClass('va-parent'); 
      c2.addClass('va-children'); 
     } 
    } 

    //apply old method if IE 
    if (isIE) flexible(); 

}); 

但我不知道这是否是一个好解?
或者,也许有人有另一个想法?

编辑: 在内容可以是网格,图像,表格,清单等内容 - 不仅是文字:)

回答

0

截断字符串省略号

.truncate { 
    width: 250px; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
}