ieにおけるフレキシブルボックスモデルの実装について-私のcss
3123 ワード
css 3の中の弾性箱モデルはみんなよく知られていませんが、ie 6で実現できますか?サードパーティ製ライブラリに含まれるページは少なく、一部のcssフレームワークではさまざまなレイアウトがサポートされています.次に、私が使用するボックスモデルのスタイルを示します(後でcopyを便利にするためです):
次に例を見て、現在のページもieの下で効果を見ることができて、demoをダウンロードすることができます:
<!--
#content_test {
width: 600px;
margin:0 auto;
font-size:12px;
}
#inbox_test{
background-color: #ccc;
}
#content_test ul{
list-style:none;
margin:0;
padding:0;
}
.qleft {
width: 120px;
background-color: #f30;
}
.qright {
width: 120px;
background-color: #0ee;
}
.qright1 {
width: 120px;
background-color: #e0e;
}
.qcenter {
background-color: #0f3;
}
/*********************互換ボックスモデルby awen*****************************************
.shbox-item-l, .shbox-item-r {
min-height: 1px;
/*標準ブラウザで高さが設定されていないことによるレイアウトの乱れを防止*/
_display:inline;/*hack ie6 dubble margin*/
}
.shbox-item-l {
float: left;
}
.shbox-item-r {
float: right;
}
/*強制改行*/
.shbox-item_l, .shbox-item-r, .shbox-item-flex {
word-wrap: break-word;
word-break: normal;
}
/*シミュレーションflexは、一般的にはすべてfloatを使用しますが、特殊な場合はflexを使用できますのでご注意ください
*1つのboxは1つのflexのみをサポート
*2 flexでのカスタムmarginは無効です
*3 flexを使用した後、ie 6の下で、flexの左右の2つのfloatは3画素のバグを解決する必要があります.
* shbox-flex-l(flexの左側に対応するfloat)、shbox-flex-r(flexの右側に対応するfloat)の2つのスタイルを使用できます.
* もちろん厳密でなければ使わなくてもいいです.
*/
.shbox-item-flex {
overflow:hidden;
_height: 1%;/*for ie 6ドキュメントフロー小包防止もこれを使用できます:display:inline-block;*/
}
/*
*ie 6のflexには3画素バグがある場合があります
*/
.shbox-flex-l {
_margin-right:-3px;
}
.shbox-flex-r {
_margin-left:-3px;
}
--> li2 li3 li4 li5 li2 li3 li4 li5
shbox-item-l
shbox-item-r
oooooooooooooooooooooooooooooooooo
/***********************************
* by awen
* float , dom (float:right, )
************************************/
.shbox-item-l, .shbox-item-r {
min-height: 1px;
/* */
_display:inline;
/*hack ie6 dubble margin*/
}
.shbox-item-l {
float: left;
}
.shbox-item-r {
float: right;
}
/* */
.shbox-item_l, .shbox-item-r, .shbox-item-flex {
word-wrap: break-word;
word-break: normal;
}
/* flex, float, flex,
* 1 box flex
* 2 flex margin
* 3 flex ,ie6 ,flex float 3 bug,
* shbox-flex-l( flex float), shbox-flex-r( flex float) ;
* 。
*/
.shbox-item-flex {
overflow:hidden;
_height: 1%;/*for ie6 :_display:inline-block;*/
}
/*
*ie6 flex 3 bug
*/
.shbox-flex-l {
_margin-right:-3px;
}
.shbox-flex-r {
_margin-left:-3px;
}
次に例を見て、現在のページもieの下で効果を見ることができて、demoをダウンロードすることができます:
<!--
#content_test {
width: 600px;
margin:0 auto;
font-size:12px;
}
#inbox_test{
background-color: #ccc;
}
#content_test ul{
list-style:none;
margin:0;
padding:0;
}
.qleft {
width: 120px;
background-color: #f30;
}
.qright {
width: 120px;
background-color: #0ee;
}
.qright1 {
width: 120px;
background-color: #e0e;
}
.qcenter {
background-color: #0f3;
}
/*********************互換ボックスモデルby awen*****************************************
.shbox-item-l, .shbox-item-r {
min-height: 1px;
/*標準ブラウザで高さが設定されていないことによるレイアウトの乱れを防止*/
_display:inline;/*hack ie6 dubble margin*/
}
.shbox-item-l {
float: left;
}
.shbox-item-r {
float: right;
}
/*強制改行*/
.shbox-item_l, .shbox-item-r, .shbox-item-flex {
word-wrap: break-word;
word-break: normal;
}
/*シミュレーションflexは、一般的にはすべてfloatを使用しますが、特殊な場合はflexを使用できますのでご注意ください
*1つのboxは1つのflexのみをサポート
*2 flexでのカスタムmarginは無効です
*3 flexを使用した後、ie 6の下で、flexの左右の2つのfloatは3画素のバグを解決する必要があります.
* shbox-flex-l(flexの左側に対応するfloat)、shbox-flex-r(flexの右側に対応するfloat)の2つのスタイルを使用できます.
* もちろん厳密でなければ使わなくてもいいです.
*/
.shbox-item-flex {
overflow:hidden;
_height: 1%;/*for ie 6ドキュメントフロー小包防止もこれを使用できます:display:inline-block;*/
}
/*
*ie 6のflexには3画素バグがある場合があります
*/
.shbox-flex-l {
_margin-right:-3px;
}
.shbox-flex-r {
_margin-left:-3px;
}
-->
shbox-item-l
shbox-item-r
shbox-item-r
shbox-item-flex
shbox-item-l
shbox-item-r
oooooooooooooooooooooooooooooooooo