`
ice-cream
  • 浏览: 329338 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

文本溢出时显示省略标记

    博客分类:
  • Css
阅读更多

语法:text-overflow : clip | ellipsis

 

取值:

clip :默认值 。不显示省略标记(...),而是简单的裁切.

ellipsis: 当对象内文本溢出时显示省略标记(...).

 

可惜text-overflow 还只是ie的私有属性而已,也没被收录到w3c标准里 .

 

如果想让某个容器(div或者li或者...块级元素)显示一行文字,当文字内容过多时,不换行,而是出现...

这样写:例如

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
#box{width:100px;background-color:#87CEEB;padding:2px 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;/* 不换行 */}
</style>
</head>
<body>
<div id="box">锦江之星旅馆有限公司系亚洲规模最大的综合性旅游企业集团</div>
</body>
</html>
 

注意:overflow: hidden; text-overflow:ellipsis;white-space:nowrap;一定要一起用

1.一定要给容器定义宽度.

2.如果少了overflow: hidden;文字会横向撑到容易的外面

3.如果少了white-space:nowrap;文字会把容器的高度往下撑;即使你定义了高度,省略号也不会出现,多余的文字会被裁切掉

4.如果少了text-overflow:ellipsis;多余的文字会被裁切掉,就相当于你这样定义text-overflow:clip.

 

如果容器是table,当文字内容过多时,不换行,而是出现...

这样写:例如

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
table{table-layout:fixed;width:106px;}
td{padding:2px 3px;border:1px solid #000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;/* 不换行 */}
</style>
</head>
<body>
<table cellspacing="0" cellpadding="0"><tr><td>锦江之星旅馆有限公司系亚洲规模最大的综合性旅游企业集团</td></tr></table></body>
</html>

 注意:

1.一定要给table定义table-layout:fixed;只有定义了表格的布局算法为fixed,下面td的定义才能起作用。

其它的要点和上面一样

 

text-overflow 的兼容性:

测过ie6,ie7,ff3,safari,opera,chorme,只有ff3和opera不兼容

 

另一种写法,比较怪。

切张省略号的图片dot.jpg作为li的背景图,背景图在li容器的右上角,并让子元素span相对于父元素div绝对定位,并把span的背景设置成背景色,宽度要大于或者等于省略号图片的宽度。

如果内容没有溢出,span刚好盖在li的背景图片上,这样就看不到省略号。

如果内容溢出,因为span绝对定位到div的右下角,所有span盖不住li的背景图,背景图在第一行的最右边,而span跑到了li的最后一行的最右边,因而我们能够看到省略号。

缺点:对于连续的英文字母和阿拉伯数字不起作用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无hack无js全兼容text-overflow:ellipsis效果</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<style>
* { margin:0; padding:0;}
body { background:#fff;}
.list ul { font-size:12px; font-family:simsun; text-align:left; line-height:18px;}
.list a { color:#000; text-decoration:none; word-break:break-all;}
.list div { position:relative; zoom:1; padding-left:1em; ) no-repeat 3px 6px;}
.list span { position:absolute; right:-10px; bottom:0; height:18px; width:10px; background:#fff; overflow:hidden;}
.list li { position:relative; width:11em; background:url(dot.gif) right top no-repeat; height:18px; overflow:hidden; padding-right:10px; zoom:1;}
.list a:hover { color:#f60;}
</style>
<body>
<div class="list">
	<ul>
		<li>
			<div>
				<a href="#">该标签中字符超过十个了</a>
				<span></span>
			</div>
		</li>
		<li>
			<div>
				<a href="#">只有六个汉字</a>
				<span></span>
			</div>
		</li>
		<li>
			<div>
				<a href="#">该标签中字符超过三十个了该标签中字符超过三十个了该标签中字符超过三十个了该标签中字符超过三十个了</a>
				<span></span>
			</div>
		</li>
		<li>
			<div>
				<a href="#">blueidea blueidea blueidea</a>
				<span></span>
			</div>
		</li>
	</ul>
</div>
</body>
</html>
分享到:
评论
4 楼 阳光暖暖 2009-03-02  
ice-cream 写道

阳光暖暖 写道您好,看到这篇文章,用了一下,虽然在火狐下面字体也截断了,不过却把一个字劈成了两半,请问有什么解决方法吗?我今天找了很多方法也没有找到。这个用css没啥好的处理办法,可以用js去截,或者后台程序截。

谢谢你的回答啊!以前是后台程序截取的。因为考虑到中英文的显示问题,才想着用css自带的属性解决。嗯,会好好看看其他的实现方法的。谢谢了!
3 楼 ice-cream 2009-02-27  
阳光暖暖 写道

您好,看到这篇文章,用了一下,虽然在火狐下面字体也截断了,不过却把一个字劈成了两半,请问有什么解决方法吗?我今天找了很多方法也没有找到。

这个用css没啥好的处理办法,可以用js去截,或者后台程序截。
2 楼 阳光暖暖 2009-02-27  
您好,看到这篇文章,用了一下,虽然在火狐下面字体也截断了,不过却把一个字劈成了两半,请问有什么解决方法吗?我今天找了很多方法也没有找到。
1 楼 ice-cream 2008-11-22  
火星叔叔马丁 写道

不兼容ff3 不是w3c标准这两条就难以让人接受啊

毕竟目前大多数浏览器都还是支持的呀,期待有天ff3支持,那它被收录到w3c标准里就不远了

相关推荐

    CSS实现限制字数功能当对象内文本溢出时显示省略标记

    在实现文本溢出省略号功能时,我们通常将其设置为 `nowrap`,这将强制文本在同一行内显示,不允许换行。 ```css white-space: nowrap; ``` `overflow` 属性则用来处理元素内容超出其边框的情况。在这里,我们需要...

    CSS控制html文本溢出

    - **ellipsis**:当内容被修剪时,显示省略标记(...)。通常与`overflow:hidden`和`white-space:nowrap`一起使用。 - **clip**:当内容被修剪时,不显示任何东西。默认值。 ##### 2. `overflow` 属性 `overflow`...

    溢出文本text-overflow的使用问题分析及解决

    ellipsis代表当对象内文本溢出时显示省略标记(…) 需要注意的是,要想这两个属性起真正的作用,需要配合overflow:hidden;white-space:nowrap;使用。 overflow:hidden;代表着超出文本的部分不显示 white-space:...

    css控制文本实现越界省略号以及自动换行

    越界省略号 复制代码代码如下: .text-overflow { .../* 当对象内文本溢出时显示省略标记(…) ;需与overflow:hidden;一起使用。*/ } 自动换行: 复制代码代码如下: word-break:break-all;/* 不换行 */ white-sp

    CSS控制文本的长度 超过一行显示省略号的实现方法

    text-overflow属性仅是注解,当文本溢出时是否显示省略标记。并不具备其它的样式属性定义。我们想要实现溢出时产生省略号的效果。还必须定义:强制文本在一行内显示(white-space:nowrap)及溢出内容为隐藏

    使用CSS不用程序实现文字自动截断 用省略号代替

    text-overflow属性可以设置为ellipsis,该属性将在对象内文本溢出时显示省略标记(...)。同时,我们还需要使用white-space属性将文本限制在一行内显示所有文本。white-space属性可以设置为nowrap,以便文本不换行。...

    CSS小结:一行内文本超出指定宽度溢出的处理

    /* 当对象内文本溢出时显示省略标记(…) ;需与overflow:hidden;一起使用。 */ } ``` 在实际开发中,由于浏览器兼容性问题,不同浏览器可能对`text-overflow: ellipsis;`的支持程度不同。在非IE浏览器中,当文本...

    一行文字超过div宽度的时如何让它不换行

    当一行文字超过div宽度的时候,浏览器中默认是让它换行显示的,如果不想让他换行显示那要怎么办呢? 我想大家首先想到的办法就是用截断文字加“…”的做法。... /* 当对象内文本溢出时显示省略标记(…) ;需与o

    CSS强制文本在一行内显示若有多余字符则使用省略号表示

    设置或检索是否使用一个省略标记(…)标示对象...text-overflow属性仅是注解,当文本溢出时是否显示省略标记。并不具备其它的样式属性定义。我们想要实现溢出时产生省略号的效果。还必须定义:强制文本在一行内显示(w

    纯css控制超出部分省略号显示

    `**:此属性用于指定当内容被裁剪时是否显示省略标记(...)。设置为`ellipsis`表示内容被裁剪时显示省略号。 5. **`-o-text-overflow:ellipsis;`**:这是一个Opera浏览器专用的前缀属性,作用与`text-overflow`相同...

    CSS文本超出指定宽度后隐藏并显示为省略号的实现方法

    - `text-overflow`: 此属性定义当文本溢出包含元素时如何显示省略标记(即省略号)。有效值包括 `clip`(修剪文本),`ellipsis`(显示省略号来代表被修剪的文本),和 `string`(使用给定的字符串来代表被修剪的...

    CSS的Word_break、Word_Wrap的区别及应用

    而ellipsis则会在文本溢出时显示省略标记,这样用户就知道还有更多内容存在。white-space属性控制元素内空白符的处理方式,normal值会忽略空白符,pre值会保留空白符,而nowrap值则会让文本不换行,一直显示在同一行...

    CSS 教程之内容设置的一些语法

    clip是默认值,表示溢出文本将被简单地裁切掉,而ellipsis会在文本溢出时显示省略标记(…)。这个属性通常与white-space: nowrap一起使用,以便在没有换行机会时,如果内容超出容器宽度,文本将以省略标记结束。 第...

    CSS省略号text-overflow超出溢出显示省略号

    而ellipsis参数值则用于当对象内文本溢出时,在内容末尾显示省略标记,如省略号(…),从而提示用户还有更多的内容未显示出来。 在实际应用中,为了实现溢出文本显示省略号的效果,除了需要使用text-overflow属性...

    css样式显示省略号自定义宽度超过隐藏显示省略标记

    `,这将告诉浏览器在内容超出宽度时显示省略号。 ```css .xx { text-overflow: ellipsis; } ``` 组合以上代码,完整的CSS样式如下: ```css .xx { display: block; width: 200px; /* 自定义宽度 */ ...

    标题长度溢出时,自动显示为省略“...”的Css text-overflow

    CSS中text-overflow属性用于处理文本溢出元素框边界时的显示情况。当文本长度超过了元素所能容纳的范围,我们可以决定如何显示溢出的部分。一般情况下,浏览器默认的处理方式是将文本截断,也就是直接切断超出部分,...

Global site tag (gtag.js) - Google Analytics