html - 为什么带有“display:inline;line-height:0”的元素中的文本在不同的行中仍然有不同的 yAxis 位置?
问题描述
下面代码的高度将超出单行“a”
<span style="display:inline;line-height:0;">aaaaaaaaaaaaaaaaaaaaaa</span>
下面代码的高度将保持不变,与单行'a'的高度相同
<span style="display:inline-block;line-height:0;">aaaaaaaaaaaaaaaaaaaaaa</span>
下面的代码显示了两种外观
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<style>
.parent{
border:1px solid red;
margin:100px;
width: 300px;
}
.child1{
display:inline;
line-height:0;
font-size: 50px;
word-break: break-all;
}
.child2{
display:inline-block;
line-height:0;
font-size: 50px;
word-break: break-all;
}
</style>
<div class="parent">
<span class="child1">aaaaaaaaaaaaaaaaaaaaaa</span>
</div>
<div class="parent">
<span class="child2">aaaaaaaaaaaaaaaaaaaaaa</span>
</div>
</body>
</html>
解决方案
要获得相同的结果,您需要将相同的font-size
和line-height
应用于父容器
.parent {
border: 1px solid red;
margin: 100px;
width: 300px;
}
.child1 {
display: inline;
/*line-height:0;
font-size: 50px;*/
word-break: break-all;
}
.child2 {
display: inline-block;
line-height: 0;
font-size: 50px;
word-break: break-all;
}
<div class="parent" style="line-height:0;font-size: 50px;">
<span class="child1">aaaaaaaaaaaaaaaaaaaaaa</span>
</div>
<div class="parent">
<span class="child2">aaaaaaaaaaaaaaaaaaaaaa</span>
</div>
使用时,inline-block
您正在考虑-block
创建一个内部包含文本的块元素,因此您将属性应用于文本(内联元素)的容器(块元素)。
使用时,inline
您将属性应用于块元素(parent
元素)内的内联元素
所以主要区别在于,在一种情况下,父块元素正在获取样式,而在另一种情况下,它是内联子元素。为了确保两者的行为相同,块父元素需要应用样式。
这是差异的更好可视化:
.box {
border: 1px solid red;
margin: 50px;
width: 300px;
word-break: break-all;
}
<div class="box" style="line-height:0;font-size: 50px;">
<span >aaaaaaaaaaaaaaaaaaaaaa</span>
</div>
<div class="box">
<span style="line-height:0;font-size: 50px;">aaaaaaaaaaaaaaaaaaaaaa</span>
</div>
推荐阅读
- android - 尝试在 Android 上运行我的 React Native 应用程序时出错
- autocomplete - 自动完成材料-ui 默认/首选项搜索
- java - 尝试使用 OracleDataSource 在 19c DB 中获取连接时出错
- vue.js - Vue 路由器(历史模式)和 Webpack 外部重定向处理
- sockets - 使用静态端口配置从 tcp 中的一个客户端套接字连接两个服务器套接字
- javascript - 是否可以在 TypeScript 中创建严格的“A 或 B”类型?
- arrays - null 不是对象(评估“teachers.length”)
- arrays - CodeSignal firstDuplicate(a)
- python - AttributeError:“Api”对象没有属性“记录”
- r - 为什么我会得到:错误:带有日期的二元运算符的非数字参数?