html - 关于 svg 的流模型的疑问

标签 html css button svg

<分区>

我有以下代码:

body {              background-color: black; }
.root {             background-color: aqua; }
.svg-container {    background-color: lightgray; }
svg {               background-color: red; }
.btn {              background-color: yellow; }

.svg-container, .btn {
    display: inline-block;
}
svg {
    height: 60px;
    width: 60px;
}

svg, .svg-container, .btn {
    margin: 0;
    padding: 0;
    border: 0;
}
<html>
<head></head>
<body>
    <div class="root">
        <div class="svg-container">
            <svg></svg>
        </div>
        <button class="btn">Button</button>
    </div>
</body>

</html>

我希望 .svg-container 的高度与包含的 svg = 60px 完全相等。此外,.btn 应该在顶部而不是底部。 .btn 的另一个有趣的事情是它上面有很多空间,但 .btn 和包含的 .div 之间有一些间隙.

为什么会这样?

最佳答案

那是因为您正在为您的 SVG 元素使用 inline-block。虽然它保留了一些 block 级样式的可能性(例如显式声明垂直尺寸、填充和边距的能力),但它也显示了一些内联元素行为,例如与基线对齐。。 p>

如果您查看您的代码片段,您会发现内联 block SVG 的底部与其旁边的按钮文本的基线齐平。所有 inline 和 inline-block 元素下方的额外空间是为字形上的下行保留的空间,例如 gp、`q 等字符的悬挂部分。

关于html - 关于 svg 的流模型的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43366104/

上一篇:javascript - jQuery - 如果仅匹配两个特定单词则显示 div

下一篇:jquery - jQuery slider 在cakephp 3中不起作用

相关文章:

java - 在Java中将HTML解析为字符串

javascript - 更改日期格式(Javascript/Angular)

javascript - JQuery,如何组合子选择器?

javascript - IE11 CSS Translate3d shifts DOM 元素事件

css - flex 盒容器宽度不会增长

css - 我怎样才能用 div 而不是纯 css 中的表格来实现这个 100% 的高度效果?

android中蓝色的HTML按钮

android - 具有背景颜色的自定义按钮

javascript - HTML 按钮与进度条

java - 安装后按钮不会显示在应用程序中