如何解决<i>标签设置display:inline不生效始终为块级元素的问题
问题原因
你给<i>设置display: inline不生效,根本不是<i>的属性没生效,而是上层布局逻辑错误导致的换行,核心问题出在2处:
- 破坏了Bootstrap原生
.row的布局逻辑:.row默认是display: flex弹性布局,你给绑定了.row的.redesSociais容器加了display: inline,直接打乱了弹性布局规则,导致子元素排布异常。 - 没有处理同容器内
<h2>的默认属性:<h2>是原生块级元素,默认独占整行,就算<i>是行内元素,也会被<h2>挤到下一行显示。
Font Awesome的<i>标签默认就是inline-block属性,本身就支持并排显示,不需要额外加display: inline声明。
修复方案
把你CSS中对应的部分替换为如下代码即可:
.redesSociais{ margin: 20px; /* 保留.row默认的flex布局,删掉原来的display: inline */ align-items: center; /* 让标题和图标垂直居中对齐 */ gap: 16px; /* 调整元素之间的间距,可自行修改数值 */ } /* 清除h2默认样式避免影响布局 */ .redesSociais h2 { margin: 0; font-size: 1.25rem; } .redesSociais i { background-color: chocolate; font-size: 1.25rem; /* 调整图标大小和标题匹配,可自行修改 */ }
如果不需要标题和图标在同一行,只需要三个图标在下一行并排,可以把三个<i>标签单独包裹在一个<div>里放在<h2>下方即可,不需要修改上面的CSS。
内容的提问来源于stack exchange,提问作者Thiago
相关产品推荐
相关产品推荐

