ホームページ > 記事 > ウェブフロントエンド > CSS3 の box-flex フレキシブル ボックス属性レイアウトの紹介例
flex レイアウトは間違いなく今日の Web ページにとって最も強力なレイアウト方法であり、box-flex フレキシブル ボックス モデルはその代表的なものの 1 つです。ここでは CSS3 での box-flex フレキシブル ボックス モデルのレイアウトを例を用いて説明します
box-。 Flex は、CSS3 で新しく追加されたボックス モデル属性です。その外観は、私たちがよく使用するフローティング レイアウトを打ち破り、垂直方向の均等な高さ、水平方向の分割、および比例分割を実現します。ただし、Firefox および Chrome ブラウザでは、プライベート属性 (Firefox (-moz)、Chrome (-webkit)) を使用して定義する必要があります。
1. box-flex 属性
box-flex を使用すると、主に親コンテナの幅に応じて特定のルールに従って子コンテナを分割できます。
<p class="box"> <p class="col_1">111</p> <p class="col_2">222</p> <p class="col_3">333</p> </p> <style type="text/css"> .box { display:box; display:-webkit-box; display:-moz-box; background-color:#fff; width:500px; height:100px; border:1px solid #333; margin:0 auto; } .col_1 { box-flex:1; -moz-box-flex:1; -webkit-box-flex:1; background-color:#ffc; } .col_2 { background-color:#ccf; box-flex:2; -moz-box-flex:2; -webkit-box-flex:2; } .col_3 { background-color:#fcf; box-flex:2; -moz-box-flex:2; -webkit-box-flex:2; } </style>
注:
子コンテナを分割する前に、親コンテナを display:box として定義する必要があります (display:box が設定されている場合、コンテナはインライン要素であり、中央に margin:0 auto を使用します) Firefox では無効であり、親コンテナの text-align:center; を通じて制御する必要があります。ただし、Chrome では可能です)
上記の例では、3 つのサブブロックが 1、2、に設定されています。つまり、親コンテナを 5 つの部分に分割し、それぞれ親構造の幅の 1/5 (100px)、2/5 (200px)、2/5 (200px) を占めます。
上記は割合に応じて分割されており、1つ以上のサブコンテナが固定幅に設定されており、他のサブコンテナが設定されていない場合、幅は幅に従って計算され、残りの部分は次のように計算されます。上記の方法。
.col_3 { background-color:#fcf; width:50px;/*设置宽度为50px*/ }
サブコンテナに隙間が必要な場合は、均等に分割した幅を中央の余白から減算し、均等に分割する必要があります。
.col_2 { background-color:#ccf; box-flex:2; -moz-box-flex:2; -webkit-box-flex:2; margin:0 20px; }
2. ボックス属性
上記は、box-flex が親コンテナの幅を分割する方法です。次に、親コンテナのボックス属性に何が含まれるかを説明します。
box-orient、box-direction、box-align、box-pack、box-lines
1. box-orient
box-orient は、親コンテナ内の子コンテナの配置が水平か垂直かを決定するために使用されます。 , オプションの属性は次のとおりです:
horizontal プロパティと inline-axis プロパティは同じ効果を持ち、デフォルトでも水平方向に配置されます。親コンテナが高さを設定する場合、子コンテナの高さは Firefox では無効ですが、chroma では有効です。
.col_1 { height:50px; } .col_2 { height:80px; }コンテナに高さが設定されていない場合、Firefox ではサブコンテナの高さの値のみが有効になります。クロムの下の子コンテナの高さは、それ自体の高さに設定されます。設定されていない場合、その高さは親コンテナと同じ高さになります。
.box { /*未设置高度*/ } .col_1 { height:50px; } .col_2 { height:80px; } .col_3 { /*未设置高度*/ }垂直軸属性とブロック軸属性は同じ効果があり、サブコンテナを垂直方向に配置できます。親コンテナの高さを割り当てます。サブコンテナの幅が設定されている場合、Google では有効ですが、Firefox では無効になります。その他は水平方向のパフォーマンスと一致します。
2、box-direction
box-direction用来确定父容器里面的子容器排列顺序,具有以下属性:
normal | reverse | inherit
normal是默认值,如上面测试结果。
reverse表示反转,其表现方式跟normal相反,呈现为3、2、1
3、box-align
box-align表示父容器里面子容器的垂直对齐方式,属性值为:
start | end | center | baseline | stretch
start、baseline展示效果
end展示效果
center展示效果
stretch展示效果,(谷歌下面如start)
4、box-pack
box-pack表示父容器里面子容器的水平对齐方式,可选参数如下所示:
start | end | center | justify
css代码
.box { display:box; display:-webkit-box; display:-moz-box; background-color:#fff; width:500px; border:1px solid #333; margin:0 auto; height:100px; -webkit-box-pack:start; -moz-box-pack:start; box-pack:start; } .col_1,.col_2,.col_3{ width:100px; }
start:在box-pack表示水平居左对齐,如下所示:
end:在box-pack表示水平居右对齐,如下图所示
center:在box-pack表示水平居中对齐,如下图所示
justify:在box-pack表示两边对齐试
以上がCSS3 の box-flex フレキシブル ボックス属性レイアウトの紹介例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。