`
zccst
  • 浏览: 3319127 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

单行溢出和多行文本溢出

css 
阅读更多
作者:zccst

一、单行溢出
1,固定宽度(非常容易)
text-overflow: ellipsis;

2,不固定宽度
思路:想让这个区域成为块元素,然后不换行,溢出隐藏。
display: block;
white-space: nowrap:  #设置如何处理元素内的空白。
text-overflow: ellipsis; #溢出隐藏

另外属性
white-space: nowrap;    #用于处理元素内的空白,只在一行内显示。

word-wrap: break-word; #内容将在边界内换行,仅用于块对象,内联对象要用的话,必须要设定height、width或display:block或position:absolute。
word-break:break-all;  #用于处理单词折断。(注意与第一个属性的对比)

参考地址:http://jingyan.baidu.com/article/e75aca855b1500142edac6d0.html



二、多行溢出
.title{
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	text-align: left;
	box-sizing: border-box;/*解决流式布局中两个水平盒子各分50%的宽度*/
}

在WebKit浏览器或移动端(绝大部分是WebKit内核的浏览器)的页面实现比较简单,可以直接使用WebKit的CSS扩展属性(WebKit是私有属性)-webkit-line-clamp ;注意:这是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。

-webkit-line-clamp用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的WebKit属性。
常见结合属性:
display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示。
-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式。
text-overflow: ellipsis;,可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本 。

引用

overflow : hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;


这个属性比较合适WebKit浏览器或移动端(绝大部分是WebKit内核的)浏览器。

具体例子可以查看 http://www.css88.com/webkit/-webkit-line-clamp/

跨浏览器兼容的方案
比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现;

例如:

p {
    position:relative;
    line-height:1.4em;
    /* 3 times the line-height to show 3 lines */
    height:4.2em;
    overflow:hidden;
}
p::after {
    content:"...";
    font-weight:bold;
    position:absolute;
    bottom:0;
    right:0;
    padding:0 20px 1px 45px;
    background:url(http://css88.b0.upaiyun.com/css88/2014/09/ellipsis_bg.png) repeat-y;
}

看demo:


这里注意几点:

height高度真好是line-height的3倍;
结束的省略好用了半透明的png做了减淡的效果,或者设置背景颜色;
IE6-7不显示content内容,所以要兼容IE6-7可以是在内容中加入一个标签,比如用<span class="line-clamp">...</span>去模拟;
要支持IE8,需要将::after替换成:after;



JavaScript 方案
用js也可以根据上面的思路去模拟,实现也很简单,推荐几个做类似工作的成熟小工具:

1.Clamp.js
下载及文档地址:https://github.com/josephschmitt/Clamp.js
使用也非常简单:

var module = document.getElementById("clamp-this-module");
$clamp(module, {clamp: 3});
DEMO:


2.jQuery插件-jQuery.dotdotdot
这个使用起来也很方便:

$(document).ready(function() {
$("#wrapper").dotdotdot({
//configuration goes here
});
});
下载及详细文档地址:
https://github.com/BeSite/jQuery.dotdotdot
http://dotdotdot.frebsite.nl/

参考:
http://www.cssmojo.com/line-clamp_for_non_webkit-based_browsers/#what-can-we-do-across-browsers
http://css-tricks.com/line-clampin/
分享到:
评论

相关推荐

    CSS实现单行、多行文本溢出显示省略号(…)

    CSS实现单行、多行文本溢出显示省略号(…)示例文档,自行下载查看

    CSS实现单行、多行文本溢出显示省略号的实现方法.docx

    总结来说,CSS实现单行或多行文本溢出显示省略号的方法主要包括使用`white-space: nowrap`, `overflow: hidden`, 和 `text-overflow: ellipsis`组合,以及利用Webkit的`-webkit-line-clamp`属性和CSS渐变背景技术。...

    CSS实现单行、多行文本溢出显示省略号的实现方法.pdf

    这里我们将详细介绍如何使用CSS实现单行和多行文本溢出时显示省略号。 首先,我们来看单行文本溢出的实现。当需要对单行文本进行截断时,可以使用以下CSS样式: ```css { width: xxpx; /* 定义一个宽度 */ ...

    BInyLU#blognews#CSS实现单行、多行文本溢出显示省略号(…)1

    实现方法:效果如图:但是这个属性只支持单行文本的溢出显示省略号,如果我们要实现多行文本溢出显示省略号呢。实现方法:效果如图:适用范围:该方法适用范围广,但文字未

    单行文本与多行文本溢出时显示省略号的CSS设置

    总结来说,单行和多行文本溢出显示省略号的CSS设置主要依赖于`overflow`, `text-overflow`和Webkit的`-webkit-line-clamp`属性。尽管这些方法在不同浏览器中的兼容性有所不同,但通过结合使用,开发者可以创建出在...

    CSS实现单行、多行文本溢出显示省略号的实现方法

    在CSS中,实现文本溢出时显示省略号的方法分为单行文本溢出和多行文本溢出两种情况。这两种效果可以有效地处理页面内容超出预设区域时的显示问题,增强用户界面的整洁性。 一、单行文本溢出显示省略号 对于单行...

    文本换行-截断CSS

    文本换行截断可以分为单行文本截断和多行文本截断两种,分别使用不同的CSS属性和技术实现。 单行文本截断 单行文本截断是指对单行文本进行截断和省略号显示,通常使用 `text-overflow` 属性实现。该属性可以使文本...

    jquery文本单行多行滚动特效

    在网页设计和开发中,jQuery 是...总的来说,"jquery文本单行多行滚动特效"是一种利用jQuery库和CSS动画技术来增强用户体验的设计方法。通过学习和掌握这些知识点,开发者能够创建出更加生动和引人入胜的网页交互效果。

    单/多行文本添加省略号方法详解

    本文将详细介绍如何为单行和多行文本添加省略号,以便简洁地呈现信息。 首先,我们来看单行文本添加省略号的方法。这通常应用于列表项展示,例如新闻标题。为了实现这一效果,我们可以使用CSS来定义文本样式。关键...

    纯CSS实现“文本溢出截断省略”的几种方法

    在我们的日常开发工作中,文本溢出截断省略是很常见的一种需考虑的业务场景细节。看上去 “稀松平常” ,但在实现上却有不同的区分...单行文本溢出省略 核心 CSS 语句 overflow: hidden;(文字长度超出限定宽度,则隐

    前端大厂最新面试题-single_multi_line.docx

    前端大厂最新面试题 - 单行/多行文本溢出省略样式 在日常开发中,如果一段文本的数量过长,受制于元素宽度的因素,有可能不能完全显示,为提高用户的使用体验,我们需要把溢出的文本显示成省略号。实现单行/多行...

    移动端的text-overflow多行文本溢出显示省略号(…)

    综上所述,实现移动端多行文本溢出显示省略号的方法多种多样,可以根据项目需求和浏览器兼容性选择适合的方案。对于WebKit浏览器,`-webkit-line-clamp`是一个快速有效的选择,而针对非WebKit浏览器,则可采用CSS...

    深入扩展文本溢出解决方案.docx

    本文介绍了几种不同的文本溢出解决方案,涵盖了从基本的单行溢出到更复杂的多行文本溢出,以及自定义和高亮等高级需求。通过合理运用CSS和JavaScript技术,开发者可以有效地解决各种文本溢出问题,提升用户体验的...

    兼容IE和FF的单行溢出文本显示省略号

    在网页设计中,确保元素在不同的浏览器中呈现一致性是一项重要的任务。本文主要讲解如何实现一个兼容...通过以上步骤,我们可以创建一个在不同浏览器中一致的单行文本溢出省略号效果,提升网页的兼容性和用户体验。

    【mark】单/多行文本内容溢出显示省略号…

    本文详细介绍了如何在前端开发中处理单行或多行文本溢出的问题,并提供了具体的 CSS 实现方案及优化建议。通过合理运用这些技巧,不仅能够有效提升网站或应用的用户体验,还能增强页面整体的美观度。希望本文对你...

    CSS--文本溢出完美样式

    4. **多行溢出处理**:`text-overflow`默认只处理单行溢出。若需处理多行溢出,可以使用Webkit内核浏览器(如Chrome、Safari)的实验性特性`-webkit-line-clamp`和`-webkit-box-orient`。例如,`-webkit-line-clamp:...

    通过纯CSS样式实现DIV元素中多行文本超长自动省略号

    【纯CSS实现多行文本超长自动省略号】是一种高效且优雅的解决方案,它可以避免使用JavaScript进行文本截断,从而提高页面加载速度和用户体验。CSS中的`text-overflow: ellipsis`属性是实现这一效果的关键,但它仅...

    CSS设置多行文本垂直居中的方法

    总结起来,CSS设置多行文本垂直居中有多种方法,包括`display: table-cell`结合`vertical-align: middle`,以及使用绝对定位和`transform`。每种方法都有其适用场景和限制,开发者应根据实际需求选择合适的技术。在...

Global site tag (gtag.js) - Google Analytics