Задать вопрос
@oksana_melikhova

Как лучше всего реализовать данный фон?

Здравствуйте. Есть такая картинка, извлечённая из макета:
687569cb9ee3a139342935.png
Как её лучше всего реализовать в качестве фона в данном макете?
68756a1b9a9eb581973385.jpeg

Псевдоэлемент приходится подгонять постоянно, т.к. "съезжает" словно бы в сторону
  • Вопрос задан
  • 227 просмотров
Подписаться 2 Простой 8 комментариев
Решения вопроса 1
Ankhena
@Ankhena Куратор тега CSS
Нежно люблю верстку
Старайтесь разделять смысл (разметку), украшения (стили) и поведение (скрипты).
Кодгайд гугла
Критерии верстки для первокурсников

У фигуры довольно странные правый и верхний края. Либо древний макет либо косяк дизайнера.
А полная резина, судя по этому куску макета, тоже не предусматривается.

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

Самый простой вариант: задаем фон для body и дорисовываем направо градиент.
https://codepen.io/AnnaSummer/pen/WbQwNrE
фон

background:
  url(https://habrastorage.org/webt/68/75/69/687569cb9ee3a139342935.png) no-repeat top -100px left calc(50% + var(--container-width)/2 - 330px), 
   #ffffff  linear-gradient(#fff1da,  #fff1da) no-repeat top right / calc(50% - var(--container-width)/2) 773px;

Тут использована ваша png. Если пятно берем отдельно, то экспортируем в svg, если слепляем с девушкой то png и image-set. Но может получиться сложнее с размерами.
--container-width - ширина контейнера.
Сдвиги - взяты с потолка, берите или вычисляйте из макета.
Вместо дурацких компенсирующих сдвигов, я бы обрезала эту SVG до нужных размеров. Аналогичный эффект должен дать экспорт с включенной галкой clip content на нужном фрейме.

В адаптиве перестраиваем по макету.

Альтернативный вариант: использование псевдоэлементов в возможном сочетании с абсолютом, трансформом, гридами и единицами от контейнера. Но без ТЗ для широких мониторов, можно только угадывать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Psychosynthesis
@Psychosynthesis
Fullstack developer and radio engineer
Просто блок в начале body с position fixed прибитый справа вверху.
Поиграться с background-size. Ну и не забыть указать background-position и z-index (у остальных элементов, очевидно z-index должен быть выше).

Что-то в духе:
.block {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  background-size: 30%;
  background-position: top right;
  z-index: 0;
}


Тут в комментариях советуют псевдо-элементы для этого использовать: так делать не надо, не повторяйте плохую практику. Там же в каментах разжёвано почему. Вкратце — псевдоэлементы это полезная штука, но делать на них абсолютно все бэкграунды это шизофрения, а чревато это например тем, что половина юзеров будут видеть ваш сайт не так как вы. Нюансов там в разы больше чем у абсолютного позиционирования и z-index.
Ответ написан
Ваш ответ на вопрос

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

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