Firefox的CSS箭头渲染问题

时间:2012-02-01 10:02:31

标签: html css firefox pseudo-element

上下文

我为箭头做了一个带有伪元素:before:after的纯CSS工具提示。

渲染与Chrome 16到Firefox 9和10不同。

你看错了什么?

Chrome屏幕截图

enter image description here

Firefox截图

enter image description here

演示

http://jsfiddle.net/wDff8/再现了同样的问题。

代码

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

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;
}

2 个答案:

答案 0 :(得分:7)

可能是transparent而不是rgba(238,238,238,0)你需要在你的CSS中写这个{{1}}检查这个以获取更多

CSS Transparent Border Problem In Firefox 4?

答案 1 :(得分:1)

解决方案

我juste删除了几个像素,这些像素纠正了Firefox上的渲染。

渲染不完全相同但足够接近。

Chrome屏幕截图

enter image description here

Firefox截图

enter image description here

演示

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

修改后的代码

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