Когда вы применяете border-radius
к элементу в Google Chrome, я заметил, что все углы получают тонкий округленный угол в 1px, даже если для определенных углов задано значение 0px.
Учитывайте следующее:
.box { float: left; margin: 5px; width: 25px; height: 25px; border: 1px solid #888; }
.box1 { border-radius: 0; }
.box2 { border-radius: 1px; }
.box3 { border-radius: 0 0 5px 5px; }
<div class="box box1"></div>
<div class="box box2"></div>
<div class="box box3"></div>
Первые два поля являются элементами управления для этого эксперимента;как и следовало ожидать, прямоугольник № 1 имеет красивые острые углы, а прямоугольник № 2 имеет тонкие закругленные углы в 1 пиксель.Пока все хорошо.
Странно то, что прямоугольник № 3 также имеет закругленные углы в 1 пиксель сверху , несмотря на то, что значение его радиуса границы равно 0 0 5px 5px
.Если вы посмотрите на вычисленные значения в инструментах разработчика, то border-top-left-radius
и border-top-right-radius
правильно настроены на 0px, но они отрисовываются так, как будто они установлены на 1px.
Вам нужен орлиный глазчтобы увидеть это, но это определенно есть.Вот скриншот страницы в Chrome, которую я увеличил с помощью Photoshop, чтобы ее было легче увидеть:
Обратите внимание, что верхние углы на рамке № 3более мягкий / белый серый, чем остальная часть границы.Они идентичны закругленным углам в 1px поля №2, даже если они установлены в 0px.
Почему Chrome делает это и как я могу предотвратить это?
Длязапись, я нахожусь на Windows 10, и я использую последнюю версию Chrome (v74.0.3729.108).Проблема существует только в Chrome, а не в Firefox или Edge.Я не уверен, что это проблема WebKit или что-то специфическое для Chrome / PC.