フレックスレイアウトは、上下固定、中間スライドのレイアウトモードを実現します。

フレックスレイアウトは、上下固定、中間スライドのレイアウトモードを実現します。

この記事では、主に、上下固定と中スライドレイアウトを実現するためのフレックスレイアウトのレイアウト方法を紹介し、次のように共有します。

たとえば、このようなページでは、ヘッダー画像、下部のバー、中央のスライド可能なコンテンツ領域を配置するとします。

達成方法を簡単に紹介する

固定ヘッダーとフッター、スライド可能な中央、フレックスレイアウトを使用
1. htmlとbodyの高さを100%に設定する
2. 最も外側の div のレイアウトを柔軟なレイアウト display:flex; に設定します。
3. 最も外側のdivの主軸の方向をflex-direction: columnに設定します。主軸は垂直で、開始点は上端になります。
行 (デフォルト): 主軸は水平で、開始点は左端になります。
row-reverse: 主軸は水平で、開始点は右端にあります。
列: 主軸は垂直で、開始点は上端にあります。
column-reverse: 主軸は垂直で、開始点は下端にあります。
4. 一番外側のdivの高さを100%に設定する
5. ヘッダースタイルを通常通り記述する
6. テールスタイルを普通に書く
7. 中間のスタイルは、flex: 1; overflow: hidden または overflow: auto; -webkit-overflow-scrolling: touch です。後者は、iOS フォンでスライドするときに問題が発生します。プラグインを使用することをお勧めします。

HTML部分:

<div class="main-warp">
    <div class="header">
      <img src="imgurl" class="header-img" alt>
    </div>
    <div class="content">
      <div class="content-scroll">
        <div class="ショップボックス">
          <img src="imgurl" alt>
        </div>
        <div class="ショップボックス">
          <img src="imgurl" alt >
        </div>
        <div class="ショップボックス">
          <img src="imgurl" alt >
        </div>
        <div class="ショップボックス">
          <img src="imgurl" alt >
        </div>
      </div>
    </div>
    <div class="フッター"></div>
  </div>

js部分:

<スクリプト>
'better-scroll' から BScroll をインポートします
エクスポートデフォルト{
  データ () {
    戻る {
      
    }
  },
 
  コンポーネント:
  },
  メソッド: {
 
  },
 
  計算: {
 
  },
 
  マウントされた(){
    this.$nextTick(関数() {
      /* eslint を無効にする no-new */
      pageBottom = document.querySelector('.content') とします。
      新しいBScroll(pageBottom, { クリック: true })
    })
  },
  作成された(){
  }
}
</スクリプト>

スタイル部分:

<style lang="less" rel="stylesheet/less" type="text/less">
@r: 100;
// ヘッダーとフッターを固定し、中央部分はスライド可能で、フレックスレイアウトを使用しています // HTML、
体 {
  背景: url("//storage.jd.com/1901/04nianhuojie/02lingquanbg_02.png")
    繰り返し-y;
  背景サイズ: 100%;
  高さ: 100%;
}
.main-warp {
  最大幅: 750px;
  最小高さ: 100%;
  マージン: 0 自動;
  ディスプレイ: フレックス;
  flex-direction: 列;
  高さ: 100%;
  幅: 100%;
  ボックスのサイズ: 境界線ボックス;
  .ヘッダー{
    高さ: 500rem / @r;
    .ヘッダー画像{
      高さ: 500rem / @r;
    }
  }
  。コンテンツ {
    フレックス: 1;
    幅: 100%;
    オーバーフロー: 非表示;
    // オーバーフロー: 自動;
    // -webkit-overflow-scrolling: タッチ;
    .ショップボックス{
      マージン: 50rem / @r 0;
      画像 {
        幅: 106rem / @r;
      }
    }
  }
  .フッター{
    背景: url("//storage.jd.com/1901/04nianhuojie/fixbtnbg_02.png") 繰り返し;
    背景サイズ: 12rem / @r 11rem / @r;
    高さ: 82rem / @r;
    幅: 100%;
    下部: 0;
    色: #ffdeb8;
    フォントサイズ: 34rem / @r;
    行の高さ: 82rem / @r;
    テキスト配置: 中央;
    フォントの太さ: 太字;
    最大幅: 750px;
  }
}
 
</スタイル>

説明すると、モバイル端末で

オーバーフロー:自動;

-webkit-オーバーフロースクロール: タッチ;

iOS では、ボックスの領域を超えて指をスライドすると、再度スライドしたときに領域がスライドしない、まるで指がボックスに触れなかったかのような状態になりやすいです。そのため、ここでは BScroll プラグインを使用しており、IScroll を使用した場合も同様です。

最終的な効果は、コンテンツの直接の子要素にトランジション効果を追加することです。

このレイアウトをここに記録する

注意: このレイアウト方法は iOS 9.3 以下とは互換性がありません。iOS の下位バージョンと互換性を持たせる必要がある場合は、Flex レイアウトを慎重に使用してください。

フレックスレイアウトで上下を固定し、中央をスライドさせるレイアウトを実現する方法についての記事はこれで終わりです。上下を固定し、中央をスライドさせるフレックスレイアウトの関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  MySQL の undo、redo、binlog の違いを簡単に分析します

>>:  HTML メタの使用例

推薦する

CSS の子要素の Z インデックスと親要素の兄弟ノードの階層問題を解決する

1. 問題の出現フラット リストを作成しました。リストの一部には、マウスをホバーすると表示されるポッ...

Mysql SQL ステートメントのコメント

MySQL SQL ステートメントにコメントを追加できます。MySQL SQL ステートメントのコメ...

MySQLクエリで大文字と小文字を区別しない問題を解決する方法

質問最近、SSH フレームワークを使用して実用的なプロジェクトを完了していたときに、長い間悩まされて...

Vue + OpenLayers クイックスタートチュートリアル

Openlayers は、WebGIS クライアント向けのモジュール式で高性能かつ機能豊富な Jav...

mysql8.0 パスワードを忘れた場合の修正とネットコマンドのサービス名が無効になる問題

cmdにnet start mysqlと入力すると、プロンプトが表示されます: サービス名が無効です...

WeChat アプレット学習 WXS 使用方法チュートリアル

wxsとは何ですか? wxs (WeiXin Script) は、小規模プログラム用のスクリプト言語...

なぜ IE6 が最も多くの人に使用されているのでしょうか?

まず第一に、私はウェブデザイナーです。具体的には、私は XHTML フロントエンド デザイナーです。...

JavaScript における 3 つの for ループ ステートメントの使用の概要 (for、for...in、for...of)

序文JS に触れるすべての開発者は、必然的に for ループを扱うことになります。結局のところ、fo...

MySQLインデックスを正しく作成する方法

インデックス作成は大学図書館の書誌インデックスの構築に似ており、データ検索の効率を向上させ、データベ...

Mysqlサーバーのインストール、構成、起動、シャットダウン方法の詳細な説明

1. 公式サイトからダウンロード: https://dev.mysql.com/downloads/...

WeChatアプレットはシンプルな手書き署名コンポーネントを実装します

目次背景:必要:効果1. アイデア2. 実装1. ページとスタイル2. 初期化3. クリックすると4...

Zabbixは複数のmysqlプロセスの監視を実装します

1 つのサーバー上で 3 つの MySQL インスタンス プロセスが開始され、それぞれ異なるポート ...

Linux ユーザー グループと権限の概要

ユーザーグループLinux では、すべてのユーザーはグループに属する必要があり、Linux には次の...

Linux環境でのshadowsocks+polipoグローバルプロキシの設定

1. シャドウソックスをインストールするsudo apt-get install python-pi...

MySQL のジオメトリ型を使用して経度と緯度の距離の問題を処理する方法

テーブルを作成する テーブル `map` を作成します ( `id` int(11) NULLではな...