带背景色的文字单行溢出处理:去除多余的背景色
当一个带有背景色的文本因单行溢出而被省略时,可能会出现最后一个背景色块多余的情况。针对这种情况,可以通过以下方式进行处理:
在示例代码中,问题在于当文本溢出时,overflow: hidden 属性会导致所有文本元素(包括最后一个)都隐藏。为了解决该问题,需要对 text 元素进行修改。
解决方法:
将以下 css 样式添加到 text 元素中:
display: inline-block;
display: inline-block 会将 text 元素变为一个块级元素,且其行内文本流规则仍保持不变。这意味着文本仍会在单行中溢出,但省略会根据 text 元素的边界进行处理,而不是直接截断文本本身。
修改后的代码如下:
.oneline { width: 640rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .oneline text { background-color: #999999; padding: 4rpx 8rpx; margin-right: 12px; display: inline-block; }