I\'ve built a nested flexbox grid that I\'ll be using for individual gateways. Currently, presumably due to the use of outline, the content within each container is
The simplest in this case would be to update the grid rule and either use a border
.flex-grid {
.item {
flex: 1;
min-height: 150px;
}
.item--primary, .item--secondary, .item--tertiary {
border: 2px solid white;
}
}
or a margin (fiddle)
Stack snippet
.flex-grid .item {
flex: 1;
min-height: 150px;
}
.flex-grid .item--primary,
.flex-grid .item--secondary,
.flex-grid .item--tertiary {
margin: 2px;
background: lightgray;
}
.flex-grid .item--primary {
margin-bottom: 0;
}
.flex__direction--column {
display: flex;
flex-direction: column;
-ms-flex-direction: column;
-webkit-flex-direction: column;
}
.flex__direction--row {
display: flex;
flex-direction: row;
-ms-flex-direction: row;
-webkit-flex-direction: row;
}
<!-- Product Grid -->
<div class="flex-grid">
<div class="flex__direction--column">
<div class="flex__direction--row">
<!-- Primary Gateway -->
<div class="item item--primary">
<div class="item__description">
<h3>Primary Gateway</h3>
<p>It is a long established fact that a reader will be distracted by the readable.</p>
</div>
</div>
<div class="item flex__direction--column">
<!-- Secondary Gateway -->
<div class="item item--secondary">
<div class="item__description">
<h4>Secondary Gateway</h4>
<p>It is a long established fact that a reader will be distracted by the readable.</p>
</div>
</div>
<div class="item">
<div class="flex__direction--row">
<!-- Tertiary Gateway -->
<div class="item item--tertiary">
<div class="item__description">
<h5>Tertiary Gateway</h5>
<p>It is a long established fact that a reader will be distracted by the readable.</p>
</div>
</div>
<!-- Tertiary Gateway -->
<div class="item item--tertiary">
<div class="item__description">
<h5>Tertiary Gateway</h5>
<p>It is a long established fact that a reader will be distracted by the readable.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Like LGSon said better use a border. Problem is outlines does not take space and have different shapes in different browsers. I would do:
.item {
border: 5px solid white; // or transparent
overflow-wrap: break-word;
}
or
.item {
padding: 5px;
outline: 5px solid white;
overflow-wrap: break-word;
}