1. W3C バージョンの flex 2009年版 2011年版 2012年版 2014年版 2015 W3C 編集者草案 PS 2015 年版は W3C 編集者草案であることに注意してください。これはあくまで草案であり、まだ改訂段階です。ブラウザ ベンダーの意見はまだ求められていません。 2. ブラウザの互換性 flex に関する W3C 仕様: http://dev.w3.org/csswg/css-flexbox-1/ ブラウザの互換性については、CanIUse を参照してください: http://caniuse.com/#feat=flexbox CanIUse データによると、次のように要約できます。
したがって、新しいバージョン 2012 を検討する必要があります: http://www.w3.org/TR/2012/CR-css3-flexbox-20120918/ Android では、古いバージョン 2009 を考慮する必要があります: http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/ 3. ブラウザ互換のflex構文 上記の分析は非常に明確です。互換性が必要なターゲットに対応するバージョンの構文を使用するだけです。よく使用されるレイアウト コードは次のとおりです。 /* 子要素 - 均等に分割された列 */ .flex1 { -webkit-box-flex: 1; /* 古い - iOS 6-、Safari 3.1-6 */ -moz-box-flex: 1; /* 古い - Firefox 19- */ width: 20%; /* 古い構文の場合、それ以外の場合は折りたたまれます。 */ -webkit-flex: 1; /* クローム */ -ms-flex: 1; /* IE 10 */ flex: 1; /* 新機能、仕様 - Opera 12.1、Firefox 20+ */ } /* 親要素 - 水平配置(主軸) */ .flex-h { display: box; /* 古い - Android 4.4- */ display: -webkit-box; /* 古い - iOS 6-、Safari 3.1-6 */ display: -moz-box; /* 古い - Firefox 19- (バグがあるが、ほぼ動作する) */ display: -ms-flexbox; /* トゥイーナー - IE 10 */ display: -webkit-flex; /* 新機能 - Chrome */ display: flex; /* 新機能、仕様 - Opera 12.1、Firefox 20+ */ /* バージョン 09 */ -webkit-box-orient: 水平; /* バージョン 12 */ -webkit-flex-direction: 行; -moz-flex-direction: 行; -ms-flex-direction: 行; -o-flex-direction: 行; flex-direction: 行; } /* 親要素 - 水平改行 */ .flex-hw{ /* バージョン 09 */ /*-webkit-box-lines: 複数;*/ /* バージョン 12 */ -webkit-flex-wrap: ラップ; -moz-flex-wrap: ラップ; -ms-flex-wrap: ラップ; -o-flex-wrap: ラップ; flex-wrap: ラップ; } /* 親要素 - 水平方向の中心(主軸が水平の場合にのみ機能します)*/ .flex-hc { /* バージョン 09 */ -webkit-box-pack: 中央; /* バージョン 12 */ 中央揃え 中央揃え コンテンツを中央揃えにします。 -o-justify-content: 中央; コンテンツの中央揃え: 中央; /* その他の値は以下の通りです: align-items 主軸の原点方向を揃えます flex-end 主軸の延長方向を揃えます space-between 先頭と末尾に空白を残さずに等間隔で配置します space-around 先頭と末尾に空白を残して等間隔で配置します*/ } /* 親要素 - 垂直配置(主軸) */ .flex-v { display: box; /* 古い - Android 4.4- */ display: -webkit-box; /* 古い - iOS 6-、Safari 3.1-6 */ display: -moz-box; /* 古い - Firefox 19- (バグがあるが、ほぼ動作する) */ display: -ms-flexbox; /* トゥイーナー - IE 10 */ display: -webkit-flex; /* 新機能 - Chrome */ display: flex; /* 新機能、仕様 - Opera 12.1、Firefox 20+ */ /* バージョン 09 */ -webkit-box-orient: 垂直; /* バージョン 12 */ -webkit-flex-direction: 列; -moz-flex-direction: 列; -ms-flex-direction: 列; -o-flex-direction: 列; flex-direction: 列; } /* 親要素 - 垂直改行 */ .flex-vw{ /* バージョン 09 */ /*-webkit-box-lines: 複数;*/ /* バージョン 12 */ -webkit-flex-wrap: ラップ; -moz-flex-wrap: ラップ; -ms-flex-wrap: ラップ; -o-flex-wrap: ラップ; flex-wrap: ラップ; } /* 親要素 - 垂直方向の中心(主軸が水平の場合にのみ機能します)*/ .flex-vc { /* バージョン 09 */ -webkit-box-align: 中央; /* バージョン 12 */ -webkit-align-items: 中央; -moz-align-items: 中央; -ms-align-items: 中央; -o-align-items: 中央; アイテムの位置を中央揃えにします。 } /* 子要素 - 左から右(上から下)の最初の位置に表示されます。ソース ドキュメントの表示順序を変更するために使用されます。*/ .flex-1 { -webkit-box-ordinal-group: 1; /* 古い - iOS 6-、Safari 3.1-6 */ -moz-box-ordinal-group: 1; /* 古い - Firefox 19- */ -ms-flex-order: 1; /* トゥイナー - IE 10 */ -webkit-order: 1; /* 新機能 - Chrome */ order: 1; /* 新規、仕様 - Opera 12.1、Firefox 20+ */ } /* 子要素 - 左から右(上から下)の 2 番目の位置に表示されます。ソース ドキュメントの表示順序を変更するために使用されます。*/ .flex-2 { -webkit-box-ordinal-group: 2; /* 古い - iOS 6-、Safari 3.1-6 */ -moz-box-ordinal-group: 2; /* 古い - Firefox 19- */ -ms-flex-order: 2; /* トゥイナー - IE 10 */ -webkit-order: 2; /* 新機能 - Chrome */ order: 2; /* NEW、仕様 - Opera 12.1、Firefox 20+ */ } 互換性を高めるには、一般的な flex ではなく、コンテナーに対して flex-h/flex-v を宣言する必要があります。 /* 親要素 - フレックスコンテナ */ .flex { display: box; /* 古い - Android 4.4- */ display: -webkit-box; /* 古い - iOS 6-、Safari 3.1-6 */ display: -moz-box; /* 古い - Firefox 19- (バグがあるが、ほぼ動作する) */ display: -ms-flexbox; /* トゥイーナー - IE 10 */ display: -webkit-flex; /* 新機能 - Chrome */ display: flex; /* 新機能、仕様 - Opera 12.1、Firefox 20+ */ } したがって、Android 互換性が必要な場合 (2009 バージョンの構文) は flex-h/flex-v を使用してコンテナが flex モードを使用するように宣言し、Android 互換性が不要な場合は flex を使用してコンテナを設定することをお勧めします (2012 バージョンの構文)。 注: 上記のコードはすべてのハイエンドブラウザと完全に互換性があるわけではありませんが、他の既存のコードよりも互換性があります。具体的な互換性テストの結果については、デモをご覧ください。 4.フレックスレイアウトデモ オンラインテスト: デモ テスト結果:
注: テスト結果から、フレックスレイアウトは疑似要素をスペースを割り当てる要素として扱うことがわかります (ドキュメントでは、疑似要素に position: fixed/absolute; を設定するとこの状況を回避できると記載されているようですが、この記事ではまだ検証していません)。ただし、疑似要素は装飾効果のみを持ち、レイアウトに影響を与えないことを一般的に期待しているため、これは私たちの期待と一致しません。したがって、フレックス レイアウトで疑似要素を使用する場合は特に注意し、できるだけ多くのブラウザー互換性テストを実行するか、代わりにフロート レイアウトを使用してください。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: Vue3.0はvue-grid-layoutプラグインを使用してドラッグレイアウトを実装します。
>>: MySQL の高度な機能 - データ テーブル パーティショニングの概念とメカニズムの詳細な説明
MySQL の MyISAM エンジンと InnoDB エンジンはどちらもデフォルトで B+ ツリー...
目的: 1. Alibaba Cloud Serverを介してサーバーの外部ネットワークをマッピング...
目次1. 問題のあるSQL文たとえば、次の図のような質問をした人がいました。 問題は次のように要約で...
Linuxの基本設定 Linux環境でpython3をコンパイルしてインストールする 1. Linu...
CSS の優先順位について話す前に、CSS とは何か、CSS が何に使用されるのかを理解する必要があ...
仮想マシンは非常に便利なテストソフトウェアです。ハードウェアに損傷を与えることなく、さまざまなテスト...
この記事では、MySQL 5.7.20のインストールと設定方法を参考までに紹介します。具体的な内容は...
プロジェクトを実行すると、リアルタイム更新、広告アニメーションの連続表示などの要件に遭遇することは避...
ミラーを探すDocker Hubのウェブサイトからイメージを検索できます。Docker Hubのウェ...
1. 問題の出現フラット リストを作成しました。リストの一部には、マウスをホバーすると表示されるポッ...
1. 環境整備各コンテナの IP アドレス: nginx: 172.16.10.10マイSQL: 1...
このセクションでは、テキストの変更の詳細から始めます。これにより、読者はさまざまな HTML フォン...
序文: 最近の医療モバイル プロジェクトに基づいて、Vue はさまざまな画面のさまざまな画面サイズに...
React では、this.state を使用して状態を直接変更しても、コンポーネントは再レンダリン...
予備的注釈1.Vue2.xとVue3.xの違い: Vue 3.x にはヘルパー関数はありません。 V...