当两个元素正确浮动时,它们会切换位置

时间:2018-12-06 13:01:46

标签: html css css-float

我需要将两个元素放置在父元素的右侧,但是,当使用float: right属性时,它将使元素切换位置。

我看了一下这个线程:Prevent Right Floated Elements from Swapping但是,添加display: inline-blocktext-align: right并不能解决问题。

这是

.container {
  width: 300px;
  height: 20px;
  background-color: red;
  margin: 0 auto;
}
.element1 {
  float: right;
  height: 20px;
  width: 10px;
  background-color: blue;
  color: white;
  padding: 10px;
}
.element2 {
  float: right;
  height: 20px;
  width: 10px;
  background-color: yellow;
  padding: 10px;
}
<div class="container">
  <div class="element1">1</div>
  <div class="element2">2</div>
</div>

我想要的结果是蓝色元素,然后是黄色元素。

更新:

我确实知道这是预期的行为,并且第二个元素一直发送到第一个元素之后的右侧,而且我确实知道更改周围的元素可以解决问题,但是,只是想知道是否存在CSS解决方案。

3 个答案:

答案 0 :(得分:1)

.container {
  display: flex;
}

.element4 {
  margin-right: auto;
}
.element5 {
  margin-left: auto;
}

.container {
  width: 300px;
  background-color: red;
}

.element {
  height: 20px;
  width: 10px;
  padding: 10px;
}


.element1 {
  background-color: blue;
  color: white;
}
.element2 {
  background-color: yellow;
  color: black;
}

.element3 {
  background-color: green;
  color: white;
}
.element4 {
  background-color: gold;
  color: black;
}

.element5 {
  background-color: magenta;
  color: black;
}
.element6 {
  background-color: goldenrod;
  color: white;
}
<div class="container">
  <div class="element element1">1</div>
  <div class="element element2">2</div>
  <div class="element element3">3</div>
  <div class="element element4">4</div>
  <div class="element element5">5</div>
  <div class="element element6">6</div>
</div>

答案 1 :(得分:0)

这是预期的行为,要么在HTML中切换元素,要么使用float以外的其他定位方法。

它首先浮动第一个元素,然后看到下一个元素,然后需要再次浮动,以便它越过原始元素。

答案 2 :(得分:0)

使用它。

.container{
  width: 300px;
  height: 20px;
  background-color: red;
  margin: 0 auto;
  position:relative;
}
.element1 {
  position:absolute;
  right:0;
  height: 20px;
  width: 10px;
  background-color: blue;
}
.element2 {
  position:absolute;
  right:10px;
  height: 20px;
  width: 10px;
  background-color: yellow;
}
<div class="container">
  <div class="element1">
  </div>
  <div class="element2">
  </div>
</div>