You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

<embed>标签height百分比属性失效问题求助

嘿,这个问题我太熟了!咱们来聊聊为什么会这样,以及怎么解决:

核心原因:百分比高度的依赖逻辑

CSS里的百分比高度可不是随便就能生效的——它必须依赖父元素有明确的已定义高度。你的<embed>直接放在<body>标签里,但默认情况下,<html>和<body>的高度是“随内容自适应”的,没有一个固定的、可参考的高度值。这就导致<embed>的height:80%找不到计算基准,自然就失效了。

而宽度百分比能正常工作,是因为块级元素的宽度默认会继承父元素的可用视口宽度,天生就有参照,所以百分比宽度没问题。

两种快速解决办法

方案一:给父元素(html/body)设置100%高度

让<html>和<body>占满整个浏览器视口,这样<embed>的百分比高度就有了参照:

<!DOCTYPE html>
<html>
<head>
    <style>
        /* 让html和body占满视口高度,去掉默认边距避免滚动条 */
        html, body {
            height: 100%;
            margin: 0;
            padding: 0;
        }
        #pdf {
            width: 60%;
            height: 80%;
        }
    </style>
</head>
<body>
    <embed id="pdf" src="C:\path\Tysk.pdf" />
</body>
</html>

方案二:用视口单位vh替代百分比(更简洁)

vh是CSS3新增的视口单位,1vh等于浏览器视口高度的1%,它不需要依赖父元素的高度,直接参照视口:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <embed id="pdf" src="C:\path\Tysk.pdf" width="60%" height="80vh"/>
</body>
</html>

额外小提示

如果你的<embed>是放在某个自定义容器里(比如一个<div>),那要确保这个容器也设置了明确的高度(比如height: 500px或者height: 100%),否则百分比高度还是会失效。另外,给<embed>加上display: block有时候能解决一些浏览器渲染的小问题,不妨试试。

内容的提问来源于stack exchange,提问作者Oskar Våle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:28:17