我正在使用 Web 组件 polyfill 为 API 开发一堆自定义元素,但遇到了障碍。
其中一个元素可以包含一个<img>
或<canvas>
元素。如果没有为自定义元素指定尺寸,它应该是子元素的默认尺寸。如果指定了一个或多个维度,它们应该由子元素继承。
对于我的第一次尝试,我认为 CSSinherit
值就足够了:
my-el img, my-el canvas {
width: inherit;
height: inherit;
max-width: inherit;
min-width: inherit;
max-height: inherit;
min-height: inherit;
}
但是,当百分比应用于宽度或高度时,这不起作用<my-el>
. 相反,子元素占据其父元素的相同百分比。
我已经尝试了各种其他解决方案,但无济于事。我认为纯 CSS 解决方案可能是不可能的,但我希望有人能证明并非如此。
澄清一下,最终结果应该是其<my-el>
行为类似于内联替换元素本身,就好像它<img>
具有自己的内部尺寸一样。当您没有在这些元素上设置宽度或高度时,它们默认为其内部尺寸。当您确实设置宽度或高度时,它优先,并且任何“内部”内容都会相应地调整大小。 (至少,我希望澄清!)