最近、私は HTML5/CSS3 を利用してモバイル向けに最適化された Web プラットフォームに取り組んでいます。このアプリケーションには、中央にアイコンがある 4 つの同じサイズのタイルで構成されるランディング ページがあります (その他のスタイルには、それらの間の少しのパディングや境界線の半径など)。これらのタイルは、「 display: flex; 」を使用して画面サイズに基づいてサイズ変更されます。これは明らかに、ユーザーが画面の向きを変更できるという性質によるものです。
次のマークアップを使用してこれを達成しています...
HTML
<div class="container">
<a href="1.aspx">
<span class="icon1"></span>
</a>
<a href="2.aspx">
<span class="icon2"></span>
</a>
<a href="3.aspx">
<span class="icon3"></span>
</a>
<a href="4.aspx">
<span class="icon4"></span>
</a>
</div>
CSS
.container {
min-height: 100%;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: row wrap;
flex-flow: row wrap;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 1%;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.container a {
-webkit-flex: 1 1 48%;
flex: 1 1 48%;
margin: 1%;
position: relative;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
iOS または Android の Chrome モバイル (現在のバージョンではなくベータ版で動作) でこれがまったく正しく表示されないという、かなり苛立たしい問題に遭遇しました。
基本的に、CSSを書き直してまったく同じレイアウトを実現しようとしていますが、それを行う別の方法を見つけるのに苦労しています。どんな助けも大歓迎です。