svg 全屏显示怎么设置viewBox width height的值,并且需要兼容1366*768 1920*1080等分辨率

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>画图</title>
</head>
<body>
<style type="text/css">
  body, div, svg {
    margin: 0;
    padding: 0;
  }
  svg * {
    fill: none;
    stroke: currentColor;
    overflow: hidden;
  }
  /* Custom  线条粗细 */
  .obturateur {
    stroke-width: 18;
    stroke-miterlimit: 10;
    color: #499C6A;
  }
  #ams {
    background-image: linear-gradient(90deg, #75BB8F 0%, #52B477 67%);
    overflow: hidden;
  }
</style>
<div class="ams">
  <svg id="ams" class="obturateur" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
       width="100%" height="100%" viewBox="0 0 1900 990">
      <!--矩形-->
      <rect x="10" y="10" width="1880" height="970"/>
  </svg>
</div>
<script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
<script>
  var x = $(document).width();
  var y = $(document).height();
  $("#ams").attr('viewBox','0 0,'+x+','+y)
</script>
</body>
</html>

请问一下,svg,我想全屏显示,兼容1366768以及19201080的分辨率,需要怎么设置svg的宽和高,以及 viewBox的值,另外,svg的线条宽stroke-width对全屏幕显示有什么影响?

阅读 7.6k
1 个回答

没办法做到所有分辨率都兼容的,因为不同分辨率长宽比不一样,你只能兼容一个长宽比下的分辨率,剩下的其它分辨率就需要使用留白处理了。viewBox 永远是按照你的画布设计的时候尺寸设计,with=100% 去做自适应应该就可以了。

stroke-width 的设置是基于画布的,只要你 viewBox 没变的话修改宽高对它的显示没有影像,所以无须担心。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题