css文字换行

html-css021

css文字换行,第1张

用CSS让文字在一行内显示不换行的方法:

一般的文字截断(适用于内联与块):

.text-overflow{

display:block             /*内联对象需加*/

width:31em

word-break:keep-all       /* 不换行 */

white-space:nowrap        /* 不换行 */

overflow:hidden           /* 内容超出宽度时隐藏超出部分的内容 */

text-overflow:ellipsis    /*溢出时显示省略标记...;需与overflow:hidden一起使用*/

}

对于表格,定义有点不一样:

table{

width:30em

table-layout:fixed      /*只有定义了表格的布局算法为fixed,下面td的定义才能起作用*/

}

td{

width:100%

word-break:keep-all     /* 不换行 */

white-space:nowrap      /* 不换行 */

overflow:hidden         /* 内容超出宽度时隐藏超出部分的内容 */

text-overflow:ellipsis  /* 溢出时显示省略标记...;需与overflow:hidden一起使用*/

}

注:这个只对单行的文字的效,如果你想把它用在多行上,也只有第一行有作用的。 这个写法只有IE会有"...",其它的浏览器文本超出指定宽度时会隐藏。

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

分类: 电脑/网络 >>互联网

问题描述:

如何用css控制文本自动换行 ?

解析:

默认的就是自动换行

语法:

white-space : normal | pre | nowrap

取值:

normal : 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行

pre : 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-pliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-pliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。

nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。

以前看到过这样一个逻辑。

大概意思是这样:给目标元素中,一个字一个字的往里添加,然后计算添加一个字后,元素的高度,然后记录(最初肯定是一行,当高度变化一次,就说明增加了一行,然后把行数就执行加1操作),然后就根据这个计算得到的行数,就可以判断,在什么时间,把字符串截断,显示为省略号了。。。

能理解这个逻辑不?那就试试用代码写出来吧。

好像是有点麻烦。。。。

<body>

<div id='view' style='width:200pxheight:70pxoverflow:auto'></div>

<script>

s = '条件:<br>\

div   css  javascript  html<br>\

如何实现多行文本中最后一行文本最后自动显示省略号(如三行文本,文本自动换行后,第三行很长,自动显示省略号)'

el = document.getElementById('view')

n = el.offsetHeight

for(i=10 i<s.length i++) {

  el.innerHTML = s.substr(0, i)

  if(n <= el.scrollHeight) break

}

el.style.overflow = 'hidden'

el.innerHTML = s.substr(0, i-3) + '...'

</script>

</body>

我给你一个建议吧,直接overflow:hidden,然后在最后,覆盖一张...的透明PNG的图片,不过最后显示的一个文字有可能被遮盖住,漏点出来

又或者你放弃多行加省略号的想法,这样什么事情都好解决了