我需要使用 HTML5-Canvas、SVG、CSS 等创建多个矢量形状
我知道我可以通过 DIV 和 Z-index 等来实现这一点,但我想使用矢量图形找到解决方案,以便我可以在运行时更新形状、颜色、位置。
除了制作大量的 DIV 和更改它们的 z-index 之外,我怎样才能让形状成为所有事物的背后?
到目前为止,我看到的最接近的似乎是使用 svg 并通过背景图像加载它。
这是一张代表我想用 CSS 做什么的图像:
我需要使用 HTML5-Canvas、SVG、CSS 等创建多个矢量形状
我知道我可以通过 DIV 和 Z-index 等来实现这一点,但我想使用矢量图形找到解决方案,以便我可以在运行时更新形状、颜色、位置。
除了制作大量的 DIV 和更改它们的 z-index 之外,我怎样才能让形状成为所有事物的背后?
到目前为止,我看到的最接近的似乎是使用 svg 并通过背景图像加载它。
这是一张代表我想用 CSS 做什么的图像:
您可以通过在绝对定位的框上结合边界半径来做到这一点(相对于视口或相对于某种包装元素)。你可以给他们一个低或负的 z-index。透明度可以用 rgba 颜色完成。例如
background: rgba(69,126,138,0.3);
border-radius: 15px;
这是一个例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style media="all">
.wrapper {
background: rgba(162,200,208,0.2);
width: 600px;
margin: 0 auto;
position: relative;
height: 400px; /* temp */
}
.box {
background: rgba(69,126,138,0.3);
position: absolute;
z-index: -1;
}
.one {
width: 80px;
height: 80px;
border-radius: 15px;
top: 30px;
left: 30px;
}
.two {
width: 60px;
height: 60px;
border-radius: 10px;
top: 90px;
left: 90px;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="box one"></div>
<div class="box two"></div>
</div>
</body>
</html>
这个链接应该让您开始在 HTML 5 画布中创建圆角。
http://www.html5canvastutorials.com/tutorials/html5-canvas-rounded-corners/
它还可以让您四处玩耍并想出一个看起来像您的图像的解决方案。关于然后将其放在其他元素后面,将其余元素包装在 div 中并应用
z-index: 10
到这个 div (确保这是一个比应用于 canvas 元素的 z-index 更高的数字)。避免使用
z-index: -1
因为这可能会在某些浏览器中造成严重破坏。
请参阅此处了解更多信息:
显然,使用 HTML5 画布意味着您的网站不会完全向后兼容。
有关兼容性的信息,请参见此处:
http://caniuse.com/#feat=canvas
请注意,由于我从未使用过 HTML 5 画布,因此我真的无法为您提供更多帮助。我个人认为这是呈现图像的一种过于复杂的方式,但我想其他人对它有更实际的用途。