Chrome рендерит частичные пиксели, когда свойство background-clip установлено в content-box - PullRequest
1 голос
/ 30 апреля 2019

У меня есть веб-сайт, который использует основную сетку, поэтому некоторые ширины основаны на процентах, а контент также центрируется по ширине экрана, что означает, что некоторые вещи не совсем совпадают с пиксельной сеткой.Это никогда не было проблемой до сих пор.Я бы сказал, что около месяца назад я заметил, что в Chrome ТОЛЬКО я вижу очень тонкие линии (менее одного пикселя) шириной, где соединены два процентных контейнера.Смотрите здесь: enter image description here

Обновление:

Мне было отмечено в комментариях, что это вызвано background-clipсвойство установлено в поле содержимого столбцов.Смотрите эту скрипку - https://jsfiddle.net/odpv8jgx/

Вы можете видеть синий фон между двумя контейнерами.Я все еще поддерживаю тот факт, что это не было проблемой несколько недель назад, поэтому что-то должно было измениться в Chrome.Так это ошибка?Я сообщил об этом на хроме https://bugs.chromium.org/p/chromium/issues/detail?id=957946

.row{
  background-color: blue;
  max-width: 300px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

.left{
  flex-basis: 33.3333%;
  background-color: orange;
  padding-left: 5px;
}

.right{
  flex-basis: 66.66666%;
  background-color: green;
  padding-right: 5px;
}

.left,
.right{
  background-clip: content-box;
  height: 500px;
}
<div class="row">
  <div class="left">
    a
  </div>
  <div class="right">
    b
  </div>
</div>

Исходные данные

Теперь в CSS есть 0 отступов, полей и границ для столбцов.И если я проверю одну и ту же страницу в IE, Edge, Firefox и Opera, этот пробел там никогда не появится.Так что мне действительно кажется, что chrome начал относиться к этому по-другому, чем к другим браузерам.Я также заметил, что если я начну вручную изменять ширину браузера Chromes, разрыв будет полностью исчезать для некоторых результатов, что мне кажется, когда браузеру удается идеально выровнять оба контейнера в пиксельной сетке, разрыв не создается.У меня даже было это на вертикальной оси, см. Здесь

enter image description here

Опять же, несмотря на отсутствие полей CSS / отступ / границы есть крошечныйпробел в некоторых разрешениях между контейнерами, и поскольку их родительский контейнер имеет синий фон, между ними отображается фон.Это также происходит только в Chrome.

Есть ли способ избежать этого?Или это просто какой-то плохой код, который они выпустили, и он будет удален в будущих версиях?

Вот ссылка на страницу, которая получает пробел по горизонтальной оси https://www.idc.com/getdoc.jsp?containerId=lcEUR145039919

1 Ответ

1 голос
/ 17 мая 2019

Моя заявленная ошибка была принята разработчиками Chrome. Это уже назначено кому-то для исправления.

https://bugs.chromium.org/p/chromium/issues/detail?id=957946

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...