javascript - 为什么我需要垂直对齐 Canvas 来对齐按钮?

标签 javascript css html

为了将按钮放在中间,我需要将 vertical-align:middle; 放到 Canvas 上。

把它放在 td 上会更有意义,但它什么也没做。

为什么我需要在 Canvas 上放置 vertical-align:middle; 来垂直对齐按钮?

<!DOCTYPE html>
<table>
    <tr>
        <td>
            <button>Hey</button>
        </td>
        <td>
            <canvas width="40px" height="40px" 
                style="vertical-align:middle; border:2px solid black">
            </canvas>
        </td>
    </tr>
</table>

最佳答案

Canvas 本身没有对齐任何东西。它位于自己的基线上。通过 vertical-aligning:middle,您将 Canvas 的中间对齐到文本的基线,即文本的底部,而不是按钮的中间。

for a very detailed explanation of how vertical-align works

button {
    font-size: 24px;
    padding: 20px 0 10px;
}
div {
    font-size: 60px;
    padding: 10px 0 20px;
    background: blue;
    display: inline-block;
}
canvas {
    width: 100px;
    height: 100px;
    border: 2px solid black;
    vertical-align: middle;
}
<button>Hey</button>
<div>Hey</div>
<canvas></canvas>

关于javascript - 为什么我需要垂直对齐 Canvas 来对齐按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28736815/

相关文章:

javascript - 无法以模式打开 ShareThis 的 facebook "share this"按钮

html - 除非 html 包含类,否则应用 CSS

javascript - 在特定日期/时间仅在移动 View 中显示/隐藏元素

javascript - jquery 性能 - 清除 .html 内容时页面滞后

javascript - 未处理的 JS 异常 : Cannot create styled-component for component: [object Object]

javascript - 内联 Javascript 事件会降低网页加载性能吗?

javascript - 从对象数组中返回具有最高键/值对的对象

javascript - 在两个 Angular 数组之间切换 z-index

javascript - 调整多边形保持位置 - jQuery

html - 我在哪里可以了解如何将 html5 用于客户端数据库应用程序?