Разделенный экран
Часть раздела Practical Frontend путешествия по HTML на Coddy — урок 29 из 35.
Макеты с разделенным экраном разделяют область просмотра на две отдельные секции, обычно расположенные рядом друг с другом. Этот паттерн эффективен для сравнения контента, демонстрации двойных тем или отделения навигации от основного содержимого.
Сначала создадим структуру HTML:
<div class="split-screen">
<div class="split-screen__left">
<h2>Left Side</h2>
<p>This is the left side content.</p>
</div>
<div class="split-screen__right">
<h2>Right Side</h2>
<p>This is the right side content.</p>
</div>
</div>Теперь давайте добавим CSS для создания нашего макета с разделенным экраном:
.split-screen {
display: flex;
flex-direction: column;
}
/* На мобильных устройствах секции располагаются вертикально */
.split-screen__left {
background-color: #f0f0f0;
}
.split-screen__right {
background-color: #e0e0e0;
}
/* На больших экранах они отображаются рядом друг с другом */
@media (min-width: 768px) {
.split-screen {
flex-direction: row;
}
.split-screen__left,
.split-screen__right {
flex: 1;
}
}Этот макет начинается как вертикальный стек на мобильных устройствах, следуя нашему подходу mobile-first. Когда ширина экрана достигает 768px или более, макет меняется на горизонтальное разделение.
Описание задачи:
Создайте адаптивный макет с разделенным экраном для демонстрации продукта. Левая сторона должна отображать информацию о продукте, а правая — изображение продукта.
Требования:
- Разделенный экран должен быть вертикальным на мобильных устройствах (ниже 768px) и горизонтальным на экранах большего размера
- Левая сторона должна иметь темный фон (#222) и белый текст
- Правая сторона должна иметь светлый фон (#f5f5f5)
- Добавьте внутренние отступы (padding) 2rem с обеих сторон
- На экранах больше 768px левая сторона должна занимать 40% ширины, а правая — 60%
Задание
ЛегкоВам дана HTML-страница с двумя разделами, стилизованными по принципу mobile-first. Ваша задача — превратить её в Split Screen Layout (макет с разделенным экраном), который хорошо смотрится на десктопе.
- На больших экранах (min-width: 768px) отображайте их бок о бок.
- Задайте левой стороне цвет фона
rgb(74, 144, 226)и цвет текстаrgb(255, 255, 255). - Задайте правой стороне цвет фона
rgb(255, 255, 255)и цвет текстаrgb(51, 51, 51).
Шпаргалка
Макеты с разделенным экраном делят область просмотра на две секции, обычно расположенные рядом. Они эффективны для сравнения контента или отделения навигации от основного содержимого.
Структура HTML:
<div class="split-screen">
<div class="split-screen__left">
<h2>Left Side</h2>
<p>This is the left side content.</p>
</div>
<div class="split-screen__right">
<h2>Right Side</h2>
<p>This is the right side content.</p>
</div>
</div>CSS для адаптивного макета с разделенным экраном:
.split-screen {
display: flex;
flex-direction: column;
}
/* Мобильные устройства: секции располагаются вертикально */
.split-screen__left {
background-color: #f0f0f0;
}
.split-screen__right {
background-color: #e0e0e0;
}
/* Большие экраны: отображение рядом */
@media (min-width: 768px) {
.split-screen {
flex-direction: row;
}
.split-screen__left,
.split-screen__right {
flex: 1;
}
}Макет начинается как вертикальный стек на мобильных устройствах, следуя подходу mobile-first, а затем меняется на горизонтальное разделение на экранах размером 768px или больше.
Попробуйте сами
<!DOCTYPE html>
<html>
<head>
<title>Split Screen Layout</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: Arial, sans-serif;
background: #f4f4f4;
}
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.left,
.right {
padding: 3rem;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
}
.left h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
}
.right h2 {
margin-bottom: 1rem;
}
form {
display: flex;
flex-direction: column;
width: 100%;
max-width: 300px;
}
input {
padding: 10px;
margin-bottom: 15px;
border: 1px solid #ccc;
border-radius: 5px;
}
button {
padding: 10px;
border: none;
background: #4a90e2;
color: white;
font-weight: bold;
border-radius: 5px;
cursor: pointer;
transition: background 0.3s;
}
button:hover {
background: #357ab7;
}
@media (min-width: 768px) {
}
</style>
</head>
<body>
<div class="container">
<div class="left">
<h1>Welcome!</h1>
<p>Discover new opportunities, connect with others, and grow with us.</p>
</div>
<div class="right">
<h2>Sign Up</h2>
<form>
<input type="text" placeholder="Your Name">
<input type="email" placeholder="Your Email">
<button type="submit">Join Now</button>
</form>
</div>
</div>
</body>
</html>
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Practical Frontend
3Темизация и визуальные стили
Темизация в CSSОсновы темного и светлого режимовАкцентные цвета и выделениеТемизация типографикиИтоговое испытание6Адаптивные паттерны
Макет «Святой Грааль»Сетка карточекМакет Sidebar + КонтентРазделенный экранSticky Header / FooterИтоговое испытание