Темный фон, но не внутри содержимого - React / Ioni c / CSS - PullRequest
1 голос
/ 19 апреля 2020

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

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

This is how it should look like

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

enter image description here

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

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;
}

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

Спасибо много!

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

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

{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 голосов
/ 19 апреля 2020

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

background-image: linear-gradient( rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3) ),
...