Фиксированная ширина div слева, заполните оставшуюся ширину div справа
Я хочу div с фиксированным размером изображения слева и переменной ширины div с цветом фона, который должен увеличивать его ширину на 100% на моем устройстве.
Я не могу остановить второй div от переполнения моего фиксированного div.
Когда я добавляю переполнение: скрытый в переменной width div, он просто подпрыгивает под фотографией в следующей строке.
Как я могу исправить это правильно (т.е. без хаков или маркеров слева, так как мне нужно будет реагировать на сайт позже с помощью медиа-запросов, и мне нужно изменить изображение с другими изображениями разрешения для каждого устройства)?
- начинающий веб-дизайнер пытается решить ужас откликающихся веб-сайтов -
HTML:
<div class="header"></div>
<div class="header-right"></div>
CSS
.header{
float:left;
background-image: url('img/header.png');
background-repeat: no-repeat;
width: 240px;
height: 100px;
}
.header-right{
float:left;
overflow:hidden;
background-color:#000;
width: 100%;
height: 100px;
}
Ответы
Ответ 1
Попробуйте удалить float:left
и width:100%
из .header-right
- тогда правый div
будет вести себя как требуется.
.header {
float: left;
background: #efefef;
background-repeat: no-repeat;
width: 240px;
height: 100px;
}
.header-right {
overflow: hidden;
background-color: #000;
height: 100px;
}
<div class="header"></div>
<div class="header-right"></div>
Ответ 2
с помощью css grid
вы можете добиться этого легче
- вам нужно обернуть эти div в оболочку, скажем,
parent
- дать
.parent
display: grid
- дать
grid-template-areas
в .parent
и grid-area
в обоих
children
- нет необходимости использовать
float: left
в обоих children
отрегулируйте ширину левого div, используя grid-template-columns
в .parent
.parent {
display: grid;
grid-template-columns: 240px 1fr;
grid-template-rows: auto 1fr;
grid-template-areas: "header-left header-right";
}
.header {
background-image: url(img/header.png);
background-color: #ebebeb;
background-repeat: no-repeat;
height: 100px;
grid-area: header-left;
}
.header-right {
overflow: hidden;
background-color: #000;
width: 100%;
height: 100px;
grid-area: header-right;
}
<div class="parent">
<div class="header"></div>
<div class="header-right"></div>
</div>