Chrome / WebKit создает сплошную полосу при использовании фона, границ радиуса и верхних / нижних границ - PullRequest
8 голосов
/ 28 марта 2012

Google Chrome работает с ошибками, используя радиус границы, цвет фона, а также верхнюю и нижнюю границы.Вот свидетельство и код для воспроизведения:

enter image description here

http://jsfiddle.net/6ADtd/4/

<div></div>​

div {
  background:blue;
  border-top:10px solid red;
  border-bottom:10px solid red;
  border-radius:20px 20px 0 0;
  height:100px;
  /*
  border-right:1px solid transparent;
  */
}

border-right:1px solid transparent; - это трюк, предложенный в комментариях, который помог удалить нежелательную среднюю сплошную полосу, но когда вы измените размер окна / браузера - он появится снова.Это как-то связано с близостью элемента к краю окна браузера, я не совсем понимаю.Вы должны изменить размер, а затем навести курсор на элемент иногда.Видео с моего рабочего стола:

Я попробовал -webkit- префиксы в нескольких свойствах и не смог исправить это.

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

Идеальное решение - с помощью CSS, поэтому я могу написать один или два селектора в CSSфайл для исправления вместо того, чтобы копаться в загружаемых файлах шаблонов и в базе данных для применения div-wrap или других исправлений разметки.Кто-нибудь знает какие-нибудь хитрости, чтобы избавиться от этой ошибки?

Ответы [ 3 ]

2 голосов
/ 06 апреля 2012

На момент моего изучения этого вопроса все еще существовала проблема на веб-сайте продукта , видимая при изменении размера браузера для принудительной горизонтальной прокрутки документа:

fits horizontally - no defect scrolls horizontally - visible defect

«Решением», которое я использовал, было применение обоих

border-left:1px solid transparent;
border-right:1px solid transparent;

к #header с инструментами разработчика - это, кажется, заставляет проблему исчезать независимо от изменения размера,по крайней мере, на Mac Chrome 18.

Мне кажется, что это некорректное поведение - я бы предположил, что это будет как-то связано со смешивающимися углами в местах пересечения цветов, которые из-за ошибки в конечном итоге перетекают всам элемент.

Я попытался, довольно бесплодно, изучить возможную связь между радиусом границы, превышающим ширину границы, вызывающую такое поведение.Это, конечно, не соответствует действительности - игра с разными x- / y-радиусами не дала никаких результатов без применения "решения" из вышеприведенного.Приятно знать, я думаю.

1 голос
/ 05 апреля 2012

Я никогда не видел такого поведения в Chrome, действительно очень глючит.В любом случае, вы можете избавиться от границы дна, и она будет работать нормально.Если возможно, просто добавьте <div> с красным фоном внизу.Примерно так:

http://jsfiddle.net/6ADtd/5/

Или решение только для CSS, добавьте контент после div:

http://jsfiddle.net/Cthulhu/6ADtd/6/

1 голос
/ 30 марта 2012

Извините, я немного ленился с моим первоначальным ответом.

Как насчет обёртывания div со свойствами границы вокруг заголовка со скрытым переполнением: http://jsfiddle.net/jugularkill/Jsdcz/

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