span标记和css“margin- *”属性的不可理解性

时间:2013-01-06 12:35:47

标签: html css

span标记不支持css margin-top属性。

问:为什么?

答:因为span不是块元素?!

好的,但为什么支持span标记margin-left属性?

DEMO:http://jsfiddle.net/h4xNK/

3 个答案:

答案 0 :(得分:4)

正如@flem所解释的那样这是因为span元素是内联元素,而不是块级元素,不像div。如果您希望它的行为不同,则需要通过display:inline-blockblock明确说明。

如果您可以控制标记,那么根据其上下文和内容,您可能需要考虑实际使用div

答案 1 :(得分:1)

HTML(内联)遍历页面(因此支持margin-left)。您可以使用margin-topline-heightpadding 模仿 baseline-shift

答案 2 :(得分:1)

显示inline的元素忽略了margin-top等属性;并且span默认情况下将显示设置为内嵌,但您可以将其更改为blockinline-block,然后它就可以正常工作 - jsfiddle