ホームページ >ウェブフロントエンド >htmlチュートリアル >モバイル HTML の垂直レイアウトの基本フレームワーク page_html/css_WEB-ITnose
携帯電話用ページの一般的なレイアウト方法は、ヘッダー、メイン、フッターです。以下に示すように、いくつかの一般的な操作がヘッダーとフッターに配置され、メイン部分にコンテンツが表示されます。実現される効果は、ヘッダーが先頭に固定され、フッターが下部に固定され、メイン部分がスクロールできることです。実装のアイデアは次のとおりです。
1.固定)
2. 絶対配置 (absolute)
3. 柔軟な位置 (フレックス)
コードを見てください:
<div class='flex-frame' ng-controller="myCtrl2"> <header class='flex-bar'> <button class='btn btn-lg btn-default' ng-click="click($event,'buttonA')">buttonA</button> </header> <div class='flex-main'> <div class='flex-main-wrap'> <ul class='list-group'> <li class='list-group-item' ng-repeat="d in data" ng-bind="d"></li> </ul> <input type='text' class='form-control input-lg'> </div> </div> <footer class='flex-bar'> <button class='btn btn-lg btn-default' ng-click="click($event,'button1')">button1</button> <button class='btn btn-lg btn-default' ng-click="click($event,'button2')">button2</button> </footer></div>
.flex-frame{height:100%;width:100%;background:#eff;display:-webkit-box;-webkit-box-orient:vertical;}.flex-bar{display:-webkit-box;padding:4px;background:#eee;}.flex-bar>button{display:block;-webkit-box-flex:1.0;margin-left:4px;}.flex-bar>button:first-child{margin-left:0;}.flex-main{position:relative;background:#ccc;-webkit-box-flex:1.0;overflow-y:hidden;padding-bottom:80px;}.flex-main-wrap{position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto;}例を見てください
var data = [], i = 0;while (i<30) { data.push('row:' + i); i++;}$scope.data = data;$scope.click = function(event, name) { alert('click ' + name);}
追記:
1.タグが見つかりましたが、WeChat のブラウザが見つかりました。メインのタグがわからない場合は、div を直接使用してください。2. WeChat でメイン領域をスクロールする必要がある場合、フッターが覆われているようで、クリック イベントに応答できません。次の段落を見つけました。それが理由です。
オーバーフロー プロパティの計算値が「visible」、「scroll」、または「auto」の場合、コンテンツがコンテナからオーバーフローする可能性があります。direction の計算値が通常の場合、コンテンツは右側または下側からオーバーフローします。方向の計算値が逆の場合、コンテンツが左側または上側にオーバーフローします。
この問題を解決するために、制御のために flex-main-wrap が追加されます。
参考:
http://www.w3.org/TR/2009/WD -css3-flexbox-20090723/