How to make a HTML5 canvas fit dynamic parent/flex box container

前端 未结 4 1081
死守一世寂寞
死守一世寂寞 2021-02-07 04:30

Is there a way I can create a canvas inside a dynamic re-sizing flex-box container?

Preferably a CSS only solution but I think JavaScript is required for redraw?

<
4条回答
  •  感情败类
    2021-02-07 04:52

    The only CSS solution I can think about is the use of object-fit:none (related: How does object-fit work with canvas element?)

    $(document).ready(function() {
      var ctx = $("#stage")[0].getContext("2d");
      ctx.strokeStyle = "#FFFFFF";
      ctx.beginPath();
      ctx.arc(100, 100, 50, 0, 2 * Math.PI);
      ctx.stroke();
    });
    html,
    body {
      margin: 0;
      width: 100%;
      height: 100%;
    }
    
    body {
      display: flex;
      flex-direction: column;
    }
    
    header {
      width: 100%;
      height: 40px;
      background-color: red;
    }
    
    main {
      display: flex;
      flex: 1 1 auto;
      border: 1px solid blue;
      width: 80vw;
    }
    
    canvas {
      flex: 1 1 auto;
      background-color: black;
      object-fit:none;
      object-position:top left;
    }
    
    

提交回复
热议问题