Цвет фона за пределами заголовка

Цвет фона моего заголовка выходит за пределы страницы. Мне интересно, как настроить его ширину, чтобы он автоматически заполнял любой размер экрана без переполнения. Я предполагаю, что это как-то связано с моим свойством ширины в «белом» классе или потому, что оно находится внутри контейнера. В основном это вызывает горизонтальную прокрутку из-за расширения цвета фона, вместо того, чтобы просто останавливаться на 100% ширине страницы. Я ценю любую помощь, которую я получаю в этом, большое спасибо.

    .white {
        background-color: #fff;
        position: relative;
    }
    
    .white:before {
        content: "";
        background-color: #fff;
        position: absolute;
        height: 100%;
        width: 200vw;
        left: -100vw;
        z-index: -1;
    }
  <div class = "container">
        <nav class = "navbar navbar-light navbar-expand-lg white row">
            <button class = "navbar-toggler" type = "button" data-toggle = "collapse" data-target = "#navbarTogglerDemo01" aria-controls = "navbarTogglerDemo01"
                aria-expanded = "false" aria-label = "Toggle navigation">
                <span class = "navbar-toggler-icon"></span>
            </button>

            <div class = "collapse navbar-collapse" id = "navbarTogglerDemo01">
                <!-- Logo -->
                <div class = "logo">
                    <a href = "#" class = "navbar-brand">
                        <img src = "{% static 'accounts/logo/logo.png' %}" height = "40" width = "40">
                    </a>
                </div>

                <!-- Search Box -->
                <div class = "search_wrapper">
                    <input type = "text" placeholder = "Search" class = "search_input">
                    <button class = "search_button">&#128269;</button>
                </div>

                <!-- Nav List -->
                <ul class = "navbar-nav ml-auto">
                    <span class = "middle">
                        <li class = "nav-item">
                            <a href = "#" class = "nav-link">
                                <img src = "{% static 'accounts/blah/blah.png' %}" height = "20" width = "20" id = "home"> Random
                            </a>
                        </li>
                        <li class = "nav-item">
                            <a href = "#" class = "nav-link">
                                <img src = "{% static 'accounts/blah/blah.png' %}" height = "20" width = "20" id = "lessons"> Random
                            </a>
                        </li>
                        <li class = "nav-item">
                            <a href = "#" class = "nav-link">
                                <img src = "{% static 'accounts/blah/blah.png' %}" height = "30" width = "30" id = "teacher"> Random
                            </a>
                        </li>
                        <li class = "nav-item">
                            <a href = "#" class = "nav-link">
                                <img src = "{% static 'accounts/icons/blue.png' %}" height = "20" width = "30" id = "msg"> Random
                            </a>
                        </li>
                    </span>

                    <!-- Avatar Dropdown -->
                    <span class = "right">
                        <li class = "nav-item dropdown">
                            <a class = "nav-link dropdown-toggle" href = "#" id = "navbarDropdown" role = "button" data-toggle = "dropdown" aria-haspopup = "true"
                                aria-expanded = "false">
                                <img src = "{% static 'accounts/blah/blah.png' %}" height = "30" width = "25"> Blah
                            </a>
                            <div class = "dropdown-menu" aria-labelledby = "navbarDropdown">
                                <a class = "dropdown-item" href = "#">Random</a>
                                <a class = "dropdown-item" href = "#">Random</a>
                                <a class = "dropdown-item" href = "#">Random</a>
                                <div class = "dropdown-divider"></div>
                                <a class = "dropdown-item" href = "#">Random</a>
                            </div>
                        </li>
                    </span>
                </ul>
            </div>

        </nav>
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
104
2

Ответы 2

Это ванильный CSS без начальной загрузки, поскольку это то, что я использую. Я не могу гарантировать, что это работает с начальной загрузкой.

Вы пытаетесь использовать

width: 200vw;

поскольку 1vw относится к 1% ширины области просмотра, вы даете своему контенту ширину, в 2 раза превышающую ширину окна просмотра.

width: 100vw;
margin: 0;
padding: 0;

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

Вот небольшая закуска для юнитов. https://www.w3schools.com/cssref/css_units.asp


Вы также можете попробовать отрицательную маржу:

.white {
    background-color: #343434;
    position: relative;
    width:100vw;
    margin: -10px;
}

должно хорошо работать для вас кодовое слово: https://codepen.io/ironlors/pen/bjYOpQ

Не работает. Цвет фона больше не переполняется; однако он останавливается, не достигнув 100% ширины страницы.

user9948622 29.07.2018 18:42

вы проверяли наличие полей или отступов справа / слева?

Ironlors 29.07.2018 18:43

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

user9948622 29.07.2018 18:50

добавили идею об отрицательной марже в ответ

Ironlors 29.07.2018 18:55

Не исправил. Слегка сдвинул заголовок влево и вверх.

user9948622 29.07.2018 19:01

Мне очень жаль, похоже, я не понимаю проблемы. Вы хотите избавиться от пробелов до и после заголовка, верно? И эта горизонтальная прокрутка должна исчезнуть. Я просто не могу понять вопрос. Поскольку width:100vw; в сочетании с удалением отступов / полей должен решить эту проблему. Может быть, скриншот или код всей веб-страницы тоже мне подойдут.

Ironlors 29.07.2018 19:11

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

user9948622 29.07.2018 19:14

хорошо, тогда я бы снова просто использовал ´margin-left: -8px; ´ и padding-left:8px; в заголовке. Это расширяет фон на 8 пикселей влево (поле <body> по умолчанию), сохраняя при этом контент на том же месте.

Ironlors 29.07.2018 19:18

Используйте <div class = "container-fluid"> вместо <div class = "container">

Я не хочу, чтобы моя страница полностью расширялась в зависимости от размера экрана, это может вызвать проблемы для экранов 4k или больших размеров. Кроме того, я не хочу, чтобы сайт выглядел эстетично. Я хочу, чтобы весь контент был таким, какой он есть, но только цвет фона навигационной панели расширялся до полного размера.

user9948622 29.07.2018 18:51

В этом случае добавьте контейнер внутри тегов nav.

Binayak Ghosh 29.07.2018 18:54

Это закроет контейнер, когда закончится навигация. Я хочу, чтобы контейнер продолжал структуру с содержимым моего тела за пределами <nav>.

user9948622 29.07.2018 19:01

Используйте другой контейнер для остальной части страницы. Поскольку к ним применяются одни и те же правила css, размер будет соответствовать размеру контейнера nav.

Binayak Ghosh 29.07.2018 19:05

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

user9948622 29.07.2018 19:08

Другие вопросы по теме