手机适配之防止文字错乱
注:防止各字段文字内容因手机屏幕宽度不够自动换行,导致显示位置错乱。
思路:通过修改CSS设置自适应布局方式。禁止除最后一行字段外的所有字段自动换行功能,当文字内容一行显示不全时,最后一行字段自动换行并设置左边距使上下文字内容对齐。
HTML代码:
<div id="services">
<div class="service-status">
<div class="status-icon normal"></div>
<span>物存:0.28GB</span>
<span>虚存:2.47GB</span>
<span>服务名:halo</span>
</div>
<div class="service-status">
<div class="status-icon normal"></div>
<span>物存:0.00GB</span>
<span>虚存:0.02GB</span>
<span>服务名:ydzs</span>
</div>
<div class="service-status">
<div class="status-icon normal"></div>
<span>物存:0.00GB</span>
<span>虚存:0.02GB</span>
<span>服务名:ydzs_jianfei</span>
</div>
<div class="service-status">
<div class="status-icon normal"></div>
<span>物存:0.02GB</span>
<span>虚存:0.45GB</span>
<span>服务名:nginx</span>
</div>
<div class="service-status">
<div class="status-icon normal"></div>
<span>物存:0.03GB</span>
<span>虚存:4.97GB</span>
<span>服务名:docker</span>
</div>
</div>
CSS代码:
.service-status {
/*设置布局方式*/
display: flex;
align-items: center;
padding: 10px;
/*美化。设置每个应用了service-status类的标签下方都出现一条1px大小的灰色横线*/
border-bottom: 1px solid #ccc;
}
.status-icon {
/*设置图标宽高度*/
width: 15px;
height: 15px;
/*设置图标为圆形*/
border-radius: 50%;
/*设置图标右边距为10px*/
margin-right: 10px;
}
.service-info {
/*设置布局方式*/
flex-grow: 1;
display: flex;
justify-content: space-between;
align-items: center;
}
.service-name {
/*设置布局方式*/
flex-grow: 1;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.service-status span {
margin-right: 10px; /* 设置每个<span>元素右侧的间距为10像素,根据需要调整 */
}
/*如果手机访问,则切换至以下CSS样式*/
@media (max-width: 768px) {
body {
flex-direction: column;
}
.service-status {
flex-wrap: wrap;
}
.service-status span {
/*设置所有<span>标签禁止换行,设置右对齐10px*/
white-space: nowrap;
margin-right: 10px;
}
/*设置允许最后一个<span>自动换行,设置该<span>宽度100%以填充满右侧空间*/
.service-status span:last-child {
width: 100%;
/*设置换行后的<span>元素左侧的间距为25像素,根据需要调整*/
margin-left: 25px;
}
}
预览图: