欢迎光临

木子屋

标题: 使用overflow代替left截取指定长度字符串

作者: dnawo

日期: 2007-11-12 05:17 PM

分类: HTML/CSS

内容: 为了防止文章标题过长超过容器(td,div)宽度而显示成多行，我们通常要对标题进行处理让其显示在一行，通常使用的方法有两种：一种方法是在客户端用CSS设置容器的overflow属性；另一种方法则是在服务器端用left函数对标题字符串进行截取。两种方法通常情况下都能达到我们的目的：
复制内容到剪贴板 程序代码<style type="text/css">
div{
width:200px;
overflow:hidden;
}
</style>
<div>轻轻松松在页面中插入单选按钮/复选框</div>
<div><% =Left("轻轻松松在页面中插入单选按钮/复选框",11) %></font></div>
今天我们来比较一下它们的优缺点：
1.处理地点不同
一个位于客户端，一个位于服务器端。能在客户端的处理的尽量不要在服务器端处理，减轻服务器负担，这一原则大家都知道了。
2.处理对象的不同
CSS是对容器属性进行设置，left是对标题字符串进行处理，哪个更合理？回答这一问题前我们先问下：为什么要对标题长度进行处理？为的就是"让标题长度不超过容器长度"即可！CSS是对容器属性进行设置，当标题长度超出容器长度时就进行处理；而left的做法是对每个标题进行处理，将标题的长度都控制在我们测试得出的长度n范围内[left(title,n)]，有一刀切的嫌疑。可见前者更具合理性。
3.对html处理的简易性
这一点是最能说服我用CSS的理由。有时由于某些原因，我们会在一些标题中加入了html代码，如：<font color="#FF0000">轻轻松松在页面中插入单选按钮/复选框</font>，我们想要的结果应当是让标题不显示为两行，但还要保证仍为红色！这点left做不到，要达到效果我们先得把html去除，然后对余下的字符串进行截取，再添加html，非常的麻烦；而css完全不理会html，真正做到"只对字符串进行处理"，非常方便，如：
复制内容到剪贴板 程序代码<style type="text/css">
div{
width:200px;
overflow:hidden;
}
</style>
<div><font color="#FF0000">轻轻松松在页面中插入单选按钮/复选框</font></div>
<div><% =Left("<font color=""#FF0000"">轻轻松松在页面中插入单选按钮/复选框</font>",11) %></font></div>
采用left不仅达不到效果，有时还会导致页面显示出错！相比之下，用哪一个大家心里有数。

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.094 ms

返回

标题: 使用overflow代替left截取指定长度字符串

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.094 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.148 ms

返回