我在彼此相邻的div中有两个跨度。但是当我将overflow: hidden
添加到span
之一时,它会变得未对齐。
为什么会这样?
.parent {
border: 1px solid red;
}
.one {
height: 30px;
width: 30px;
background-color: #4784ff;
display: inline-block;
}
.two {
height: 30px;
width: calc(100% - 30px);
background-color: #08dd0f;
display: inline-block;
overflow: hidden;
}
<div class="parent">
<span class="one">One</span><span class="two">Two</span>
</div>
答案 0 :(得分:1)
尝试一下:-
使用vertical-align: top;
.parent {
border: 1px solid red;
}
.one {
height: 30px;
width: 30px;
background-color: #4784ff;
display: inline-block;
vertical-align: top;
}
.two {
height: 30px;
width: calc(100% - 30px);
background-color: #08dd0f;
display: inline-block;
overflow: hidden;
}
<div class="parent">
<span class="one">One</span><span class="two">Two</span>
</div>
答案 1 :(得分:0)
好的,所以我为您修复的方式是使用verticle-align:bottom
。
发生这种情况的原因仅仅是CSS有问题。它已经有了很大的改进,但是仍然存在问题。这是一个很好的例子。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div class="parent">
<span class="one">One</span><span class="two">Two</span>
</div>
<style>
.parent {
border: 1px solid red;
}
.one {
height: 30px;
width: 30px;
background-color: #4784ff;
display: inline-block;
}
.two {
height: 30px;
width: calc(100% - 30px);
background-color: #08dd0f;
display: inline-block;
overflow: hidden;
vertical-align: bottom;
}
</style>
</body>
答案 2 :(得分:0)
默认情况下,display: inline-block
设置为vertical-align: bottom;
,因此您需要为vertical-align: top
设置span
。
注意:溢出仅适用于position
,因此在这里签入代码片段可以正常工作。
.parent {
border: 1px solid red;
}
.one {
height: 30px;
width: 30px;
background-color: #4784ff;
display: inline-block;
}
.two {
height: 30px;
width: calc(100% - 30px);
background-color: #08dd0f;
display: inline-block;
}
<div class="parent">
<span class="one">One</span><span class="two">Two</span>
</div>
答案 3 :(得分:-1)
更具体: vertical-align具有大约5个值: - 最佳 -底部 - 中央 -基线 -继承
如果元素的高度不同,您将看到不同的高度。 -顶部:所有元素都将与顶部对齐 -底部:所有元素都将与底部对齐 -中心:所有元素都将与中心对齐 -基线(默认):取决于字体大小,行高,它们将对齐。 -继承:只是从父项简单继承。
还有一个额外的信息:如果您的标记在元素之间没有提供任何空格,则可以正常工作,但是由于它们是内联块,因此,单个换行符或空格会将它们分成两个单词(有点像)所以...在他们之间,有空间。无论您如何设置两者的宽度(例如,两个都设置为50%),由于空格,它们仍然会分成两行或更多行。