html span设置外边距,行内元素内外边距探究:为何span设置上下margin和padding不起效...

一直以为行内元素设置内外边距会不起效,之前也没有具体的去实验,只是在需要设置 margin 或者 padding 的时候给元素设置一个 display: inline-block; 就得了。

d1884ff42d6e822ae74406312e13d399.png

今天正好有时间,就来实验了一把。原来 span 标签默认的不是只能设置左右边距,还有更有意思的现象。

我给 span 标签设置了 10px 的内边距和外边距,并设置了背景色,外面嵌套一个 p 标签。

从 span 的背景色可以看出,padding 是设置上了。只不过无法把p标签撑开罢了。 margin 则只能设置左右边距,上下边距不起效。

但是 padding-top 去哪了?怎么看不到呢?

b1545cdb33ee19b7b99e758c0cfeb110.png

我又给外部容器设置了一个外边距,这样上内边距就显示出来了。

b1545cdb33ee19b7b99e758c0cfeb110.png

原来 span 等行内元素是可以设置内边距 padding 的,只不过元素本身无法把父元素撑开,看上去就是设置的 padding 上下边距不起效了,而 margin 就只能设置 span 的左右边距。

所以,如果要给 span 设置边距,一般的方法就是给它设置一个 display: inline-block; ,把它变成行内块级元素就可以了。

贴一下代码:

HTML:

我想要边距

我想要边距

我是一个P

CSS:

* {

padding: 0;

margin: 0;

}

.container {

width: 600px;

margin: 20px auto;

text-align: center;

}

p {

border: 2px solid #0f9deb;

}

span {

padding: 10px;

margin: 10px;

background: #F0DE7D;

line-height: 20px;

}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值