<div class="main"></div>
<style>
.main{ background-color:black;
position:absolute;
width:???;
height:??;
</style>
divを中央にmain
配置し、画面の両側から20pxのギャップを空けて、高さと幅をほぼ100%にする方法。
ブロック要素の幅は、デフォルトですでに100%になっています。
あなたがする必要があるのはあなたの「ギャップ」を作成するためにパディングまたはマージンを追加することです。
<style>
.main{ background-color:black;
position:absolute;
margin: 0 20px;
height:100%;
}
</style>
私はあなたの絶対的なポジショニングを逃しました。
絶対測位では、これを使用します:
#main {
background: #a00;
position: absolute;
top: 0;
left: 50px;
right: 50px;
height: 100%;
}
ねえ今このcssを定義します
<style>
.main{
background-color:black;
position:absolute;
margin:20px;
left:0;
right:0;
top:0;
bottom:0;
}
</style>
div
これにより、左側と右側の50pxのスペースに中央揃えで配置されます。
.main {
margin: 0 50px; /* [top,bottom] [left,rigth] shorthand syntax */
width : 100%;
}
できるよ :
<style>
.main{ background-color:black;
position:absolute;
width:100%;
height:100%;
margin:20px;
</style>
calc()
CSS3で新しい属性を使用できます。
.main
{
margin: 0 auto;
background-color:black;
color: #fff;
position:absolute;
width: -webkit-calc(100% - 20px);
height: -webkit-calc(100% - 20px); /*repeat with other browsers codes*/
}
これにより、divは100%幅/高になりますが、中央に保持したまま20pxを削除します。
ITは、Firefox 4.0、Chrome 19、Safari 6のIE9(以下ではありません)で使用できます。したがって、これは最善の解決策ではない可能性があります。
絶対測位を使用しているので、これを試すことができます。
<div class="main"></div>
<style>
.main {
background-color: black;
position: absolute;
top: 0;
left: 20px;
right: 20px;
height: 100%;
}
</style>
以下の解決策はどうですか?
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
<style>
#mask {
background-color: rgba(0, 0, 0, .5);
opacity: 0.5;
position: absolute;
top: 20px;
left: 20px;
right: 20px;
bottom: 20px;
}
</style>
</head>
<body>
<div id="mask" />
</body>
</html>