パーセンテージでパディングを使用し始めたときに、divをbox-sizing:border-boxに合わせるのに問題があり、ボックスの位置が位置のパーセンテージと一致しません。
コードは次のとおりです。任意のhtmlファイルに貼り付けて表示します。
<!DOCTYPE html>
<html>
<head>
<title>Testing</title>
<style type="text/css" media="screen">
body{
width:100%;
height:100%;
background-color: blue;
overflow:none;
padding:0;
margin:0;
}
#box{
padding-top:50%;
width:100%;
height:100%;
background-color:blue;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#light{
width:100%;
background-color:yellow;
}
</style>
</head>
<body>
<div id='box'>
<div id='light'>
halo world
</div>
</div>
</body>
</html>
パディングのパーセンテージを50%に設定している間、黄色のdivは下部近くに配置されます。これはバグですか、それともボーダーボックスの概念を間違って取得しました。これは、幅と高さとともにパディングを追加します。
chromeとfirefoxの両方でテスト済み。
編集
@ClaudeGreceaによる提案身長がなく、ピクセルごとにdivの高さが固定されている、より単純なものを試してみました。しかし、padding-top:50%を配置すると、ボックスはまだはるかに下にスローされます。
<!DOCTYPE html>
<html>
<head>
<title>Testing</title>
<style type="text/css" media="screen">
.box{
height:1000px;
padding-top:50%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
background-color:#C1C1C1;
}
</style>
</head>
<body>
<div class="box">
halo world
</div>
</body>
</html>