このjsFiddleをChromeやSafariなどのWebKitベースのブラウザーで表示し、FirefoxやInternetExplorerなどの非Webkitベースのブラウザーで表示したときに表示されるものと比較します。
それらが明らかに同じではないことがわかります。以下は、左側がChrome、右側がFirefoxです。
この理由は、休眠中の小さなCSSマークアップは、他のすべてのブラウザーが解釈する方法と比較して、WebKitによって異なる方法で解釈されるためです。
span.upArrow.menu{
margin: 36.1% 0 0 12.5%;
}
より正確には、WebKitは36.1%をページ幅の36.1%ではなく、要素の幅または高さの36.1%として解釈します。
そもそもパーセンテージを使用する理由は、画面のスケールに応じてサイトがスケールアップおよびスケールダウンするためです。このコードはメニュー用です。そのため、AndroidまたはiPhoneでデフォルトのブラウザを使用すると、サイトは正常に表示されます。しかし、Windows Phoneのコンテンツの中央、またはユーザーがOperaまたはFirefoxを使用している場合は、巨大な醜い三角形があります。
だから私の質問はになります。WebKitでこのバグを回避する方法はありますか?
可能であれば、Webkitブラウザと非Webkitブラウザに別々のマークアップを書くことができます。しかし、おそらくさらに良いのは、両方の場合に機能する解決策を見つけることです。