Проблема с отрисовкой стрелок CSS в Firefox

Контекст

Я сделал всплывающую подсказку на чистом CSS с псевдоэлементами :before и :after для стрелки.

Рендеринг отличается от Chrome 16 до Firefox 9 и 10.

Вы видите, что не так?

Скриншот Chrome

введите здесь описание изображения

Скриншот Firefox

введите здесь описание изображения

Демо

http://jsfiddle.net/wDff8/ воспроизводит ту же проблему.

Код

html:

<span class="tooltip">Déposez votre fichier dans ce dossier</span>

css:

span.tooltip {
  display: inline-block;
  background: #eee;
  margin-left: 20px;
  padding: 0 10px;
  color: #111;
  border-radius: 2px;
  border-top: 1px solid #bbb;
  border-right: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
  line-height: 1.5;
  position: relative;
}

span.tooltip:before {
  content:"";
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 10px;
  border-color: transparent #eee transparent transparent;
  left: -18px;
  top: -1px;
  z-index: 1;
}

span.tooltip:after {
  content:"";
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 11px;
  border-color: transparent #bbb transparent transparent;
  left: -21px;
  top: -2px;
  z-index: 0;
}

body {
    font-family: Georgia;
    font-size: 12px;
    letter-spacing: 1px;
}

person GG.    schedule 01.02.2012    source источник
comment
В Firefox 9 и Chrome 16 на Mac я не вижу проблемы на ваших снимках экрана (то есть более толстой стрелки). Какие версии вы используете?   -  person Paul D. Waite    schedule 01.02.2012
comment
Ваш html и CSS не соответствуют вашему скриншоту (иконка на скриншоте отсутствует). Вы уверены, что вставили правильную версию проблемного кода?   -  person Mr Lister    schedule 01.02.2012
comment
@PaulD.Waite: Chrome 16 и Fx 9/10 в Windows. jsfiddle.net/wDff8 воспроизводит ту же проблему.   -  person GG.    schedule 01.02.2012
comment
@MrLister: я добавил CSS для тела.   -  person GG.    schedule 01.02.2012
comment
@ГАРАНТИРОВАННАЯ ПОБЕДА. ура для Fiddle, отличный материал. Хм — мне все еще кажется, что на Mac все в порядке, хотя, если я настрою значения border-width, я могу получить некоторое утолщение. Вы не увеличили масштаб в Firefox, не так ли? Увеличение масштаба, похоже, производит эффект, как на скриншоте Firefox.   -  person Paul D. Waite    schedule 01.02.2012
comment
Я посмотрел на Mac коллеги: рендеринг отличается в Chrome, Firefox и Safari... Chrome Mac: расстояние в 1 пиксель между стрелкой и полем. Firefox и Safari: стрелка выходит за нижний край на 1 пиксель.   -  person GG.    schedule 01.02.2012
comment
Я удалил несколько пикселей, что поправило рендеринг в Firefox без изменения рендеринга в Chrome... Выглядит хорошо. Можете посмотреть на jsfiddle.net/wDff8/1?   -  person GG.    schedule 01.02.2012


Ответы (2)


Может быть вместо transparent вам нужно написать это rgba(238,238,238,0) в вашем css, проверьте это, чтобы узнать больше

Проблема с прозрачной границей CSS в Firefox 4?

person sandeep    schedule 01.02.2012
comment
Отлично работает! rgba(0,0,0,0) для содержимого стрелки и rgba(238,238,238,0) для границы выглядит хорошо. Как вы нашли rgba(238, 238, 238, 0)? Почему 238? - person GG.; 01.02.2012
comment
238 238 238 - это значение #eee в RGB, которое я получаю из фотошопа. - person sandeep; 01.02.2012
comment
Хорошо, но я не все понимаю. Я поставил border-color: rgba(0,0,0,0) #eee rgba(0,0,0,0) rgba(0,0,0,0); для содержимого и border-color: rgba(255,255,255,0) #bbb rgba(255,255,255,0) rgba(255,255,255,0); для границы, рендеринг хороший. - person GG.; 01.02.2012

Решение

Я просто удалил несколько пикселей, что исправило рендеринг в Firefox.

Рендеринг не идентичен, но достаточно близок.

Скриншот Chrome

введите здесь описание изображения

Скриншот Firefox

введите здесь описание изображения

Демо

http://jsfiddle.net/wDff8/1/

Модифицированный код

span.tooltip:after {
  border-width: 10px;
  left: -19px;
  top: -1px;
}
person GG.    schedule 01.02.2012