行内标签通过设置position:absolute/float可以设置行内元素支持宽高
先将一下position的各个属性
- static: 使用正常的布局行为,即此时的top, right, left, bottom和z-index属性无效
- relative: 相对于自己的位置进行偏移,在不改变页面布局的前提下调整元素的位置,因此会在元素未添加定位的时候,坐在位置留下空白。postition:relative对table-*-group, table-row, table-column, table-cell, table-caption元素无效
- fixed: 元素相对于屏幕视口的位置来指定元素的位置,元素在屏幕滚动的时候也不会改变。fixed会创建新的层叠上下文,当元素祖先的transfrom, perspective活filter属性非none时候,容器由视口改为祖先元素
- sticky: 根据正常文档流进行定位,相对它的最近滚动祖先
- 总是创建一个新的层叠上下文
- 一个sticky元素会在固定在离它最近的一个拥有滚动机制的祖先上,(当这个祖先的overflow:hidden, scroll,auto或overlay时)
float元素:指定一个元素沿着其容器的左侧或者右侧放置,允许文本和内联元素从网页的正常流程文档流中移除,但是仍然保持部分的流动性。
浮动元素意味着使用块布局,再某些情况下会修改display值的计算值
再回到本题,
先说总结: position:absolute和float会隐式的改变display类型,不论之前什么类型的元素display:none除外,只要设置了position:absolute/float,就会让元素以display:inline-block的方式显示,可以设置行内元素的宽高,默认宽度不沾满父元素
效果: