Отступы в блоке DIV

266
19 марта 2018, 23:48

Здравствуйте уважаемые специалисты, будьте добры помогите решить проблему. Есть блок div отображаемый как display: table и в нём еще два div-а отображаемые как столбцы display: table-cell, вопрос: почему когда я применяю margin-top: 100px к содержимому первого столбца он автоматически применяется и ко второму? Вот упрощенная ситуация: https://jsfiddle.net/ayjj02yy/32/ Как сделать чтобы не смещался?

<div style="display: table; border: 1px solid;"> 
  <div style="display: table-cell; height: 250px;"> 
     <div style="margin-top:100px;">1 колонка</div> 
  </div> |  
  <div style="display: table-cell;">2 колонка (почему смещается?)</div> 
</div>

Answer 1

Отображение элементов display: table;, display: table-cell; и аналогичные им создают по сути эмуляцию таблицы. Соответственно, и поведение таблиц.

Псевдо-таблица:

<div style="display: table;"></div>

Псевдо-ячейка:

<div style="display: table-cell;"></div>

В таком случае, браузер создаст дополнительные анонимные элементы строки и таблицы, которыми Вы не сможете ими управлять.

При табличном поведении, если задать высоту ячейки таблицы или значение высоты содержимого этой ячейки будет больше высоты строки, поменяется и сама высота строки.

Для построения блочной модели, рекомендую использовать flexbox.

Для примера:

#container { 
display: -webkit-flex;  
display: flex; /*отображает контейнер как блочный элемент*/ 
justify-content: flex-start; 
} 
#container>div.cell{ 
  border: 1px solid red; 
} 
 
#container>div.cell>div{ 
  border: 1px solid blue; 
  margin-top:100px; 
}
<div id="container"> 
  <div class="cell"><div>1</div></div> 
  <div class="cell">2</div> 
</div>

READ ALSO
Подсветка первых 5 мест в таблице

Подсветка первых 5 мест в таблице

Есть турнирная таблица(php выводит из mysql), из которой первые 5 команд выходят в play-off нужно сделать , чтобы первые 5 команд подcвечивались цветом(любым)

221
Вертикальное позиционирование в CSS Grid Layout?

Вертикальное позиционирование в CSS Grid Layout?

Получилось вертикально позиционировать по центру item-4-1 во многих браузерах, за исключением IE11, вроде префиксы написал, но все равно не работает,...

250
Заливка текста фоном из пятен различных цветов

Заливка текста фоном из пятен различных цветов

Хочу на SVG красиво сделать логотип сайта

230
Как лучше поступить?

Как лучше поступить?

Как лучше поступитьМне на главный экран лэндинга нужна картинка, как лучше её задавать: Через background главного блока либо через img ?

217