移动端实现标题文字的截断

适用场景

 
当屏幕分辨率为320X500时模块标题效果如下:
技术分享
技术分享
 
 
当屏幕分辨率为480X500时模块标题效果如下:
技术分享
技术分享
 
 
也就是当屏幕分辨率大时显示的文字多,分辨率小时显示文字少,同时需要保证这一部分始终完全显示。
 
实现方式
 
方案一: DEMO 来自@蒋轩哲

技术分享

  1.  为整个容器 和 标题文字容器 添加 overflow:hidden;text-overflow:ellipsis;white-space:nowrap;  保证内容在一行内显示。效果如下,我们需要显示的网站标识同时也被省略掉了,这时我们接着改进技术分享
  2. 标题文字容器添加 display:inline-block;max-width:100%;设置容器最大宽度为100%,这时我们发现网站标识被挤到了下面技术分享
  3. 网站标识容器添加 display:inline-block;margin-left:-6em; 通过设置负margin让我们网站标识可以出显示在标题行里技术分享
  4. 标题文字容器接着添加 padding-right:6em;box-sizing:border-box; 通过设置box-sizing属性值为border-box,把padding-right值占用的位置计算到了标题文字容器里,注意:padding-right的值正好是网站标识容器margin-left的调整的值。调整完后的效果如下:技术分享

     

  5. 最后我们调整一下标题文字容器网站标识容器的垂直对齐方式让它们垂直居中对齐技术分享
方案二:DEMO  来自@guopi
技术分享
 
  1. 标题容器添加 display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80%;技术分享
  2. 最后我们调整一下对齐方式让内容在整个容器中垂直居中对齐技术分享
方案三:DEMO 来自@snadn

 

技术分享
 
  1. 标题容器添加 display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;vertical-align:top; 这里我们提前把垂直居中对齐设置好了。技术分享
  2. 又整个容器 添加white-space:nowrap; 把内容控制成一行显示技术分享
  3. 接着为又整个容器添加margin-right:100px;把标题内容限制在一定的宽度内,好让网站标识显示出来。技术分享
  4. 在上面的效果中发现灰色背景也同时被限制在了一定的宽度内,所以我们把背景的设置提出来放在整个容器上,最终效果如下:技术分享
方案四:DEMO 来自@snadn
 技术分享
  1. 标题容器添加 display:inline-block; white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% – 100px);技术分享
  2. 最后我们调整一下对齐方式让内容在整个容器中垂直居中对齐技术分享
 
总结:
  1. 方案一和方案三对于不同分辨率下的截断效果比较统一
  2. 方案二在不同分辨率下有些差异,比如分辨率较大时内容会截断的多一些,分辨率小时内容又会截断的少一些
  3. 方案四在移动端的兼容性不是很好慎用。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。