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 の高度な機能 - データ テーブル パーティショニングの概念とメカニズムの詳細な説明
序文:この記事は、CUDA 9.0 をインストールした経験に基づいています。CUDA 9.0 は現在...
目次8. CSS3 クリックボタンの円形進捗チェック効果8.1 画像プレビュー8.2 index.h...
序文ORDER BY 字段名升序/降序、このソートステートメントは皆さんご存知だと思いますが、特殊な...
ウェブサイトにとって、これは最も基本的な機能です。それでは、登録プロセスに含まれる手順を見てみましょ...
プロジェクトの展開中に遭遇した落とし穴Zhihudemo を展開する際、Jenkins などの自動展...
問題: MySQL データベースが予期せずクラッシュしたため、データベースを起動できませんでした。エ...
URL: http://hostname.com/contextPath/servletPath/p...
目次1. 開発モードとリリースモードに異なるパッケージエントリポイントを指定する2. 外部CDNリソ...
この記事では、MySQL のデータ型とフィールド属性について説明します。ご参考までに、詳細は以下の通...
Vue ルーティング this.route.push ジャンプ ページが更新されない1. 背景概要:...
記事のタイトルが「模造虫眼鏡」なのはなぜですか?今日お話ししたいのは、一般的に言われているような、マ...
この記事では、参考までに、簡単なメモ帳機能を実装するためのVueの具体的なコードを紹介します。具体的...
目次1. 成果を達成する2. 実装コード3. その他の実装要約する1. 成果を達成する 2. 実装コ...
スタイル ガイドとは何でしょうか? 簡単に言えば、ストーリーを伝える方法を説明するドキュメントです。...
目次1. はじめに2. RC および RR 分離レベル2.1. RRトランザクション分離レベルでのク...