前言
在实际开发中,我们不可避免的有时需要给行内元素设置宽高,那么如何来实现呢?
方法一:使用display
display:block/inline-block/flex/inline-flex
<style>
* {
list-style: none;
border: 0;
padding: 0;
margin: 0
}
span {
100px;
height: 100px;
background: red;
text-align: center;
line-height: 100px;
display: block/inline-block/flex/inline-flex;
}
</style>
<span>1</span>
效果图:

方法二:使用position
position:absolute/fixed
<style>
* {
list-style: none;
border: 0;
padding: 0;
margin: 0
}
span {
100px;
height: 100px;
background: red;
text-align: center;
line-height: 100px;
position:absolate/fixed;
}
</style>
<span>1</span>
效果图:

方法三:使用float
float:left/right
<style>
* {
list-style: none;
border: 0;
padding: 0;
margin: 0
}
span {
100px;
height: 100px;
background: red;
text-align: center;
line-height: 100px;
float:left/right;
}
</style>
<span>1</span>
效果图:

使用position和float的原因

解析:通过调试工具不难发现,float和position方法有一个共同的表现:display:block,这不是偷偷的把行内元素变为块级元素了吗?其实就算将display设置为flex/inline-flex/inline-block,在computed中查看display会发现属性值也为block,也就是说以上三种方法的原理是一致的。