行内元素与行内块元素的区别

 我来答
华源网络
2022-06-11 · TA获得超过5593个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:147万
展开全部

在最近的项目中。出现了原来已经设置溢出隐藏的元素却又溢出了的问题。
经过查证原来是用来做父元素的 <a> 变成了 <button> 。(这是一个封装好的组件。检测到有效 href 就渲染a否则就是button。)
这也引出一个关于行内元素和行内块元素的问题。

行内元素也就是 display:inline 的元素,最典型的是 <a> 标签。

行内块元素就是 display:inline-block 的元素,典型的有 input 。

请看下图

这图很清楚的表明常见的三种元素显示类型。

行内元素

行内块元素和块级元素的属性基本一致。可以设高宽、边距。不同在于它允许左右存在元素。而块级元素就算只有1px也不允许有元素和它共享一行。

那么如果它们内嵌块级元素会怎么样呢,html结构如下

我们可以改变 里面的 div的宽度可以看出a标签的宽度是不随着子元素的宽度变化而变化的,一直与自己的父级一致。倒是高度会随着变化。

行内块则不同,它的宽高都是随着内部块级元素的变化而变化相当于 height:auto;width:auto 。

这也解释我在开头遇见的问题。我给组件设置了 overflow:hidden 。a标签宽度随父元素,所以能生效。而 <button> 的宽度却随着子元素的宽度变化而变化的,它的 overflow:hidden 毫无用处。

结论:

参考 CSS display: inline vs inline-block [duplicate]

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式