◆ サイズが小数だと整数化されず小数のまま設定される
◆ iframe だと外と内で実際に表示される整数値が別になるのか隙間ができるケースがある
◆ 小数でもできる値とできない値がある
◆ 設定時に int 化したいけど calc に floor などはない
◆ vw 系や % を使わないのは現実的に厳しい

iframe を使っていてなんか隙間ができていました

iframe-inner-space

暗い赤色の線が iframe の border です
その内側の黒い部分が iframe で表示しているページの背景色です
間に白い線がありますが これが隙間です
外側ならともかく内側です
画像はわかりやすく拡大してますが実際は 1px でした

表示しているページが悪いのかなと確認しても 特にスペースを確保するコードはありませんでした
ページ全体を下にずらせば埋まるかなと考えてずらしてみたのですが埋まりません
ということはページの内側ではなくページと iframe の border の間に隙間があるということです

それだと埋めるの不可能じゃないの?というよりなんでここに隙間できるの?
とか考えていると ふと iframe 要素自体の高さが気になりました
指定は 80vh で画面サイズの 80% にしてるのですが devtools で表示した実際のサイズは

651.188px

となっていました

なんか小数が問題な気がしますね

試しに height に 651px と指定したら隙間はなくなりました
ただ 小数なら絶対なるかというとそうでもなく数値次第でなったりならなかったりでした
これまで気にしてませんでしたが 小数が内部的に int 変換されていないのはあんまり良くない気がします
実際変なスペースができてますし
ただ calc で小数点以下を手動で切ろうとして気づいたのですが calc では % 演算子をサポートしていません
割り算は int 型にせず小数のままですし 小数点以下を切り捨てる floor 関数もありません
どうしようもないですね

calc を使わない というのならまだしも px で整数のみを指定というのは難しいです
文字などではなくボックスサイズなので em や rem は使いませんが % や vw, vh なしはできることにも制限が増えます
リサイズのたびにすべて JavaScript で計算して整数化した値を設定というのもあまりやりたくないですし

というかこれってページを作る側で対策するものでもなくてブラウザ側で対策すべきで できてない Chrome が悪いと思います
バグと言ってもいいんじゃないでしょうか