【问题标题】:SVG not filling whole Viewport on mobile viewSVG没有填充移动视图上的整个视口
【发布时间】:2020-08-16 23:43:12
【问题描述】:

我的网站上的所有 Wave SVG 都有问题。有谁知道如何让 SVG 填满屏幕的整个视口/宽度?

我用Wave SVG generator I used来造浪,用了一个div。

<nav>
<div> //align-content: space-between
   <svg>

   <main></main>

   <svg>
</div>
<footer>

中间的空间是将svg推到顶部和底部并获得中心的文本内容。

【问题讨论】:

  • 你在 svg 元素中使用main 元素吗?另外:你有没有 viewBox 属性的 svg 元素吗?
  • 不,我发布的代码只是为了可视化,我是在手机上写的。主要元素在 svg 元素之外。 svg 有一个 viewBox 属性。
  • 请编辑问题,使其具有minimal reproducible example

标签: html css svg flexbox wave


【解决方案1】:

这可能是生成的 SVG 文件问题。你可以用简单的 CSS 技巧来管理它。

.svg-parent-div {
overflow: hidden;
width: 100%;
}

svg {
width: calc(100% + 2px);
margin-left: -1px;
}

更新

为您的案例提供准确的代码

body {
overflow-x: hidden;
}

svg {
width: calc(100% + 2px);
max-width: calc(100% + 2px); /*important in your case*/
margin-left: -1px;
}

【讨论】:

  • 现在左边没有缝隙,右边有缝隙。
  • 有在线示例吗?我想看到一个链接来找到你最好的工作解决方案。
  • 或许可以试试width: calc(100% + 4px);
  • 更新了答案。
【解决方案2】:

这可能是由于 SVG viewBox 的纵横比与指定的(或由浏览器计算的)SVG widthheight 的纵横比之间的细微差别造成的。

尝试将preserveAspectRatio="none" 添加到该SVG 的&lt;svg&gt; 元素中。

<svg ...  viewBox="..." preserveAspectRatio="none">

或者可能:

<svg ...  viewBox="..." preserveAspectRatio="xMidYMin slice">

【讨论】:

    猜你喜欢
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 2012-08-25
    • 1970-01-01
    相关资源
    最近更新 更多