我有以下代码块:
<div class="1">
Foo<br>1
</div>
<div class="2">
Bar<br>2
</div>
.1
和.2
都设置为position:relative;display:inline-block
。但是,它们显示如下:
Bar
Foo 2
1
显然,课程.2
垂直放置在它自然的位置,但是课程.1
的第一行从.2
的第二行开始,所以整个div被推倒了。这对我来说似乎很奇怪,因为.2
位于.1
之后,所以我希望.2
根据.1
的位置来定位,而不是相反。当我在.1
之前添加更多div时,此模式会继续。我怎样才能让他们直接展示,像这样?
Foo Bar
1 2
答案 0 :(得分:1)
与其他人一样,1
和2
不适用于班级名称;我已将它们分别更改为a
和b
。并且他们也是正确的,你的CSS是嵌套的,但你没有为你的小提琴选择SCSS,所以这是无效的CSS。解决这两件事情并且有效:
.wrapper { position: relative; display: inline-block; }
.a, .b { position: relative; display: inline-block; }
<div class="wrapper">
<div class="a">
Foo<br>1
</div>
<div class="b">
Bar<br>2
</div>
</div>
另外,请忽略有关使用表格和浮点数的建议。它们没有错,但它们不会明确修复代码中的错误。
答案 1 :(得分:0)
如果希望元素按照示例中所示进行对齐,则可以使用float或inline-block。
.class1 {
display: inline-block;
}
.class2 {
float: left;
}
<div class="class1">Foo
<br />1</div>
<div class="class1">Bar
<br />2</div>
<hr />
<div class="class2">Foo
<br />1</div>
<div class="class2">Bar
<br />2</div>
请注意,您使用的是无效的类名,请参阅规范here。简而言之,类名必须以下划线(_),连字符( - )或字母(a-z)开头,后跟任意数量的连字符,下划线,字母或数字。此外,如果第一个字符是连字符,则第二个字符必须是字母或下划线,并且名称长度必须至少为2个字符。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码。