私は既存の固定幅のデスクトップ サイトで作業していますが、クライアントは既存のデスクトップ レイアウトを一切変更したくなく、「レスポンシブ」であることを望んでいます。
問題:
携帯電話(とにかく私のアンドロイド)で表示すると、「モバイル」サイトが期待どおりに読み込まれます。ただし、タッチ、移動、スクロールなどを行ったり、たまたま「ズームアウト」したりすると、次のように大量の空白ができます。
バックグラウンド:
記録のために: 「モバイル」ビューの新しい仕様には、既存のコンテンツと常に一貫して相関するとは限らない、いくつかの新しいコンテンツ、新しいメニュー オプションなどが含まれています。
したがって、私のアプローチは、保持したい要素に css クラスを追加し、jQuery.clone()、.append()、および appendTo() を使用して既存のコンテンツを可能な限り再利用し、要素を移動することでした。私の新しい「モバイル足場」に:
$('.mobile-header').appendTo($('#PH_mobile_header'));
$('.mobile-content').appendTo($('#PH_mobile_content'));
$('.mobile-footer').appendTo($('#PH_mobile_footer'));
単純化された足場:
<div id= "PH_mobile_wrapper" class="mobile-wrapper mobile visible-xs">
<div class="row row-offcanvas row-offcanvas-left">
<div id="main" class= "col-xs-12">
<div id="PH_mobile_header" class="visible-xs">
<!-- HEADER -->
</div>
<div id="PH_mobile_content" class="container visible-xs">
<!-- CONTENT -->
</div>
<div id="PH_mobile_footer" class="visible-xs">
<!-- FOOTER -->
</div>
</div>
</div>
</div>
また、新しい LESS スタイルシートの 2 つのセクションを使用して、いくつかの調整を行っています。例えば:
//DESKTOP:
@media(min-width:768px){
h1{
font-size: 2em !important;
}
body{
background-color: @ltgrey;
}
.navbar{
width:1000px;
margin: auto;
border-right: solid black 1px;
}
.mobile{
display: none;
}
}
//MOBILE:
@media(max-width:768px){
li.inverse{
background-color: @dkgrey;
color: white;
a{
color: white;
&:hover, &:focus{
background-color: @olacred;
}
}
}
}
記録のために、関連する場合はブートストラップ 3.0 と php を使用しています。ブートストラップが何らかの形でこれに関連している場合に備えて、私は言及します。
スタンダードから始めました
<meta name="viewport" content="width=device-width, initial-scale=1">
そして私は試しました
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no,maximum-scale=1">
CSS @viewport についてもお読みください。
スタイルシートの最後でこれを明示的に実行しようとさえしました:
#layout_wrapper, #layout_container,.dashboard_home_highlights,
.collapse-wrapper,#alpha,#beta,.dashboard_col_1_rotonator,
.orbit > a > img, .orbit > a{
// display: none !important;
max-width:300px !important;
}
何とか。
質問は次のとおりです。
を。この「ビューポート」の問題を修正するにはどうすればよいですか。このオールラウンドなアプローチは大丈夫ですか?
編集: これは部分的なデモです: http://myapp.gristech.com/demo/viewport
うーん...私は問題全体を完全に再現できませんでしたが、ここでアプローチと1つのバグを見ることができます.電話でこれを引き出してズームインすると、テキストがビューに正しく押し込まれます. 次に、ズームアウトします...テキストは本来のように再び拡大されず、いわば余分な空白が残り、その後スクロールダウンすると「ぐらつきます」。1000px のサイトが「最初に」読み込まれるため、「レイアウト ビューポート」は 1000px のままです。あなたの時間と努力に感謝します