ios Safari上的SVG视箱高度问题

 yun悠然_434 发布于 2022-12-19 12:43

我在使用svg时注意到ios上有一个奇怪的东西.svgs似乎在所有其他浏览器中都能正常工作,但在Safari ipad/iphone上,视图框在svg的顶部和底部有一些奇怪的空间.有没有其他人遇到这个,你有没有能够解决它?使用一些简单的svg代码,例如:


    

在ipad/iphone上,如果我在svg上放置一个边框,svg上方和下方都有奇怪的空间......?

小提琴的好看在桌面上看起来很正常,但如果你在ipad等上看它,你会看到问题.

http://jsfiddle.net/InVAMPED/hck5gg1a/

2 个回答
  • AmeliaBR是完全正确的,非常感谢带领我朝着正确的方向前进!

    以下是谷歌向我展示的内容:填充底层黑客

    因为百分比值padding-bottom从元素的宽度获得它的高度而不是高度本身,我们可以利用它来创建没有指定高度的响应元素.

    在SVG容器上:

    .container {
        padding-bottom: 70%; /*this is your height/width ratio*/
        height: 0;
      }
    

    在SVG元素本身:

    .container svg {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
    }
    

    2022-12-19 12:46 回答
  • 问题是您只设置宽度,而不是SVG布局框的高度.然后使用默认xMidYMid meet设置将viewBox放入此布局框内,默认设置将其缩放以适应更受约束的尺寸,并将其置于另一个方向的中心.

    Firefox和最新版本的Chrome(我猜桌面Safari也是如此)会缩放SVG,以便在保留一个维度时匹配viewBox纵横比auto.但是,其他浏览器将应用默认的高度/宽度,然后缩放图像以适合:

    IE应用150px高度/ 300px宽度,这是嵌入对象的默认宽度.

    Safari mobile必须应用旧的webkit默认值100vh(浏览器窗口的高度).

    它在浏览器中并不是一个"错误",只是一个从未在规范中明确定义的功能.

    搜索有关"填充底部宽高比黑客"的信息,以强制浏览器尊重宽高比,同时仍允许宽度响应.

    2022-12-19 12:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有