32

我在无序列表中有一个导航菜单:

<ul>        
    <li class="current">
        <a href="./">Home</a>
    </li>           
    <li class="">
        <a href="./location/">Location</a>
    </li>           
    <li class="">
        <a href="./rooms-and-rates/">Rooms &amp; Rates </a>
    </li>           
    <li class="">
        <a href="./facilities/">Facilities</a>
    </li>           
    <li class="">
        <a href="./things-to-do/">Things to do</a>
    </li>           
    <li class="">
        <a href="./eating-and-drinking/">Eating and Drinking</a>
    </li>           
</ul>

当菜单标题太长时,我需要使用 text-overflow: ellipsis 所以我在我的 CSS 中设置菜单链接的样式:

    header nav ul li a { text-decoration: none; 
       text-overflow: ellipsis; 
       display: block; 
       overflow: hidden; 
       width: 150px; 
       height: 32px;
}

然而,预期的效果并没有发生。它只是切断了整个最后一个词(并将其包裹在不可见的地方)。我的代码有什么问题,还是有一些我不知道文本溢出的警告:省略号?

4

2 回答 2

51

您需要添加white-space: nowrap;fortext-overflow: ellipsis;才能工作。

演示:http: //jsfiddle.net/ThinkingStiff/Dc7UA/

输出:

在此处输入图像描述

CSS:

a { 
    text-decoration: none; 
    text-overflow: ellipsis; 
    display: block; 
    overflow: hidden; 
    white-space: nowrap;
    width: 80px; 
    height: 32px;
}
于 2012-07-08T23:16:35.383 回答
5

实际上溢出:隐藏;是必需的,因此您可能需要这三行:

text-overflow: ellipsis; 
display: block; 
overflow: hidden; 
于 2018-10-24T14:47:50.670 回答