html - Firefox 旋转变换的绝对定位问题

标签 html css firefox

我正在尝试仅通过使用旋转来使用 CSS 制作一些美观、灵活的箭头按钮。问题是 Firefox 似乎对箭头部分的定位与所有其他浏览器略有不同。只添加 Firefox 样式当然可以解决这个问题,但是有没有更优雅的方法?

HTML如下

<span class="arrow-box left">Previous button</span>&nbsp;&nbsp;
<span class="arrow-box right">Next button</span>

CSS如下

.arrow-box { line-height:34px; border:2px solid #7E95AF; padding:8px 20px; z-index:10; font-family:Arial; font-weight:bold; font-size:12px; border-radius:5px; background-color:#EEE; position:relative; }
.arrow-box.left { border-left:0; }
.arrow-box.right { border-right:0; }

.arrow-box.left::before,
.arrow-box.right::after { content:""; display:block; width:24px; height:24px; transform:rotate(45deg); -webkit-transform:rotate(45deg); z-index:-1; position:absolute; border-style:solid; border-color:#7E95AF; border-radius:5px; background-color:#EEE; }
.arrow-box.left::before { top:2px; left:-10px; border-width:0 0 2px 2px; }
.arrow-box.right::after { top:2px; right:-10px; border-width:2px 2px 0 0; }

适用于 Chrome、IE、Safari 的工作版本:http://jsfiddle.net/YWnzc/356/

Firefox 的工作版本:http://jsfiddle.net/YWnzc/352/

最佳答案

是的,当浏览器是 Firefox 时,您的 border-right width 会发生变化,所以我认为您可以使用 javascript 中的函数来检测浏览器并根据它进行更改。

你可以这样做......

Javascript:

var isFirefox = typeof InstallTrigger !== 'undefined';   // Firefox 1.0+

if(isFirefox == true)
{
  $('.arrow-box.right').toggleClass('changed');
}

CSS:

.arrow-box.right.changed:after { top:2px; right:-7px; border-width:2px 2px 0 0; }

我已经为 .arrow-box.right 调用了一个更改的 css,如果你愿意,你也可以为 .arrow-box.left 做更改。
在 Firefox 和 Chrome 中检查这个 fiddle -> http://jsfiddle.net/YWnzc/360/

关于html - Firefox 旋转变换的绝对定位问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32753023/

相关文章:

html - 怪癖模式下的表格单元格大小

php - 结帐页面上重复的付款方式字段 [woocommerce]

javascript - 使 HTML5 视频适合父元素大小

css - 如何在 WordPress 的文本小部件中定位特定的文本行?

javascript - 选择 2 : tagging using an array from remote data?

html - 如何让我的图像在用 "visibility: hidden"消失后重新出现在悬停时?

CSS3 圆环图

javascript - 如果 Firefox 上未加载外部资源,如何取消阻止网页呈现?

html - 在所有现代浏览器中获得相同的阴影(IE 版本 9 除外)

node.js - AngularJS 强制 Firefox/Safari 下载文件而不是在浏览器中打开