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

如何让带自定义边框的SVG容器自适应设备并实现自动缩放?

实现SVG边框的响应式自动缩放方案

要让这个SVG边框适配不同设备,需要从SVG缩放机制和容器布局两方面调整,具体修改如下:

  • 给SVG添加viewBox属性:这是SVG实现响应式的核心,它定义了SVG的坐标系统,让SVG能按比例缩放。移除SVG上固定的width和height,替换为viewBox="0 0 320 60"(数值对应原SVG的宽高)。
  • 修改容器的固定宽度:把.svg-wrapper的width: 320px改成width: 90%; max-width: 320px,小屏幕下容器占满可用空间,大屏幕下不超过原设计尺寸。
  • 用相对单位调整文本:将文本的font-size从固定的22px改成min(4vw, 22px),既保证小屏幕自适应缩放,又避免大屏幕文字过大。
  • 动画参数自动适配:stroke-dasharray和stroke-dashoffset基于SVG坐标系的数值,配合viewBox后会自动跟随SVG缩放,无需额外修改。

修改后的完整代码

CSS代码

html, body {
  background: rgb(20,20,20);
  text-align: center;
  height: 100%;
  overflow: hidden;
}
.svg-wrapper {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  margin: 0 auto;
  width: 90%;
  max-width: 320px;  
}
.shape {
  stroke-dasharray: 140 540;
  stroke-dashoffset: -474;
  stroke-width: 8px;
  fill: transparent;
  stroke: #19f6e8;
  border-bottom: 5px solid black;
  transition: stroke-width 1s, stroke-dashoffset 1s, stroke-dasharray 1s;
}
.text {
  font-family: 'Roboto Condensed';
  font-size: min(4vw, 22px);
  line-height: 32px;
  letter-spacing: 8px;
  color: #fff;
  top: -48px;
  position: relative;
}
.svg-wrapper:hover .shape {
  stroke-width: 2px;
  stroke-dashoffset: 0;
  stroke-dasharray: 760;
}

HTML代码

<div class="svg-wrapper">
  <svg viewBox="0 0 320 60" xmlns="http://www.w3.org/2000/svg">
    <rect class="shape" height="60" width="320" />
    <div class="text">ZACH SAUCIER</div>
  </svg>
</div>

内容的提问来源于stack exchange,提问作者VSKVN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:30:42