<form>
<fieldset>
<label class="active">
<input type="radio" name="class" value="container--one" class="radio" checked="checked">
<code>stretch</code>
<small>(default)</small>
</label>
<label>
<input type="radio" name="class" value="container--two" class="radio">
<code>end</code>
</label>
<label>
<input type="radio" name="class" value="container--three" class="radio">
<code>left</code>
</label>
<label>
<input type="radio" name="class" value="container--four" class="radio">
<code>center</code>
</label>
</fieldset>
</form>
<div class="container container--one" id="container">
<div class="item item--1">
Item 1
</div>
<div class="item item--2">
Item 2
</div>
<div class="item item--3">
Item 3
</div>
</div>
.container--one {
justify-items: stretch;
}
.container--two {
justify-items: end;
}
.container--three {
justify-items: left;
}
.container--four {
justify-items: center;
}
/* ETC (Formatting only): */
body {
margin: 1.5em;
font-size: 130%;
font-family: sans-serif;
background: #F2F0EC;
color: #2E2C08;
}
.container {
border: 10px solid #2E2C08;
background: white;
padding: 1rem;
}
.item {
margin: 0.25rem;
padding: 0.5em;
text-align: center;
background: #e5e3de;
font-weight: bold;
}
fieldset {
border: #abab9d 1px solid;
padding: 0;
margin-bottom: 2em;
}
label {
display: inline-block;
padding: 0.5em;
cursor: pointer;
}
.active {
background: #abab9d;
}
/* This pen styling */
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
height: 10em;
}
.item {
padding: 1em;
text-align: center;
height: 5em;
min-width: 5em;
}
var radios = document.querySelectorAll('.radio');
var container = document.getElementById('container');
radios.forEach(function(i){
i.addEventListener('click', function(el){
var clicked = el.currentTarget;
var active = clicked.parentElement.parentElement.querySelector('.active');
active && active.classList.remove('active');
clicked.parentElement.classList.add('active');
container.className = 'container '+clicked.value;
});
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.