Мне нужно затемнить фон изображения, но не его содержимое внутри, как на картинке ниже. Изображение пишется программно, поэтому я не могу иметь его URL в CSS.

Ниже как это должно выглядеть:

This is how it should look like

А теперь, как это выглядит для меня, мне нужны персонажи намного белее:

enter image description here

Я посмотрел на разные ответы, используя :: before или :: after, но, учитывая, что мое изображение отображается встроенным, оно не работает. Ниже мой код.

REACT.TSX

 {apartments.map(({ name, images, taskStatus }: any, index: number) => (
            <Link key={index} to={`/apartments/${index}`}>
              <div
                className="apartmentImage"
                style={{
                  backgroundImage: `url(${API_IMAGE}${images[0]})`,
                }}
              >
                <div
                  className="center ion-margin-top"
                  style={{ width: "100%" }}
                >
                  <h5 className="apartmentText">{name}</h5>
                </div>
                <div
                  className="center ion-margin-top"
                  style={{ width: "100%" }}
                >
                  <h6 className="subApartmentText">MALAGA</h6>
                </div>
              </div>
            </Link>
          ))}

Css:

.apartmentImage {
  width: 98%;
  margin-left: 1%;
  height: 24.7vh;
  border-radius: 10px;
  margin-top: 3%;
  margin-bottom: -1%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  filter: brightness(0.8);
}

.apartmentText {
  color: white;
  font-weight: bold;
}

Есть идеи, что делать?

Большое спасибо!

1
Nahuel Tarricone 19 Апр 2020 в 19:14

2 ответа

Ты пробовал это с css?

background-image: linear-gradient( rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3) ),
0
J.John 19 Апр 2020 в 16:20

Попробуйте следующее:

{apartments.map(({ name, images, taskStatus }: any, index: number) => (
            <Link key={index} to={`/apartments/${index}`}>
              <div
                className="apartmentImage"
                style={{
                  backgroundImage: `url(${API_IMAGE}${images[0]})`,
                }}
              >
                <div
                  className="center ion-margin-top"
                  style={{ width: "100%" }}
                >
                  <h5 className="apartmentText">{name}</h5>
                </div>
                <div
                  className="center ion-margin-top"
                  style={{ width: "100%" }}
                >
                  <h6 className="subApartmentText">MALAGA</h6>
                <div className='color-overlay'/>

                </div>
              </div>
            </Link>
          ))}

И CSS:

.apartmentImage {
  width: 98%;
  margin-left: 1%;
  height: 24.7vh;
  border-radius: 10px;
  margin-top: 3%;
  margin-bottom: -1%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;

}

.apartmentText {
  color: white;
  font-weight: bold;
}


.apartmentText, .subApartmentText {
  position: relative;
  z-index: 1;
}

.color-overlay{
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background-color: rgba(0,0,0,.3);
  pointer-events: none;
}

Я попробовал это, и это сработало для меня, но локально я сделал некоторые изменения, чтобы я мог загрузить изображение. Пожалуйста, дайте мне знать, если что-то не работает, так что я могу дважды проверить, правильно ли я скопировал весь код.

0
Enchew 19 Апр 2020 в 20:03