Я бы подошел к этому, используя CSS Grid. Помимо окружения каждого блока оболочкой div
, я создал несколько базовых c правил сетки. Тип сетки использует автоматическое размещение . При использовании grid-gap
дочерние элементы сетки будут иметь интервал между ними не менее 30px
. Если страница очень широкая, разрыв естественно увеличится. Надеюсь, вы сможете увидеть мощь CSS Grid для обработки макетов, подобных этой.
.item-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 30px;
…
}
Демо
fieldset.scheduler-border {
border: solid 3px #000000 !important;
padding: 10px 10px 10px 10px;
border-bottom: none;
}
legend.scheduler-border {
width: auto !important;
border: none;
font-size: 36px;
}
.item-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 30px;
padding: 0 30px 15px;
}
.item-container .item:not(:first-child) {}
<form action="">
<fieldset class="scheduler-border">
<legend class="scheduler-border"> Test </legend>
<div class="item-container">
<div class="item">
<svg width="150" height="100">
<rect width="150" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle">TEXT</text>
</svg>
</div>
<div class="item">
<svg width="150" height="100">
<rect width="150" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle">TEXT</text>
</svg>
</div>
<div class="item">
<svg width="150" height="100">
<rect width="150" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle">TEXT</text>
</svg>
</div>
<div class="item">
<svg width="150" height="100">
<rect width="150" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle">TEXT</text>
</svg>
</div>
<div class="item">
<svg width="150" height="100">
<rect width="150" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle">TEXT</text>
</svg>
</div>
</div>
</fieldset>
</form>
jsFiddle