が要素内にネストされているtext-transform
場合にCSSプロパティによってトリガーされるように見える奇妙なレイアウトのバグに遭遇しました。Safari(5.1.2)でも問題が発生しましたが、この最小限のテストケースはChrome(17.0.963.56)でのみトリガーされます。inline-block
block
特に興味深いのは、開発者ツールを開いて[要素]タブに保持すると、正しいレイアウトがトリガーされることです。私の推測では、CSSルールとDOM構造の組み合わせにより、Webkitエンジンがページのリフローの実行を見逃していると考えられます。
<!DOCTYPE html>
<html>
<head>
<title>Menu Widget Test</title>
<style type="text/css">
.container
{
border: 1px solid black;
display: inline-block;
}
.title
{
text-transform: uppercase; /* <-- Remove this and it works */
}
</style>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function() {
document.getElementById("firstName").innerHTML = "John";
document.getElementById("lastName").innerHTML = "Smith";
}, false);
</script>
</head>
<body>
<div> <!-- Remove this DIV element, and it works -->
<span class="container">
<span class="title">
<span id="firstName"></span>
<span id="lastName"></span>
</span>
</span>
</div>
</body>
</html>
text-transform
これは、ルールが削除されたか、div
要素が削除されたかに応じて、Chromeでレンダリングされる2つの方法を示す2つのスクリーンショットです。
プロパティを使用したいのtext-transform
ですが、これが既知のバグであるかどうか、および動作をトリガーしないようにするために何ができるか疑問に思っています。リフローイベントを明示的にトリガーできる場合でも十分な場合があります。