Создание адаптивного сайта с использованием CSS

В этом руководстве мы рассмотрим создание простого адаптивного сайта с использованием HTML и CSS. Адаптивные сайты автоматически подстраиваются под разные размеры экранов, обеспечивая удобство использования на различных устройствах, таких как смартфоны, планшеты и компьютеры.

Шаг 1: Подготовка HTML структуры

Начнем с базовой разметки HTML:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Пример адаптивного сайта с сайдбаром</title>
    <!-- Здесь будет наш CSS -->
</head>
<body>
    
    <header>
        <h1>Заголовок сайта</h1>
    </header>
    
    <nav>
        <ul>
            <li><href="#">Главная</a></li>
            <li><href="#">О нас</a></li>
            <li><href="#">Услуги</a></li>
            <li><href="#">Контакты</a></li>
        </ul>
    </nav>
    
    <div class="row">
        <div class="sidebar">
            <h2>Сайдбар</h2>
            <p>Здесь может быть информация о последних новостях, акциях или полезных ссылках.</p>
        </div>
        <div class="content">
            <p>Это основной контент страницы.</p>
        </div>
    </div>
    
    <footer>
        <p>© Пример адаптивного сайта</p>
    </footer>

</body>
</html>

Шаг 2: Добавление базовых стилей

Теперь добавим базовые стили для нашего сайта:

/* Основные стили */
* {
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
}

header {
    background-color: #4CAF50;
    color: white;
    text-align: center;
    padding: 10px;
}

nav ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #333;
}

nav li {
    float: left;
}

nav a {
    display: block;
    color: white;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
}

nav a:hover {
    background-color: #111;
}

.row {
    display: flex;
    flex-wrap: wrap;
}

.sidebar {
    flex: 30%;
    background-color: #f1f1f1;
    padding: 20px;
}

.content {
    flex: 70%;
    padding: 20px;
}

footer {
    background-color: #4CAF50;
    color: white;
    text-align: center;
    padding: 10px;
}

Шаг 3: Использование медиа-запросов для адаптации

Чтобы сделать сайт адаптивным, используем медиа-запросы:

@media only screen and (max-width: 768px) {
    /* Стили для мобильных устройств */
    nav li {
        float: none;
    }
    
    nav a {
        text-align: left;
    }
    
    .row {
        flex-direction: column;
    }
    
    .sidebar, .content {
        width: 100%;
    }
}

Пояснения

Основные стили

  1. Общий сброс стилей:
    * {
        box-sizing: border-box;
    }

    Этот стиль устанавливает поведение всех элементов таким образом, чтобы их размеры учитывали внутренние отступы и границы.

  2. Стиль для тела документа:
    body {
        font-family: Arial, sans-serif;
        margin: 0;
        padding: 0;
    }

    Устанавливает шрифт и убирает внешние отступы и поля вокруг всего документа.

  3. Стиль для заголовков и навигационного меню:
    header {
        background-color: #4CAF50;
        color: white;
        text-align: center;
        padding: 10px;
    }
    
    nav ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
        background-color: #333;
    }
    
    nav li {
        float: left;
    }
    
    nav a {
        display: block;
        color: white;
        text-align: center;
        padding: 14px 16px;
        text-decoration: none;
    }
    
    nav a:hover {
        background-color: #111;
    }

    Эти стили определяют внешний вид шапки сайта, а также пунктов меню, делая их горизонтальной панелью с белыми текстовыми ссылками на темном фоне.

  4. Макет с использованием Flexbox:
    .row {
        display: flex;
        flex-wrap: wrap;
    }
    
    .sidebar {
        flex: 30%;
        background-color: #f1f1f1;
        padding: 20px;
    }
    
    .content {
        flex: 70%;
        padding: 20px;
    }

    Flexbox позволяет легко создавать гибкие макеты. В нашем случае сайдбар занимает 30% ширины контейнера, а основной контент — 70%.

  5. Футер:
    footer {
        background-color: #4CAF50;
        color: white;
        text-align: center;
        padding: 10px;
    }

    Футер завершает страницу, предоставляя место для копирайта или другой информации.

Медиа-запросы

  1. Адаптация для мобильных устройств:
    @media only screen and (max-width: 768px) {
        /* Стили для мобильных устройств */
        nav li {
            float: none;
        }
        
        nav a {
            text-align: left;
        }
        
        .row {
            flex-direction: column;
        }
        
        .sidebar, .content {
            width: 100%;
        }
    }

    Когда ширина экрана становится менее 768 пикселей (например, на планшетах или смартфонах), пункты меню перестают располагаться горизонтально и становятся вертикальными. Сайдбар и основной контент размещаются друг под другом, занимая всю ширину экрана.

Этот пример показывает основы создания адаптивного сайта с использованием CSS. Вы можете расширить функциональность этого шаблона, добавив больше стилей и контента, а также улучшив пользовательский интерфейс для разных типов устройств.

Полный код примера:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Пример адаптивного сайта с сайдбаром</title>
    <style>
        /* Основные стили */
        * {
            box-sizing: border-box;
        }
        
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
        }
        
        header {
            background-color: #4CAF50;
            color: white;
            text-align: center;
            padding: 10px;
        }
        
        nav ul {
            list-style-type: none;
            margin: 0;
            padding: 0;
            overflow: hidden;
            background-color: #333;
        }
        
        nav li {
            float: left;
        }
        
        nav a {
            display: block;
            color: white;
            text-align: center;
            padding: 14px 16px;
            text-decoration: none;
        }
        
        nav a:hover {
            background-color: #111;
        }
        
        .row {
            display: flex;
            flex-wrap: wrap;
        }
        
        .sidebar {
            flex: 30%;
            background-color: #f1f1f1;
            padding: 20px;
        }
        
        .content {
            flex: 70%;
            padding: 20px;
        }
        
        footer {
            background-color: #4CAF50;
            color: white;
            text-align: center;
            padding: 10px;
        }
        
        @media only screen and (max-width: 768px) {
            /* Стили для мобильных устройств */
            nav li {
                float: none;
            }
            
            nav a {
                text-align: left;
            }
            
            .row {
                flex-direction: column;
            }
            
            .sidebar,
            .content {
                width: 100%;
            }
        }
    </style>
</head>
<body>
    
    <header>
        <h1>Заголовок сайта</h1>
    </header>
    
    <nav>
        <ul>
            <li><a href="#">Главная</a></li>
            <li><a href="#">О нас</a></li>
            <li><a href="#">Услуги</a></li>
            <li><a href="#">Контакты</a></li>
        </ul>
    </nav>
    
    <div class="row">
        <div class="sidebar">
            <h2>Сайдбар</h2>
            <p>Здесь может быть информация о последних новостях, акциях или полезных ссылках.</p>
        </div>
        <div class="content">
            <p>Это основной контент страницы.</p>
        </div>
    </div>
    
    <footer>
        <p>© Пример адаптивного сайта</p>
    </footer>

</body>
</html>

Добавить комментарий

Войти с помощью: