CSS/Js文本溢出自动添加省略号ellipsis

2016-03-02    编辑:kupeer     点击(
文章标题长了我们一般会使用css或js或程序来直接截断标题显示了,今天我把这三个方面的方法都给各位简单的介绍一下,希望例子能给你带来帮助哦,有需要的可进入参考。

CSS文本溢出省略号

text-overflow:ellipsis

ext-overflow是一个比较特殊的属性,W3C早前的文档中(目前的文档中没有包含text-overflow属性,FML!)对其的定义是:

Name: text-overflow-mode
Value: clip | ellipsis | ellipsis-word
clip :  不显示省略标记(…),而是简单的裁切
ellipsis :  当对象内文本溢出时显示省略标记(…),省略标记插入的位置是最后一个字符。
ellipsis-word :  当对象内文本溢出时显示省略标记(…),省略标记插入的位置是最后一个词(word)。

例子

 代码如下 复制代码

.ellipsis li{

    -moz-binding: url('ellipsis.xml#ellipsis');/*相对当前html的路径*/

    overflow:hidden;

    text-overflow:ellipsis;

    white-space:nowrap;

    width:200px;

}

你可能也注意到了,兼容火狐浏览器的关键代码 -moz-binding: url('ellipsis.xml#ellipsis'); 就是加载了一个XML文件。
ellipsis.xml代码:

 代码如下 复制代码

<?xml version="1.0" encoding="utf-8"?>

<bindings

 xmlns="http://www.mozilla.org/xbl"

 xmlns:xbl="http://www.mozilla.org/xbl"

 xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"

>

    <binding id="ellipsis">

        <content>

            <xul:description crop="end" xbl:inherits="value=xbl:text">

                <children/>

            </xul:description>

        </content>

    </binding>

</bindings>

要问我为什么,这些是浏览器的bug,我想不必深究

下载这个Jquery插件:jQuery ellipsis plugin

调用方法:

 代码如下 复制代码

$(document).ready(function() {
   $('.ellipsis').ellipsis();
}

php直接进行字符截取

 代码如下 复制代码

public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的起始位置,$len指字符串长度
        $strlen = $start + $len; // 用$strlen存储字符串的总长度,即从字符串的起始位置到字符串的总长度
        for($i = $start; $i < $strlen;) {
            if (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // 如果字符串中首个字节的ASCII序数值大于0xa0,则表示汉字
                $tmpstr .= substr ( $str, $i, 2 ); // 每次取出两位字符赋给变量$tmpstr,即等于一个汉字
                $i=$i+2; // 变量自加2
            } else{
                $tmpstr .= substr ( $str, $i, 1 ); // 如果不是汉字,则每次取出一位字符赋给变量$tmpstr
                $i++;
            }
        }
        return $tmpstr; // 返回字符串
    }

使用方法

chinesesubstr($str, 0, 10);