Помогите пожалуйста с нестандартной задачей css
Вложений: 1
Требуется расположить блоки таким образом как на кртинке. При этом нельзя использовать никакие отступы слева и справа.Надеюсь понятно объяснил:)
|
Цитата:
Цитата:
Если с отступами, то можно так: <style> .container{ width: 600px; outline: 1px solid red; } .grid{ margin: 0 0 0 -30px; overflow: hidden; } .grid .item{ width: 180px; height: 200px; margin: 0 0 30px 30px; float: left; background: blue; } </style> <div class="container"> <div class="grid"> <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> </div> </div> Если блоки разной высоты, то display:inline-block |
именно в этом и загвоздка, нельзя использовать margin и padding слева и справа для самиих блоков (для общего контейнера можно). Это вообще сложно объяснить:(
|
А чем обусловлено такое странное требование?
Тогда только css3 flexbox (с ним еще не разбирался). Или може быть через display:inline-block, а расстояние между блоками определить через указание ширины пробелов. |
Это тестовое задание на джуниора, я думаю решили поиздеваться походу-3 день сижу на форумах и штудирую интернет, попробую flexbox.Спасибо за подсказку.
|
Может, сделать таблицу, cellspacing и т.д.?
|
Но тогда придется разибвать на строки.
Чтобы угодить заданию, можно место отступов можно тупо оборачивать блоки в контейнеры с шириной, немного большей, таким образом получим отступы. <style> .container{ width: 600px; outline: 1px solid red; } .grid{ display: table; width: 100%; border-spacing: 30px; margin: 0 -30px; table-layout: fixed; } .grid .row{ display: table-row; } .grid .item{ width: 180px; height: 200px; display: table-cell; vertical-align: top; background: blue; } </style> <div class="container"> <div class="grid"> <div class="row"> <div class="item"></div> <div class="item"></div> <div class="item"></div> </div> <div class="row"> <div class="item"></div> <div class="item"></div> </div> </div> </div> |
Эти все варианты хороши, но в резиновом шаблоне не смый лучший вариант.Спасибо за идеи.Наверно всё-таки напишу, что задание глупое, не возьмут на работу так и хрен с ними.
|
Можно ведь заменить пиксели на проценты.
Цитата:
|
Цитата:
|
Я тоже думал про border. Задачу решает. Только глупо это как-то.
|
Как вариант в блоках указать position:relative создать с помощью div:before div:after создать
div:after { content: ' '; display: block; background: #fff; position: absolute; и указать необходимую ширину и высоту, а также координаты absolute } Двумя элементами достичь отступы левоправо верхниз |
Цитата:
|
Deff, а чем их margin/padding не устраивает?
|
вот самому интересно, отослал с разными вариантами,которые предложили на форуме, ответа пока нет, но я попросил прокомментировать некоторые пункты задания, очень интересно что напишут.
|
Часовой пояс GMT +3, время: 07:52. |