移动端分割线两端文字在小屏幕挤在一起怎么办?
我在用Divider组件做两端文字的分割线时,移动端显示特别怪。像这样:
.divider-with-text {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 0;
}
.divider-with-text::before,
.divider-with-text::after {
content: '';
flex: 1;
border-bottom: 1px solid #ccc;
margin: 0 8px;
}
文字超过一定长度后,小屏幕下两边文字就会挤到中间重叠了。我试过设置flex-wrap和调整margin,但文字还是会挤在一起……有没有什么好的响应式方案?
你这个布局挤在一起的根本原因是:flex容器强行把所有子元素都塞在一行里。我们可以这样优化:
使用时注意结构:
关键点:
1. 允许flex容器换行
2. 把伪元素拉成单独的一行
3. 给文字容器加最小宽度限制
这样在小屏幕上会自动变成:
在宽屏上又能自动恢复成左右分布的分割线样式。数值可以根据你的实际内容调整,希望能帮到你!
直接上方案:给两边的文字加上
min-width和overflow处理,超出部分用省略号代替。这样即使屏幕很小,文字也不会挤到中间去。再配合媒体查询,小屏幕下可以把
margin调大一点,或者改用单行显示:这样基本就能解决你的问题了。测试一下吧,如果还有其他特殊情况再调整。前端这种布局问题,很多时候就是靠这些小技巧来搞定的。