CSS笔记 ( 十 ) 单行多行文本溢出 及 解决方法


 
 
 


博主的 Github 地址


0. 正常的文本显示

  • 在 div 中输入文本, 默认会自动换行
  • HTML代码
<div class="overtext solution">
        文本溢出文本溢出文本溢出文本溢出文本溢出文本溢出文本溢出文本溢出文本溢出文本溢出
    </div>
  • CSS代码
    class solution 目前为空, 后面会用到
        .overtext {
            width: 250px; 
            height: 55px; 
            border: 2px aqua solid;
            font-weight: bold;
            color: white;
            margin: 20px;
        }
  • 效果展示
    在这里插入图片描述
     
     

1. 单行文本溢出

  • 文本设置不换行, 超出容器边框的文本将会被挤出框外
    属性设置white-space: nowrap, 意思是遇到空格文本分隔符也不换行,
    由于这个属性默认值是white-space: normal, 会自带文本根据容器大小进行换行,
    要取消这个这个属性就要改变值, 因此值设置为不换行即可

 

  • CSS代码
        .solution {
            white-space:nowrap;
        }

 

  • 在容器调用的另一个 class 中加入这两行属性设置后的效果,
    如下所示, 文本没有进行换行并且超出了容器的边界

    在这里插入图片描述
     
     
     

2. 单行文本溢出的解决方法

方法 1 : 溢出边界部分进行隐藏

  • 利用 overflow 属性的设置即可将超出边界的部分进行隐藏
  • CSS 代码展示
        .solution {
            white-space:nowrap;
            overflow: hidden;
        }
  • 效果展示
    显而易见, 这个效果并不好, 在边界处的文字被边界截断了, 需要对边界进行微调,
    但这样每次改变都要进行调整, 自适应性极差, 不推荐经常更改的容器使用

    在这里插入图片描述

方法 2 : 溢出边界部分用省略号展示

  • 利用 overflow 属性的设置即可将超出边界的部分进行隐藏,
    需要配合overflow: hidden;一起使用

     
  • CSS 代码展示
        .solution {
            white-space:nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
  • 效果展示
    显而易见, 在即将超出边界的文本中, 被省略号所替代

    在这里插入图片描述
     
     
     

3. 多行文本溢出

  • 当容器中的文本过多时, 就会超出下边界, 容器就会不能容纳这些文字
     
  • 溢出情况 1: 当文字高度是字体高度的整数倍时
    这时的边框没有截断文字, 刚好也能包下在边界内的文字

    在这里插入图片描述
  • 溢出情况 2: 当文字高度不是字体高度的整数倍时, 这时的边框就会截断文字
    在这里插入图片描述
     
     
     

4. 多行文本溢出的解决办法

  • 纯CSS解决的方法只有在 webkit 内核的浏览器才能实现
    其它用 CSS 的解决方法都不能完美解决这个问题, 只能用 JS 解决

webkit 内核浏览器适用的方法

  • 附上 webkit 内核浏览器用的方法,
    由于移动端浏览器绝大部分是 webkit 内核,
    因此这个方法适合移动端使用
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;

 

所有浏览器都适用的 JS 方法

这是博主自己写的 js 解决多行文本溢出的方法, 记录在这篇博客里面, 感兴趣的话可以看一下
https://blog.csdn.net/leon9dragon/article/details/103906616

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值