Создайте квадрат квадратов внутри большего квадрата

html
Вопрос: Надеюсь, этот образ объяснит, что я пытаюсь сделать... в CSS... Мне удалось завершить почти все это. Вот скрипка, показывающая то, что у меня есть до сих пор... К сожалению, я не могу поместить квадраты бок о бок (попробовал float), и вместо этого они появляются в вертикальном столбце. Какие-либо предложения? HTML...

Вопрос:

Надеюсь, этот образ объяснит, что я пытаюсь сделать… в CSS…

enter image description here

Мне удалось завершить почти все это. Вот скрипка, показывающая то, что у меня есть до сих пор… К сожалению, я не могу поместить квадраты бок о бок (попробовал float), и вместо этого они появляются в вертикальном столбце.

Какие-либо предложения?

HTML…

<div class=»content-container»> <div class=»inner-square»><img src=»http://placehold.it/230×230″></div> <div class=»inner-square»><img src=»http://placehold.it/230×230″></div> <div class=»inner-square»><img src=»http://placehold.it/230×230″></div> <div class=»inner-square»><img src=»http://placehold.it/230×230″></div> </div>

CSS…

.content-container { max-width: 570px; height: auto; border-radius: 10px; border-top: 50px solid #e81354; background: #ffffff; display: block; } .inner-square { background: #cccccc; width: 50%; height: 50%; margin: 5px; } Лучший ответ:

Ваша проблема заключается в том, что вы устанавливаете width 50% но не минус 10px маржа, также ваш HTML-код имеет разрывы строк между div s, поэтому вы должны установить font-size 4px 0 для контейнера (чтобы исключить 4px строки ломать):

.content-container { … font-size:0; } .inner-square { background: #cccccc; width: calc(50% — 8px); height: calc(50% — 8px); margin: 5px; display:inline-block; } .inner-square:nth-child(even) { margin-left:0; } .inner-square:nth-child(n+2) { margin-top:0; }

Demo.

Ответ №1

Две проблемы:

  1. Вам нужно добавить float:left to .inner-square.
  2. Ваши квадраты не принимают форму, которую вы хотите, потому что у вас есть margin: 5px на .inner-square. Таким образом, ваши .inner-square ширины в настоящее время 50% + 50% + (4 * 5px). Поскольку они больше ширины вашего квадрата, второй квадрат занимает следующее свободное пространство: пространство под ним. Итак, попробуйте margin: 5px 0 и ваша проблема исчезнет.

Ответ №2

Я нашел этот код, выстроил их лучше, я бы поместил стиль в css в финальной копии tho <div class=»content-container»style=»position:absolute;»> <div class=»inner-square»><img src=»http://placehold.it/230×230″></div> <div class=»inner-square»><img src=»http://placehold.it/230×230″></div> <div class=»inner-square»style=»float:right;margin-top:-478px;»><img src=»http://placehold.it/230×230″></div> <div class=»inner-square»style=»float:right;margin-top:-239px;»><img src=»http://placehold.it/230×230″></div>
</div> <div class=»content-container»style=»position:absolute;»> <div class=»inner-square»><img src=»http://placehold.it/230×230″></div> <div class=»inner-square»><img src=»http://placehold.it/230×230″></div> <div class=»inner-square»style=»float:right;margin-top:-478px;»><img src=»http://placehold.it/230×230″></div> <div class=»inner-square»style=»float:right;margin-top:-239px;»><img src=»http://placehold.it/230×230″></div>
</div>

Оцените статью
Добавить комментарий