Skip to main content

get_replaced_element_size_in

Function get_replaced_element_size_in 

Source
pub(crate) fn get_replaced_element_size_in(
    node: &StyledNode<'_>,
    pct_base_w: Option<i32>,
) -> Option<(i32, i32)>
Expand description

置換要素(img/video/input 等)の寸法。

pct_base_w は width/max-width の % の基準(包含ブロックの content 幅)。 None は「基準が無い」(内在幅の計測中など)で、% 幅は auto 扱いになる。

【2026-09-26 バグ修正】従来は % を常にビューポート基準で解決しており、 img{width:100%} が親の幅ではなく画面幅いっぱい(1280px)になっていた (www.sugi-lab.net のギャラリー・研究紹介の画像)。併せて:

  • 幅か高さの片方だけ指定されたら、自然サイズの縦横比でもう片方を決める (従来は指定側だけ変わり画像が歪んだ)。
  • max-width/max-height を比率を保って適用する(img{max-width:100%} は レスポンシブ画像の定番)。
  • height の % は包含ブロックの高さが確定していれば(PCT_BASE_H)それ基準、 未確定なら仕様どおり auto(従来はビューポート高さ基準で 800px 等になっていた)。