Safari отображает прозрачный линейный градиент с белым / белым цветом - PullRequest
0 голосов
/ 07 ноября 2018

Я попробовал много решений без успеха.

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

.box1 {
  border: solid 1px #ccc;
  margin: 10px;
  max-width: 500px;
  height: 40px;
  position: relative;
  font-size: 30px;
  white-space: nowrap;
  overflow: hidden;
  background-color: #2d2d2d;
  color: red;
}
.box1::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-image: linear-gradient(
    to right, rgba(255,255,255,0.01), #2d2d2d
  );
}

.box2 {
  border: solid 1px #ccc;
  margin: 10px;
  max-width: 500px;
  height: 40px;
  position: relative;
  font-size: 30px;
  white-space: nowrap;
  overflow: hidden;
  background-color: #2d2d2d;
  color: red;
}
.box2::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100px;
  background-image: linear-gradient(
    to right, rgba(255,255,255,0), #2d2d2d
  );
}

.box3 {
  border: solid 1px #ccc;
  margin: 10px;
  max-width: 500px;
  height: 40px;
  position: relative;
  font-size: 30px;
  white-space: nowrap;
  overflow: hidden;
  background-color: rgba(45,45,45,1);
  color: red;
}
.box3::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100px;
  background: linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(45,45,45,1) 100%);
}

.fade1 {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 75px;
  background: linear-gradient(
    to right, rgba(255,255,255,0), black
  );
}

.box {
  border: solid 1px #ccc;
  margin: 10px;
  max-width: 500px;
  height: 40px;
  position: relative;
  font-size: 30px;
  white-space: nowrap;
  overflow: hidden;
  background-color: black;
  color: white;
}
<div class="box1">
</div>
<div class="box2">
</div>
<div class="box3">
</div>

<div class="box">
  <span class="fade1"></span>
</div>

Также вот вам кодовая ручка для вас.

Chrome отображает его так, как я хочу, но в Safari результат не тот. Вместо прозрачного «цвета» он имеет белый или белый цвет.

enter image description here

Я знаю, что прозрачное ключевое слово имеет другое поведение в Safari, поэтому я его вообще не использую.

У вас, ребята, есть решение?

1 Ответ

0 голосов
/ 07 ноября 2018

Хорошо. Оказалось, что в Safari прозрачный цвет должен иметь тот же rgb, что и конечный цвет.

Итак:

  • если конечный цвет черный, то начальный цвет должен быть rgba (0,0,0,0)
  • если конечный цвет красный, то начальный цвет должен быть rgba (255,0,0,0)

.fade1 {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 75px;
  background: linear-gradient(
    to right, rgba(0,0,0,0), black
  );
}

.box {
  border: solid 1px #ccc;
  margin: 10px;
  max-width: 500px;
  height: 40px;
  position: relative;
  font-size: 30px;
  white-space: nowrap;
  overflow: hidden;
  background-color: black;
  color: white;
}
<div class="box">
  adsfasdfsdafasdfdasfdasfasdfdasfdasfdsfdasf
  <span class="fade1"></span>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...