双木大王 發表於 2026-5-3 22:16:57

CSS3属性中的text-overflow:ellipsis详解

<blockquote><p>语法:</p>
<p>text-overflow:<strong>clip</strong> |&nbsp; <strong>ellipsis</strong></p>
<p>默认值为clip 不显示省略标记</p>
<p><strong>clip</strong>:当前对象内文本溢出时不显示省略标记,而是将溢出部分裁剪。</p>
<p><strong>ellipsis</strong>:当对象内文本一处时显示省略标记(...)。</p></blockquote>
<h3>一、常见的单行文本溢出显示省略写法:</h3>
<blockquote><p>text-overflow: ellipsis;</p>
<p>overflow: hidden;</p>
<p>white-space: nowrap;</p></blockquote>
<div class="jb51code"><pre class="brush:xhtml;">&lt;!DOCTYPE html&gt;
&lt;html&gt;
        &lt;head&gt;
                &lt;meta charset="utf-8" /&gt;
                &lt;title&gt;&lt;/title&gt;
        &lt;/head&gt;
        &lt;style type="text/css"&gt;
                .p{
                        width: 100px;
                        height: 40px;
                        line-height: 40px;
                        text-overflow: ellipsis;    /*1*/
                        overflow: hidden;         /*2*/
                        white-space: nowrap;      /*3*/
                        word-break: break-all;
                }
        &lt;/style&gt;
        &lt;body&gt;
                &lt;p class="p"&gt;多行文本溢出显示多行文本溢出显示多行文本溢出显示&lt;/p&gt;
        &lt;/body&gt;
&lt;/html&gt;</pre></div>
<h3>二、多行文本溢出&nbsp;</h3>
<p>WebKit浏览器有一个-webkit-line-clamp的属性,用这个即可以实现webkit内核的浏览器、以及大部分移动端的多行文本溢出省略号;</p>
<blockquote><p>display:-webkit-box;</p>
<p>-webkit-line-clamp: 3/*第几行裁剪*/</p>
<p>-webkit-box-orient:vertical;</p></blockquote>
<div class="jb51code"><pre class="brush:xhtml;">&lt;!DOCTYPE html&gt;
&lt;html&gt;
        &lt;head&gt;
                &lt;meta charset="utf-8" /&gt;
                &lt;title&gt;&lt;/title&gt;
        &lt;/head&gt;
        &lt;style type="text/css"&gt;
                .p {
                        height: 60px;
                        line-height: 30px;
                        width: 80px;
                  overflow : hidden;
                  text-overflow: ellipsis;
                  display: -webkit-box;   /*1*/
                  -webkit-line-clamp: 2;    /*2*//*第几行裁剪*/
                  -webkit-box-orient: vertical;   /*3*/
                }
        &lt;/style&gt;
        &lt;body&gt;
                &lt;p class="p"&gt;多行文本溢出显示多行文本溢出显示多行文本溢出显示多行文本溢出显示多示&lt;/p&gt;
        &lt;/body&gt;
&lt;/html&gt;</pre></div>
<p>其它浏览器的话就需要通过js实现:</p>
<div class="jb51code"><pre class="brush:xhtml;">&lt;!DOCTYPE html&gt;
&lt;html&gt;
        &lt;head&gt;
                &lt;meta charset="utf-8" /&gt;
                &lt;title&gt;&lt;/title&gt;
        &lt;/head&gt;
        &lt;style type="text/css"&gt;
                div{
                        height: 60px;
                }
                p {
                        line-height: 30px;
                        width: 80px;
                  margin: 0 auto;
                }
        &lt;/style&gt;
        &lt;body&gt;
                &lt;div id="div"&gt;
                        &lt;p id="p"&gt;多行文本溢出显示多行文本溢出显示多行文本溢行文本溢示&lt;/p&gt;
                &lt;/div&gt;
        &lt;/body&gt;
        &lt;script type="text/javascript"&gt;
                        var eleH = document.getElementById("div").clientHeight;
                var pEle = document.getElementById("p");
                while(pEle.clientHeight &gt; eleH) {
                    pEle.innerText = pEle.innerText.replace(/(\s)*(+|\W)(\.\.\.)?$/, "...");
                };
        &lt;/script&gt;
&lt;/html&gt;</pre></div>
頁: [1]
查看完整版本: CSS3属性中的text-overflow:ellipsis详解