逐渐消失基于视口宽度的文本...带有省略号..!

时间:2015-02-20 05:33:53

标签: javascript html css

我有一个双列表项无序列表,绝对位于视口的右上角。

<header id="top-bar">
    <ul>
        <li>
            <a href="#">David Bowie</a>
        </li>
        <li>
            <a href="../includes/sign_out.php" class="signUp"     name="signUp">Sign Out</a>
        </li>
    </ul>

#top-bar {
    height:47px;
    background-color:rgb(43, 165, 43);
    border-bottom:3px solid rgb(22, 83, 22);
    font-size:0.75em;
    position:relative;
    z-index:1;
}
#top-bar ul {
    margin:0; padding:0 0.25em;
    position:absolute;
    right:0px;
}
#top-bar ul > li {
    display:inline;
    float:left;
    line-height:47px;
    position: relative;
    z-index:2;
}
#top-bar ul > li:first-child{
    margin-left:0.45em;
    background:orange; /* testing purposes */
}

最后一个孩子li的内容永远不会改变。但是,第一个孩子li的内容是可变的

在全视口宽度处,可变内容几乎没有影响。但是随着视口的减少,特别是在移动视口中,文本应该开始后退,包含div并且一系列(...)应该替代后退的隐藏文本。在某个宽度,包含li的大小将固定,后退将停止。

我不太确定如何执行此操作。这可以纯粹用CSS完成吗?我觉得Javascript必须在替换椭圆的内容中起作用。

不幸的是,我没有很多编程经验,特别是关于Javascript,我有点急于开发它。

如果你们中任何一个更自然的程序员知道如何处理这个问题,我很乐意听到你的意见。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用CSS3 text-overflow创建截断文本的省略号。

<style>
ul{
    background: #aaa;
    font: 12px sans-serif;
    padding: 10px;
}
li{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
</style>

<ul>
    <li>
       Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
       tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
       quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
       consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
       cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
       proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    </li>
</ul>