我试图将一个div中的两个div对齐在一行中。我尝试过以下代码:
<div style="width:100%">
<div id="id1" style="width:40%;float:left;background-color:green;position:relative">
float-left
</div>
<div id="id2" style="width:60%;float:right;background-color:yellow;position:relative">
float-right
<div id="id3" style="position:relative;left:0px">
button1
</div>
<div id="id4" style="position:absolute;right:0px">
button2
</div>
</div>
</div>
我需要在与span相同的行中使用id3和id4的div,但我不想在id2 div中使用span
标记?
我尝试使用position作为绝对值和相对值以及组合,但它没有在同一行内对齐。我错过了什么?
答案 0 :(得分:3)
只需添加display:inline-block
<div style="width:100%">
<div id="id1" style="width:40%;float:left;background-color:green;position:relative">
float-left
</div>
<div id="id2" style="width:60%;float:right;background-color:yellow;position:relative">
<div id="id3" style="display:inline-block;">
button1
</div>
<div id="id4" style="display:inline-block;">
button2
</div>
</div>
</div>
答案 1 :(得分:2)
试试这个。
{{1}}&#13;
答案 2 :(得分:0)
最佳解决方案是设置display: inline-block
,如下所示:
<div id="id2" style="width:60%;float:right;background-color:yellow;position:relative">
float-right
<div id="id3" style="display: inline-block;">
button1
</div>
<div id="id4" style="display: inline-block;">
button2
</div>
</div>
</div>
您还可以添加属性top: 0px
,这将为您提供相同的结果。但是,由于您的确切问题,display: inline-block
更加清晰且存在。
div
最初是一个块,因此跨越其父元素的整个宽度。这意味着div
被置于彼此之下,如果他们没有被告知inline-block
,这将使他们“包裹”他们的内容。
为您的元素添加边框,并查看inline-block
和block
之间的区别。
答案 3 :(得分:0)
Flex是您的朋友,无需添加这些内联样式:
.container {
display: flex;
}
#id1 {
flex: 0 0 40%;
}
#id2 {
flex: 0 0 60%;
display: flex;
}
#id3,
#id4 {
margin: 0 auto;
}
div {
border: 1px solid red;
box-sizing: border-box;
}
&#13;
<div class="container">
<div id="id1">
float-left
</div>
<div id="id2">
float-right
<div id="id3">
button1
</div>
<div id="id4">
button2
</div>
</div>
</div>
&#13;
然后你可以简单地调整值和对齐以获得你需要的东西。
答案 4 :(得分:-1)
您可以使用Flex-box设计来确定div和其他块级元素的布局。虽然检查浏览器的兼容性 参考。 https://css-tricks.com/snippets/css/a-guide-to-flexbox/
<div style="width:100%">
<div id="id1" style="width:40%; float:left; background-color:green; position:relative">
float-left
</div>
<div id="id2" style="width:60%; float:right; background-color:yellow; position:relative; display:flex; flex-direction:row">
float-right
<div id="id3" style="position:relative; left:0px;">
button1
</div>
<div id="id4" style="position:absolute;right:0px;">
button2
</div>
</div>
</div>