Это может быть реализовано с помощью JavaScript (или его фреймворков, таких как Vue.js, React.js, Angular и т.д.), где состояние каждого чекбокса можно контролировать, и в зависимости от этого состояния, на страницу добавляться соответствующий блок с тарифом. В рамках чистого JavaScript вы можете использовать метод `querySelector` для нахождения элементов и `addEventListener` для отслеживания событий изменения состояния чекбоксов.
Ниже пример простой реализации на чистом JavaScript:
HTML:
```html
<div id="tariffs">
<!-- Тариф 1 -->
<label>
<input type="checkbox" name="tariff" value="big" class="tariff-checkbox"> Тариф Большой
</label>
<!-- Тариф 2 -->
<label>
<input type="checkbox" name="tariff" value="small" class="tariff-checkbox"> Тариф Маленький
</label>
</div>
<div id="selected-tariffs"></div>
```
CSS:
```css
.tariff-big {
/* Стили для большого блока тарифа */
width: 300px;
height: 200px;
background-color: #cae8ca;
margin-bottom: 10px;
}
.tariff-small {
/* Стили для маленького блока тарифа */
width: 200px;
height: 150px;
background-color: #ececec;
margin-bottom: 10px;
}
```
JavaScript:
```javascript
document.querySelectorAll('.tariff-checkbox').forEach(function(checkbox) {
checkbox.addEventListener('change', function() {
updateSelectedTariffs();
});
});
function updateSelectedTariffs() {
const selectedTariffs = document.getElementById('selected-tariffs');
selectedTariffs.innerHTML = ''; // Очистить текущие выбранные тарифы
document.querySelectorAll('.tariff-checkbox:checked').forEach(function(checkbox) {
const tariffType = checkbox.value;
const div = document.createElement('div');
if (tariffType === 'big') {
div.className = 'tariff-big';
div.innerHTML = 'Большой тариф';
} else if (tariffType === 'small') {
div.className = 'tariff-small';
div.innerHTML = 'Маленький тариф';
}
selectedTariffs.appendChild(div);
});
}
```
Данный пример добавляет новый блок в зависимости от выбранных чекбоксов и создает его с соответствующими стилями для большого или маленького тарифа.
Здесь же стоит обратить внимание, что если вы используете чекбоксы для единственного выбора, возможно вам подойдет использовать `radio` кнопки, так как они предназначены для выбора одного варианта из множества, и управлять ими будет проще с точки зрения логики.
Конечно, если проект комплексный, вы можете рассмотреть использование фреймворков для создания динамических пользовательских интерфейсов. Их использование может сильно упростить работу со сложным состоянием и повторяющимися элементами.