
手机端布局异样之解
在电脑上调试正常,但在手机上访问却出错,布局代码如下所示:
<table>
<tbody>
<tr class="cards">
<td>卡片1</td>
<style>
.cards {
display: flex;
}
</style>
</tr>
</table>
登录后复制
问题的原因在于 Flexbox 的作用范围。在该代码中,Flexbox 属性应用于 .cards 类,但其作用范围仅限于表 (table) 层级。因此,Flexbox 的布局规则不会应用于行 (tr) 和单元格 (td) 层级。
在 PC 端,效果之所以正常,是因为还设置了 celacing 属性为 19px,导致相邻 td 单元格之间的间距为 19px;这并不是 Flexbox 的作用。而在移动端,td 元素没有指定宽度,导致其默认占据 100% 的宽度,从而产生错误布局。
为了解决此问题,可以在 .cards 类中同时设置 Flexbox 属性和宽度限制,如下所示:
<tr class="cards">
<td>卡片1</td>
<style>
.cards {
display: flex;
width: 100%;
}
</style>
</tr>
登录后复制
此外,DOM 结构在手机上不显示失败的原因是 Flexbox 布局只影响子元素的布局,不会修改 DOM 结构本身。
以上就是手机端布局异常,电脑端正常,Flexbox布局问题该如何解决?的详细内容,更多请关注米云其它相关文章!
