Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 使用SVG/Canvas/CSS3创建这些形状?_Html_Css_Svg_Css Shapes - Fatal编程技术网

Html 使用SVG/Canvas/CSS3创建这些形状?

Html 使用SVG/Canvas/CSS3创建这些形状?,html,css,svg,css-shapes,Html,Css,Svg,Css Shapes,我想创建它:最好使用SVG、Canvas或CSS3 最后,我打算在区域上应用4种单独的倍增混合模式 我还想扩展这个区域以占据整个网页的高度/宽度 我在一定程度上可以做到这一点,但这对我来说并不合适。它使用: box-sizing:border-box; -mox-box-sizing:border-box; border-top:rgba(25,25,255,0.8) solid 50vh; /* Nothing below IE8 or Firefox 19 */ bo

我想创建它:最好使用SVG、Canvas或CSS3

最后,我打算在区域上应用4种单独的倍增混合模式

我还想扩展这个区域以占据整个网页的高度/宽度

我在一定程度上可以做到这一点,但这对我来说并不合适。它使用:

box-sizing:border-box;
    -mox-box-sizing:border-box;
    border-top:rgba(25,25,255,0.8) solid 50vh; /* Nothing below IE8 or Firefox 19 */
    border-bottom:rgba(25,25,255,0.8) solid 50vh; /* Nothing below IE8 or Firefox 19 */
    border-left: rgba(0,0,255,0.5) solid 50vw;; 
    border-right: rgba(0,0,255,0.5) solid 50vw;;
    -moz-background-clip: content;     /* Firefox 3.6 */
      -webkit-background-clip: content;  /* Safari 4? Chrome 6? */
          background-clip: content-box;      /* Firefox 4, Safari 5, Opera 10, IE 9 */
有人可以帮助实现图形中的形状吗?

您可以使用lineTo()、beginPath()、moveTo()等方法在html 5中绘制线条

下面是一个例子,请看一看

<html>
  <head>
    <style>
      body {
        margin: 0px;
        padding: 0px;
      }
    </style>
  </head>
  <body>
    <canvas id="CanvasDraw" width="578" height="200"></canvas>
    <script>
      var canvas = document.getElementById('CanvasDraw');
      var context = canvas.getContext('2d');

      context.beginPath();
      context.moveTo(100, 150);
      context.lineTo(450, 50);
      context.stroke();
    </script>
  </body>
</html>   

身体{
边际:0px;
填充:0px;
}
var canvas=document.getElementById('CanvasDraw');
var context=canvas.getContext('2d');
context.beginPath();
上下文。moveTo(100150);
lineTo(450,50);
stroke();
我希望这个例子能帮助您理解如何画线。

编辑:

  • 视频叠加
  • 图像和文本叠加

  • 使用相同的技术在CSS中创建以下形状

    HTML:


    原始答复: 您还可以将伪元素与
    transform:rotate()一起使用创建行:

    HTML:


    如你所想,再举一个例子。这里还有一个例子

    <html>
      <head>
        <style>
          body {
            margin: 0px;
            padding: 0px;
          }
        </style>
      </head>
      <body>
        <canvas id="CanvasDraw" width="578" height="200"></canvas>
        <script>
          var canvas = document.getElementById('CanvasDraw');
          var context = canvas.getContext('2d');
    
          context.beginPath();
          context.rect(188, 50, 200, 100);
          context.fillStyle = 'green';
          context.fill();
          context.lineWidth = 7;
          context.strokeStyle = 'black';
          context.stroke();
        </script>
      </body>
    </html>
    
    
    身体{
    边际:0px;
    填充:0px;
    }
    var canvas=document.getElementById('CanvasDraw');
    var context=canvas.getContext('2d');
    context.beginPath();
    rect(18850200100);
    context.fillStyle='green';
    context.fill();
    context.lineWidth=7;
    context.strokeStyle='black';
    stroke();
    

    我希望它也能对您有所帮助。

    您可以使用canvas来完成此操作。 您需要在HTML中使用以下内容:

    <canvas id="canvas"></canvas>
    
    您希望这是100%的宽度和高度,所以您可以设置画布的宽度和高度以适合您的屏幕。大概是这样的:

    var canvas = document.getElementById('canvas'),
        ctx = canvas.getContext('2d');
    
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
    
    您将看到周围有一个白色的边距,有一个CSS技巧可以将其删除:

    html, body, canvas {
        padding:0;
        margin:0
    }
    
    你现在只需要在上面画。例:填写背景:

    ctx.rect(0,0,canvas.width,canvas.height);
    ctx.fillStyle="red";
    ctx.fill();
    
    看到这个了吗

    ---编辑

    唯一缺少的部分是在彼此的顶部绘制两个三角形。 可以使用这些函数(beginPath、moveTo、lineTo和fill)绘制三角形

    请参阅此更新以获取顶部带有三角形的示例


    查看此内容可帮助您了解如何在画布上绘制形状。

    谢谢。所以,如果我想画一个区域,占据整个页面的宽度和75%的高度,这容易实现吗?是的,这也很容易。你可以对它做一些修改。如果你得到了答案,请将答案标记为已接受。谢谢@gargAman-你有画布绘制区域的示例吗?是的,我又添加了一个示例。请看一看。非常感谢-我非常感谢!!最后,我希望创建这样的东西:-有可能将页面的宽度扩展到100%吗?欢迎您。如果您认为这对您有帮助,请投票支持。并将其标记为“已接受”(绿色标记)。@web tiki非常接近:-)有可能将区域高度扩展到100%吗?哇,非常接近,先生@webtiki!!!在每个形状上应用混合模式容易吗?@web tiki只是想知道是否可以这样使用,或者我是否必须只使用rgba alpha/透明度技术。很好,但看起来你需要在div上添加一个宽度来实现这一点。。。(因为在其他情况下,这些行不会在大屏幕上相遇)非常感谢@web tiki-如果我要使用视频,我需要做哪些更改,而不是图像?我在这里试过了,但没有成功:@webtiki好极了!!现在只需要将此应用到我的解决方案中:-)
    var canvas = document.getElementById('canvas'),
        ctx = canvas.getContext('2d');
    
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
    
    html, body, canvas {
        padding:0;
        margin:0
    }
    
    ctx.rect(0,0,canvas.width,canvas.height);
    ctx.fillStyle="red";
    ctx.fill();