你可以漂浮在跨度的右侧吗?
在下面的代码我想up
和down
浮动红线的权利,但他们漂浮过去,到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-bottom
和border-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