宽度 50% 和边距 0 px 未对齐

问题描述 投票:0回答:1

我正在为 JavaScript 构建 3D 渲染,我需要的第一个功能是

X , Y
鼠标显示。此显示是一个
paragraph
标签,位于应对齐的 div 中。就在彼此旁边。

我尝试过更改

div
宽度、边距、填充、浮动、对齐,但似乎不起作用。

let renArea = document.querySelector("#render");
let cc = renArea.getContext("2d"); //cc for canvas contenxt.

//Pre-Display
document.querySelector("#postion-display").innerHTML = "Put mouse on canvas.";

//Get mouse (X, Y) and siplay it for user refrence. 
function getMousePosition(canvas, event) {
    let rect = canvas.getBoundingClientRect();
    let x = event.clientX - rect.left;
    let y = event.clientY - rect.top;
    document.querySelector("#postion-display").innerHTML = "Coordinate x: " + Math.round(x) + " Coordinate y: " + Math.round(y);
}

renArea.addEventListener("mousemove", function (e) {
    getMousePosition(renArea, e);
}); 


cc.moveTo(0, 0);
cc.lineTo(200, 100);
cc.stroke();
html, body {
    margin: 0px;
    margin-top: 5vh;
}

.wrapper {
    margin: 0px;
}

.header {
    position: fixed;
    padding: 1px;
    width: 100%;
    top: 0;    
    padding-left: 12px;
    background: lightcoral;
}

.render-area {
    margin: 0px;
}

canvas {
    border: 2px solid black;
    float: right;
    margin-right: 10px;
}
<!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Render | Js</title>

        <link rel="stylesheet" href="media/global.css">
    </head>
    <body>
        <div class="wrapper">
            <div class="header">
                <h3>Render | Js</h3>
            </div>

            <div class="editor" style="width: 50%; float: left;">
                <p id="postion-display"></p>
            </div>
            <div class="render-area" style="float: left; width: 50%;">
                <canvas width="500" height="500" id="render"></canvas>
            </div>
        </div>

        <script src="./src/render.js"></script>
    </body>
</html>

javascript html css
1个回答
1
投票

这取决于您如何定义对齐,但最好的方法是将两个元素放置在

display: flex
容器中,从而使您能够以多种方式对齐和对齐它们。另请参阅https://css-tricks.com/snippets/css/a-guide-to-flexbox/

.d-flex {
  display: flex;
  width: 100%;
  
  /* the X axis */
  justify-content: center;
  
  /* the Y axis */
  align-items: start;
}


/* remove margin of <p> */
#postion-display {
  margin: 0;
}
<div class="d-flex">

  <div class="editor">
    <p id="postion-display">X: 200, Y: 300</p>
  </div>
  
  <div class="render-area">
    <canvas width="200" height="200" id="render" style="border: 1px solid red"></canvas>
  </div>
  
</div>

© www.soinside.com 2019 - 2024. All rights reserved.