@wether_report

Как лучше сверстать картинку под наезжающим на неё текстом? Через свойство background или через абсолютное позиционирование?

Начал изучать вёрстку и передо мной, в качестве тренировки, встал вот такой блок 63b73449f3b7d773408140.png. Как вы видите, текст налезает на экран. Я тут вижу два способа разместить картинку через background с заданием background-position или через абсолютное позиционирование. Я сделал изначально через
background: background: #fff url(woman_bg.png) 100px bottom no-repeat;

Секция с фоном в контейнере, значит позиционировать надо, исходя от body, как я понял. Не знаю уж правильно или нет. В макете расстояние от края до картинки 150px, но если я их выставляю вместо 100px, то совсем непохоже на мой макет выходит, это из-за того что мой экран меньше? Для медиа запросов сделал так:

@media (max-width: 1140px) {
    .section-1.descr{
        background: #fff url(woman_bg.png) 0 bottom no-repeat;
    }
}

Учитывая дальнейшую адаптацию и, допустим, будущем замену картинки с бэка что лучше сделать картинку и через абсолютное позиционирование расположить под текстом или как я сделал, может другие актуальные методы есть?

Вот как у меня вышло:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css">
    <link rel="stylesheet" href="main.css">
</head>
<body> 
    <main>
        <section class="section-1 descr">
            <div class="dark-wrapper">
                <div class="conteiner">
                    <div class="descr_content">
                        <div class="descr_text">
                            <h2 class="descr_title">Header Header Header Header Header Header Header</h2>
                            <p class="descr_paragrath-1">Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe, maxime dicta. Quis deserunt eum quas facere impedit eaque! Voluptates sequi, nihil laboriosam atque quas molestias molestiae quaerat voluptatem architecto velit!</p>
                            <p class="descr_paragrath-2">Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe, maxime dicta. Quis deserunt eum quas facere impedit eaque! Voluptates sequi, nihil laboriosam atque quas molestias molestiae quaerat voluptatem architecto velit!</p>
                            <p class="descr_paragrath-3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe, maxime dicta. Quis deserunt eum quas facere impedit eaque! Voluptates sequi, nihil laboriosam atque quas molestias molestiae quaerat voluptatem architecto velit!</p>
                            <p class="descr_paragrath-4">Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe, maxime dicta.</p>
                        </div>
                    </div>
                 </div>
            </div>
        </section>
    </main>
</body>
</html>


.section-1.descr{
    background: #fff url(woman_bg.png) 100px bottom no-repeat;
}

.conteiner{
    max-width: 1140px;
    padding: 0px 20px;
    margin: 0 auto;
}

.descr_content{
    padding: 108px 0px 106px 0px;
    display: flex;
    justify-content: flex-end;
}

.descr_text{
    max-width: 750px;
    width: 60%;
}

h2{
    margin-bottom: 25px;
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 900;
    font-size: 25px;
    line-height: 30px;
    text-transform: uppercase;
    color: #299CBD;
}

p{
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 300;
    font-size: 17px;
    line-height: 27px;
    margin-top: 15px;
    margin-bottom: 15px;
}

.descr_text p:last-of-type{
    font-weight: bold;
    margin-bottom: 0;
}

.descr_text p:first-of-type{
    margin-top: 0;
}

@media (max-width: 1140px) {
    .section-1.descr{
        background: #fff url(woman_bg.png) 0 bottom no-repeat;
    }
    .descr_content{
        padding: 20px 0px 20px 0px;
        justify-content: center;
    }

    .descr_text{
        max-width: 750px;
        width: 100%;

    }
    .dark-wrapper{
        background-color: rgba(0,0,0,0.18);
    }
}

63b738e84897c911407231.png
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 3
@luxurypluxury
Как минимум дайте бэкграунду background-size: cover и background-position: center
Ответ написан
thewind
@thewind
php программист, front / backend developer
Тут надо делать так:
1. Блок на всю ширину и ему фон woman
2. Внутри первого блока - блок с текстом на 50% ширины, начинается с середины
3. У основного (первого) блока добавить max-width:100%; width:{ширина макета}

Итого получим: фон будет под текстом, текст всегда занимает половину и начинается с середины экрана.

Далее прикрепляем адаптив: если экран меньше, чем Х, то блок с текстом ставим либо от левого края (а не от середины) либо убираем фон и текст тоже от левого края.
Ответ написан
sharp97
@sharp97
не фонтан но брызги есть
Просто абсолютом тётю туш-то мало ли надо будет в перспективе её как-то двигать / анимировать что-то менять на её месте , удобный варик тетя абсолютом не бэкграундом а img , также можешь погуглить что такое webp и тег picture
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы