你可以漂浮在跨度的右侧吗?

在下面的代码我想updown浮动红线的权利,但他们漂浮过去,到div。

为什么是这样?

#outer {
  margin-top: 50px;
  margin-left: 50px;
  width: 300px;
  border: 1px solid lightgrey;
}

.inner {
  border: 1px solid red;
  padding: 15px 80px 15px 40px;
  position: relative;
}

.up, .down {
  border: 1px solid #000;
  float: right;
}

.down {
  clear: both;
}
<div id="outer">
  <span class="inner">
    <span class="quantity">Quantity</span>
    <span class="up">up</span>
    <span class="down">down</span>
  </span>
</div>

如果你检查文档,你会阅读这个:

由于float意味着使用块布局 ,所以它在某些情况下会修改显示值的计算值:

在这里输入图像描述

这意味着你的浮动span变成了内联元素中的块元素 ,这会破坏你的布局。

您还可以注意到, padding-top / padding-bottomborder-top / border-bottom不会影响outer div的高度。 这是因为只有line-height计算线boxref的高度时被使用; 因此outer div的高度等于线框的高度。 (您可以增加行高以查看差异)

为了解决这两个问题,您可以将.inner范围的显示更改为inline-block

#outer {
  margin-top: 50px;
  margin-left: 50px;
  width: 300px;
  border: 1px solid lightgrey;
}

.inner {
  border: 1px solid red;
  padding: 15px 0 15px 40px; /*remove padding-right to have them close to the red line*/ 
  position: relative;
  display:inline-block;
}

.up, .down {
  border: 1px solid #000;
  float: right;
}

.down {
  clear: both;
}
<div id="outer">
  <span class="inner">
    <span class="quantity">Quantity</span>
    <span class="up">up</span>
    <span class="down">down</span>
  </span>
</div>
链接地址: http://www.djcxy.com/p/3741.html

上一篇: Can you float to the right of a span?

下一篇: Best practices for API versioning?