html 元素之间的换行符打破了 html 布局
Newline between html element breaks html layout
我知道元素之间 html 中的换行符被视为 space,但我认为当您尝试使用响应式布局时,这非常可怕。
例如,这里我们有预期的正确行为,但要获得它,我必须删除元素之间 html 中的换行符:
https://jsfiddle.net/xew2szfu/1/
<div class="recommend-friend__dialog">You should see only me</div><div class="recommend-friend__dialog recommend-friend__dialog--variant">... but NOT ME!</div>
这里我用换行符写了 html ,就像你通常做的那样,一切都坏了:
https://jsfiddle.net/rL1fqwkc/1/
<div class="recommend-friend__dialog">You should see only me</div>
<div class="recommend-friend__dialog recommend-friend__dialog--variant">... but NOT ME!</div>
我知道我可以用 float: left 解决这个问题,但我想知道我是否遗漏了什么,默认行为对我来说真的不正确。
发生这种情况是因为 inline-block
在元素之间放置了一个 space,并且随着 space 第二个 div 向下移动,因为它不适合该行了。
有很多方法可以解决这个问题。正如你所说,浮动是其中之一。 This excellent CSS Tricks article is a great help, 但我将介绍您可能想要的那些:
负保证金:
nav a {
display: inline-block;
margin-right: -4px;
}
很简单,你可以有一个很好的 html 格式,但是移动元素以隐藏 space。
将字体大小设置为 0:
.recommend-friend__slider{
font-size: 0;
}
.recommend-friend__dialog {
font-size: 12pt;
}
或者,我个人最喜欢的,跳过内联块,改用 flexbox。
我知道元素之间 html 中的换行符被视为 space,但我认为当您尝试使用响应式布局时,这非常可怕。
例如,这里我们有预期的正确行为,但要获得它,我必须删除元素之间 html 中的换行符: https://jsfiddle.net/xew2szfu/1/
<div class="recommend-friend__dialog">You should see only me</div><div class="recommend-friend__dialog recommend-friend__dialog--variant">... but NOT ME!</div>
这里我用换行符写了 html ,就像你通常做的那样,一切都坏了: https://jsfiddle.net/rL1fqwkc/1/
<div class="recommend-friend__dialog">You should see only me</div>
<div class="recommend-friend__dialog recommend-friend__dialog--variant">... but NOT ME!</div>
我知道我可以用 float: left 解决这个问题,但我想知道我是否遗漏了什么,默认行为对我来说真的不正确。
发生这种情况是因为 inline-block
在元素之间放置了一个 space,并且随着 space 第二个 div 向下移动,因为它不适合该行了。
有很多方法可以解决这个问题。正如你所说,浮动是其中之一。 This excellent CSS Tricks article is a great help, 但我将介绍您可能想要的那些:
负保证金:
nav a {
display: inline-block;
margin-right: -4px;
}
很简单,你可以有一个很好的 html 格式,但是移动元素以隐藏 space。
将字体大小设置为 0:
.recommend-friend__slider{
font-size: 0;
}
.recommend-friend__dialog {
font-size: 12pt;
}
或者,我个人最喜欢的,跳过内联块,改用 flexbox。