2014-12-12 3 views
0

Я пытаюсь получить столбцы с одинаковой высотой на моей чувствительной сетке, используя галерею mixin для SUSY. Для этого я устанавливаю контейнер «display: table» и столбец «display: table-cell». Это работает для меня, если я не использую mixin, но не сработает, как только включу mixin. Mixin работает, если я установил высоту в пикселях, но не если я установил высоту с использованием 100%;Susy gallery breaks height for display table and table-cell

Я использую:

  • суперсимметрии (2.1.3) и
  • дерзость (~> 3,3)

Это работает с или без суперсимметрии:

.ttable { 
     @include container; 
     padding: gutter(); 
    @include clearfix; 
     .ttd { 
      @include gallery(3 of 12); 
     } 
    } 
    .ttable { 
     display: table; 
     height: 500px; 
     border: 1px solid #BF0D3E;; 
    } 
    .ttd { 
     display: table-cell; 
     background-color: #eee; 
     height: 500px; 
    } 

Это не работает с SUSY, но работает с mixin выключен:

.ttable { 
    display: table; 
    height: 100%; 
    border: 1px solid $fuschia; 
} 
.ttd { 
    display: table-cell; 
    background-color: #eee; 
    height: 100%; 
} 

ответ

1

Галерея Mixin использует поплавки и полей для элементов позиции, которые не будут работать с дисплеем стола. Первый работает, потому что стили таблицы игнорируются, и элементы перемещаются с заданной высотой. Если вы хотите использовать стили таблиц для получения равных высот, вы должны оставить в стороне галерею mixin и использовать отдельные микшины/функции для установки ширины/желобов (я думаю, что только inside и inside-static водосточные желоба будут работать с отображением таблицы).

.ttd { 
    @include gutters; 
    display: table-cell; 
    background-color: #eee; 
    width: span(3 of 12); 
} 
+0

Спасибо. Что помогает. Знаете ли вы, какие из других методов высоты будут работать? Мне нравится использовать «Галерея», потому что она решает проблему усреднения пикселей. Семантически, я фактически создаю галерею, чтобы «чувствовал» себя лучше. –

+1

Нет хорошего метода для float с равной высотой, если вы не хотите натягивать JS - и 'gallery' поддерживает только плавающие в данный момент (изолированные). Я начал использовать flexbox для галерей, а table-cell - сильно поддерживаемая альтернатива. Либо один должен обработать заботу о субпиксельном округлении, потому что элементы гибки, чтобы соответствовать их контейнеру. Я не знаю лучшего варианта. –

+0

IE8 и IE9 не делают flexbox и все еще сопротивляются попыткам устаревания; они по-прежнему превышают 3% использования в соответствии с caniuse.com. С другой стороны, я бы принял менее привлекательный макет в IE8. –

 Смежные вопросы

  • Нет связанных вопросов^_^