純粋なCSSアニメーショントランジションを備えたシンプルな言語選択ページがあります。ここでjsFiddleを作成しました。
動作は次のとおりです。
- 2つ(またはそれ以上)の言語セレクターの1つにマウスを合わせます。
- その言語セレクターは上向きに遷移し、完全に不透明になります。関連する言語テキスト(英語、スペイン語など)も表示されます。
- ユーザーはリンクをクリックするか、マウスアウトします。その場合、遷移は逆になります。
Chromeでは、期待どおりに動作します。
Firefoxでは、1つの画像の上にマウスを置くと、両方が上に移動します。
Operaでは、ほぼ期待どおりに動作しますが、上に移動するとテキストが下にジャンプします。
これらのブラウザでこれが発生する理由と、可能であれば修正する方法を理解しようとしています。
jsFiddleがダウンしている場合、関連するコードは次のとおりです。
HTML
<div id="container"><div id="cell">
<div class="langcell"><a href="en/index.html">
<img src="http://upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/200px-Flag_of_the_United_States.svg.png" /><br/><p>English</p></a>
</div>
<div class="langcell"><a href="es/index.html">
<img src="http://upload.wikimedia.org/wikipedia/en/thumb/9/9a/Flag_of_Spain.svg/200px-Flag_of_Spain.svg.png" /><br/><p>Español</p></a>
</div>
</div></div>
CSS
html, body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
#container {
width: 100%;
height: 100%;
display: table;
}
#cell {
display: table-cell; vertical-align: middle; text-align: center;
}
.langcell {
display: inline-block;
margin: auto 1em;
}
a {
position: relative;
top: 0;
-webkit-transition: top 0.25s;
-moz-transition: top 0.25s;
-o-transition: top 0.25s;
transition: top 0.25s;
color: black;
text-decoration: none;
}
a:hover {
top: -16pt;
}
a p {
font-size: 14pt;
font-weight: bold;
text-transform: uppercase;
font-family: Verdana, Geneva, sans-serif;
letter-spacing: 0.05em;
opacity: 0;
-webkit-transition: opacity 0.25s;
-moz-transition: opacity 0.25s;
-o-transition: opacity 0.25s;
transition: opacity 0.25s;
}
a:hover p {
opacity: 1;
}
a img {
opacity: 0.65;
-webkit-transition: opacity 0.25s;
-moz-transition: opacity 0.25s;
-o-transition: opacity 0.25s;
transition: opacity 0.25s;
}
a:hover img {
opacity: 1;
}