Фоновое изображение и радиальный градиент на отзывчивом элементе?

Это изображение используется:

Это моя реализация с использованием Vue.js, Bootstrap и CSS:

Шаблон

<div class = "landing">
  <div class = "container text-white details h-100">
    <div class = "row h-100">
      <div class = "col-12 col-md-7 my-auto">
        <h1 class = "text-left mb-0 font-weight-900 font-48">
          About the Alien Zoo experience
        </h1>
        <p class = "text-left mb-0 font-16">
          Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
          nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
          erat, sed diam voluptua. At vero eos et accusam et justo duo
          dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
          sanctus est Lorem ipsum
        </p>
        <CustomButton
          class = "d-block"
          buttonText = "Next"
          @click.native = "onButtonClick()"
          ></CustomButton>
      </div>
    </div>
  </div>
  <div class = "row hero-image">
    <img class = "background" src = "../assets/images/Alien.png" alt = "" />
  </div>
</div>

СКСС

.landing {
  position: relative;
  height: 100vh; // background-color: #151515;
  overflow-x: hidden;
  .hero-image {
    position: relative;
    left: 28%;
    width: 100%;
    size: cover;
  }
  .hero-image:after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 30vh;
    height: 100vh;
    background: linear-gradient( 93deg, rgba(21, 21, 21, 1) 10%, rgba(0, 0, 0, 0) 50%);
    /* W3C */
  }
  p {
    padding-top: 32px;
    padding-bottom: 32px;
  }
  .details {
    position: absolute;
    z-index: 2;
    padding-left: 12%;
  }
  .background {
    display: block;
    height: 100vh;
    width: 100vw;
  }
}
.mobile-alien {
  display: none;
}
@media only screen and (max-width: 768px) {
  .landing {
    display: none;
  }
  .mobile-alien {
    display: block;
  }
}
@media only screen and (min-width: 1900px) {
  .landing .details {
    right: 50%;
  }
}

Мой обходной путь для этого — сделать фоновое изображение обычным тегом изображения и использовать :after в теге изображения для градиента. Используя абсолютные и относительные значения, он также остается отзывчивым, но я не думаю, что это правильный путь.

Само изображение, которое я использую, не имеет градиента. Поэтому я применил линейный градиент с помощью css. Но я думаю, что здесь я должен использовать радиальный градиент, так как углы изображений также должны стать черными (этот вид черного # 151515). У меня нет опыта работы с градиентами, все, что я пробовал с радиальным, не сработало. Используя вышеприведенный css, я смог достичь приличной степени, но это не похоже на то, что это самое лучшее.

Цвет фона страницы — #151515, и, как вы можете видеть, я должен сгладить его влево с помощью градиента.

Любая помощь будет оценена по достоинству. Спасибо.

Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
Раскрытие чувствительных данных
Раскрытие чувствительных данных
Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не...
Разница между тегами Br и Wbr в HTML 5
Разница между тегами Br и Wbr в HTML 5
В целом, оба тега <br> и <wbr> имеют свои уникальные цели и функциональные возможности, и их использование зависит от конкретных требований к дизайну...
HTML И VS CODE Для Веб-разработки
HTML И VS CODE Для Веб-разработки
Прежде чем начать кодировать html в "VS CODE", мы должны сначала создать папку и назвать ее x.html, здесь я принимаю x как имя файла, который мы...
Как использовать WAI-ARIA
Как использовать WAI-ARIA
В моем текущем новом проекте почти все компоненты не учитывают веб-доступность. Моя нынешняя компания - это стартап, поэтому они не заботились о...
Статическая веб-страница, созданная с помощью CSS и HTML - до и не до.
Статическая веб-страница, созданная с помощью CSS и HTML - до и не до.
Я потратил некоторое время на создание своего сайта-портфолио. Затем, гордясь собой, я разместил свой код на серверах amazon. Мне потребовалось время,...
1
0
1 000
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

С помощью CSS background-image вы можете указать несколько слоев для одного элемента по убыванию z-index. Используйте запятую для разделения слоев, один для градиента и один для изображения:

.bg {
  background-image:
    radial-gradient(circle, rgba(0, 0, 0, 0) 25%, rgba(24, 24, 24, 1) 75%),
    url(https://i.stack.imgur.com/piK6l.jpg);
}

В вашем примере и изображение, и радиальный градиент сдвигаются вправо, что вы можете сделать с другим списком, разделенным запятыми, для background-position:

background-position: 200px, 200px;

Это оставит пустое пространство, которое вы хотите сделать серым, поэтому укажите background-color для этого пространства:

background-color: rgba(24, 24, 24, 1);

Вот демо:

#app {
  width: 100%;
  height: 400px;
  color: white;
}
.bg {
  width: 100%;
  height: 100%;
  background-color: rgba(24, 24, 24, 1);
  background-image:
    radial-gradient(circle, rgba(0, 0, 0, 0) 25%, rgba(24, 24, 24, 1) 75%),
    url(https://i.stack.imgur.com/piK6l.jpg);
  background-position: 200px, 200px;
  background-repeat: no-repeat;
  background-size: cover;  
}
<div id = "app">
  <div class = "bg">My Content</div>
</div>

ты замечательный. Ценить это!!

manb 21.12.2020 14:53

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