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 の高度な機能 - データ テーブル パーティショニングの概念とメカニズムの詳細な説明
環境: MacOS_Cetalina_10.15.1、Mysql8.0.18、Docker_2.0....
なお、これはvue-cliで作成したプロジェクトではありません。vue.jsを参照して記述したHTM...
これは主に、場所パラメータのif判断の設定ジャンプです。迂回により、サーバーの負荷と圧力を軽減できま...
MySQLデータベースをインストールするa) MySQL ソースインストールパッケージをダウンロード...
Mixin は、再利用可能な機能を Vue コンポーネント間で分散する非常に柔軟な方法を提供します。...
目次1. コンセプト1.1 定義1.2 デコレータファクトリー1.3 デコレータの組み合わせ1.4 ...
目次概要1. Refsオブジェクトの作成1.1 React.createRef() 1.2React...
<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...
rpm パッケージのインストールは比較的簡単なので、ここでは説明しません。ほとんどのオープンソース ...
VirtualBoxのHost Only+NATモードのネットワーク構成は参考用です。具体的な内容は...
先ほど使用したDocker HubはDockerによって提供されています。独自のDockerを構築す...
docker-compose で mongodb と mysql を構築する詳細な方法を見てみましょ...
目次序文メタデータとは参照文書アドレスまずはMySQLについてお話しましょうOracleについて話し...
MySQL 複数の無関係なテーブルクエリデータとページング機能要件主キーと外部キーの関連付けがない ...
学習目標: parseInt() と Number() という 2 つの関数は、文字列をデータ型に変...