【问题标题】:Shadow & Distortion Between Border Sides In FirefoxFirefox 中边界边之间的阴影和失真
【发布时间】:2015-06-30 06:51:33
【问题描述】:

我一直在使用 CSS 边框属性以及伪元素 :before 和 :after 来使我的元素具有几何形状的外观,一个简单的示例如下:

HTML:

<div id="shapeOne"></div>

CSS:

#shapeOne
{
   height:0px;
   width:0px;
   margin:20px;
   border-style:solid;
   border-width:200px 200px 200px 200px;
   border-color:transparent #f00 #0f0 transparent;  
}

因此,通过使两个边框透明并赋予两种颜色,我有效地制作了一个三角形。

你可以在这里看到一个例子:http://jsfiddle.net/VTzS9/1/

这似乎在除 Firefox 之外的所有浏览器中都能正常显示(特别是 PC 版本,因为它在 Mac 上的 Firefox 上看起来很正常)。问题是 Firefox 似乎在边框边之间放置了阴影/扭曲效果,并在边框中创建了一个“扭结”(空元素所在的位置)——随着不同边框边之间大小差异的增加,这种效果也会增加- 因此,如果边框尺寸相等(我在上面的链接中的第一个形状),问题几乎没有(但仍然)明显,但是随着边框尺寸之间的差异增加(我的链接中的形状 2 和 3),效果变得更加明显。

有谁知道是什么原因造成的,如果有什么我可以做的来消除这种影响?

干杯!

【问题讨论】:

  • 和 jsFiddle 上漂亮的测试用例 +1 :)

标签: css firefox css-selectors border


【解决方案1】:

使用

rgba(255,255,255,0) 

而不是

transparent

.

这将使它也可以在 Firefox 上运行。

演示:http://jsfiddle.net/SkXXy/

P.S:同样的问题:Weird dark border :after css arrow in Firefox

【讨论】:

  • 谢谢 Andrea - 我会搜索几次,但没有找到其他问题。
  • 是的,标题很难找到,也许你会更容易被以后的提问者找到......如果有帮助,请接受答案:)
  • 该解决方案只有 kinda 解决了问题 - 本质上它允许您控制边框的阴影/扭曲部分的颜色 - 因此您可以将其与后面的背景相匹配你的元素,但是你仍然会得到阴影/扭曲效果以及中间的扭结
  • 我认为这与Firefox如何处理伪元素的边框有关。我在 Chrome 中打开了你的小提琴,它是“步进的”,它会产生一个丑陋的“楼梯”效果。 Firefox 反而“模糊”了边界,创造了平滑和抛光的效果……我个人更喜欢 Firefox 的方式(除了你不能使用transparent,这是一个错误),但我不认为你对此无能为力......
  • 是的,Chrome 的阶梯效果不是很好 - 曾经似乎是 IE 以流畅的线条和不奇怪的方式脱颖而出:D
猜你喜欢
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多