
在 React 中使用 Flexbox 水平渲染 SVG 数组时,SVG 尺寸易随元素数量动态缩放;通过为每个 SVG 包裹固定尺寸的容器并设置 flex: 0 0 auto,可彻底解决缩放问题,确保每个 SVG 始终保持原始大小。
在 react 中使用 flexbox 水平渲染 svg 数组时,svg 尺寸易随元素数量动态缩放;通过为每个 svg 包裹固定尺寸的容器并设置 `flex: 0 0 auto`,可彻底解决缩放问题,确保每个 svg 始终保持原始大小。
默认情况下,display: flex 容器中的子元素(如
✅ 正确解法是:为每个 SVG 添加一层包裹 关键要点说明: ⚠️ 注意:避免直接在 <div style={{ display: "flex", flexWrap: "wrap" }}>
{states.map((state, index) => (
<div
key={index}
style={{
flex: "0 0 auto", // 不伸缩、不收缩、按内容尺寸(即 SVG 自身尺寸)基准布局
width: "100px", // 可选:显式固定宽度,进一步增强可控性(此处 100px ≈ viewBox 宽度)
margin: "0 4px" // 可选:添加间距避免紧贴
}}
>
<svg viewBox="0 0 100 35" width="100" height="35">
<rect fill="black" width="25" height="25" />
</svg>
</div>
))}
</div>


















