Eli*_*ski 6 javascript css svg reactjs
我想使用百分比转换来相对于其自身大小偏移 SVG 元素,这与使用 offset div 的transform: translate(100%,0)工作方式非常相似:
这段代码:
<div style={{ overflow: 'visible', position: 'relative' }}>
{/* rect */}
<div style={{ height: 20, width: 20, background: 'black', position: 'absolute' }} />
{/* circle */}
<div
style={{
height: 20,
width: 20,
background: 'purple',
borderRadius: '50%',
position: 'absolute',
transform: 'translate(100%,0)',
}}
/>
</div>
Run Code Online (Sandbox Code Playgroud)
而这种情况:
<svg overflow={'visible'}>
<rect width={20} height={20} />
<circle cx={10} cy={10} r="10" fill="purple" style={{ transform: 'translate(100%,0px)' }} />
</svg>
Run Code Online (Sandbox Code Playgroud)
它基本上是相对于 svg 画布大小的偏移(我从未明确设置过):
为什么transform: 'translate(100%,0)'在 div html 元素中相对于 self 工作,但在 SVG 元素上相对于父级工作?
已经尝试过:
g元素,或svg类似于本网站上其他答案的元素。想要避免:
https://codesandbox.io/s/svg-vs-div-transform-translate-o2ii7
您应该将变换框设置为填充框。对于 React,你使用驼峰式大小写,所以它看起来像这样:
style={{ transform: "translate(100%,0px)", transformBox: "fill-box" }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
657 次 |
| 最近记录: |