私は基本的に次のHTMLページを持っています。しかし、画面のピクセルからプリンタのセンチメートルに切り替えると、幅がもう合わなくなり、行の幅が変わります。なぜスタイリングはpxで動作しますが、cmでは動作しませんか?
div.line{
white-space:nowrap;
float:left;
}
div.a0, div.a1, div.a2, div.a3{
border:0.1cm solid black;
display:inline-block;
white-space:normal;
padding:0px;
margin:0px;
}
div.b0, div.b1, div.b2, div.b3{
border:1px solid black;
display:inline-block;
white-space:normal;
padding:0px;
margin:0px;
}
div.a0{width:calc(16cm - 0.2cm);}
div.a1{width:calc(8cm - 0.2cm);}
div.a2{width:calc(4cm - 0.2cm);}
div.a3{width:calc(2cm - 0.2cm);}
div.b0{width:calc(400px - 2px);}
div.b1{width:calc(200px - 2px);}
div.b2{width:calc(100px - 2px);}
div.b3{width:calc(50px - 2px);}
for(var a=0;a<2;a++){
var b = String.fromCharCode(97 + a);
for(var c=0;c<4;c++){
var d = document.createElement("div");
d.className = "list";
for(var e=0;e<Math.pow(2,c);e++){
var f = document.createElement("div");
f.className = b + c;
f.innerHTML = b + c;
d.appendChild(f);
}
document.body.appendChild(d);
}
}
これはボックスサイズで完璧です(なぜ私はそれを試してみませんでしたか?)。しかし、それは本当に私の質問に答えるものではありません。私は誤った計算をしなかったので、同じサイズでなければなりませんでしたか?階段の効果はどういう意味ですか? 解決策はまだありません。 – mjb4
階段効果とは、階段状に見える行の幅が違うということです。そして、はい、shoudのサイズは同じですが、ピクセルをスケーリングするときにブラウザは完璧ではありません。私はあなたのピクセル 'div'sも**異なる**幅を持っていることをあなたに示すためにブラウザウィンドウをズームイン/ズームアウトしようと提案しました!しかし、幅が整数ピクセルではなく、浮動小数点数(ブラウザのズームが例えば125%の場合はtrue)が発生した場合にのみ発生します。 widthが 'cm'のときは、ピクセル単位の浮動小数点数です。この誤った計算は多くのサイトで一般的ですが、誰もブラウザズームを使用することはほとんどありません。 – djxak
しかし、なぜborder-boxがエラーを防ぐのですか?幅がそれほど大きいので、丸めは大きな違いではないので、常にボーダーボックスを使う方が良いと思う。 – mjb4