先端学習ノート_css一般レイアウト(1)
3833 ワード
列レイアウト-幅を指定
名前の通り幅を決めるのは固定の幅を使ってレイアウトし、中央に直接margin:0 autoしたいと思っています.単純で直接的
css代码如下:
.wrap{
width: 960px;
margin:0 auto;
}
等分レイアウト
html構造を見てみましょう.
1
2
3
4
各itemのpadding-left値が20 pxの場合、一番左に20 pxが多く出てくるので、以下のように設定します.
.parent{
margin-left: -20px;
}
.parent > .item{
padding-left:20px;
width: 25%;
height: 300px;
float: left;
box-sizing: border-box;
}
.item > div{
height:100%;
}
またはflexレイアウトを直接使用します.
.parent{
display: flex;
}
.parent > .item{
flex:1;
height: 300px;
}
.item + .item{
margin-left: 20px;
}
.item > div{
height:100%;
}
tableレイアウトを使用するには、html構造にparentに親要素を追加するだけです.
...
cssの設定は次のとおりです.
.parent-fix{
margin-left:-20px;
}
.parent{
display: table;
width: 100%;
}
.parent > .item{
display: table-cell;
padding-left:20px;
height: 300px;
}
.item > div{
height:100%;
}
以上の3つの方式はいずれも等分の効果を実現することができ,同様にブラウザの幅が変化するにつれて変化する.
とうこうはいち
幅が同じで、一方のheightが変化し、他方も変化します.html構造は以下の通りです.
hello
hello
hello
hello
hello
1つ目の方法は次のとおりです.
.parent{
overflow: hidden;
}
.left, .right{
padding-bottom:9999px;
margin-bottom: -9999px;
}
.left{
float: left;
background: deeppink;
width: 100px;
margin-right: 20px;
}
.right{
overflow: hidden;
background: pink;
}
同様にflexを使用してレイアウトすることもできます.
.parent{
display: flex;
}
.left{
background: deeppink;
width: 100px;
margin-right: 20px;
}
.right{
flex:1;
background: pink;
}
tableレイアウトも使用できます.
.parent{
display: table;
width: 100%;
table-layout: fixed;
}
.left, .right{
display: table-cell;
}
.left{
background: deeppink;
width: 100px;
}
.right{
background: pink;
}
以上の方法はいずれも等高効果を実現でき,flexはIE 10以下ではサポートされていないので,状況に応じて適切なレイアウトを選択する.
フルスクリーンレイアウト
上下の幅の適応を実現し、中間のleftは幅を定めてrightは適応し、以下はhtml構造である.
top
left
test
bt
位置決めを使用して、次のような効果を実現します.
html,body, .parent{
height: 100%;
overflow: hidden;
}
.top,.bt{
position: absolute;
left:0;
width:100%;
height: 100px;
background: pink;
}
.top{
top:0;
}
.bt{
bottom:0;
}
.lt{
position: absolute;
width: 200px;
top:100px;
bottom:100px;
background: deeppink;
}
.rt{
position: absolute;
left:200px;
top:100px;
bottom: 100px;
right:0;
overflow: auto;
}
.rt .inner{
min-height: 1000px;
}
この方式は唯一ではないので、必要に応じて異なるレイアウトを書けばいいです.