Фиксированная ширина div слева, заполните оставшуюся ширину div справа
Мне нужен div с изображением фиксированной ширины слева и div с переменной шириной с цветом фона, который должен увеличить его ширину на 100% на моем устройстве. Я не могу остановить второй div от переполнения моего фиксированного div.
Когда я добавляю переполнение: скрытый в переменной ширине 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
затем ведет себя как требуется.
Смотрите это jsfiddle.
С использованием 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>
css стал намного более продвинутым и отвечает с помощью этого продвинутого css, только если он может быть кому-то полезен:)