带有文本溢出的CSS Flexbox Border Radius:省略号

时间:2015-11-04 16:42:13

标签: html css3 flexbox ellipsis

我想在我的列表项上应用带有弹性框和省略号的边框半径,并且还需要min-width,如下例所示。

<ul>
<li style="flex: 1 1;"><span>A</span></li>
<li style="flex: 2 2;"><span>this is a pretty long text that will overflow the parent container</span></li>
<li style="flex: 1 1;"><span>C</span></li>

ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

li {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    color: white;
}

span {
    background-color: blue;
    padding: 0em 1em;
    border-radius: 1em;
}

以下是示例 http://jsfiddle.net/mnk/kah0bn6o/1/

目标是在应用了省略号的元素上应用边框半径

2 个答案:

答案 0 :(得分:1)

使其工作的一种方法是删除<span>标记。将所有内容放入<li>

试试这个:

HTML (已移除span代码)

<ul>
    <li style="flex: 1 1;">A</li>
    <li style="flex: 2 2;">this is a pretty long text that will overflow the parent
                          container</li>
    <li style="flex: 1 1;">C</li>
</ul>

<强> CSS

ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

li {     
    padding: 0em 1em;
    background-color: blue;
    border-radius: 2em;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    color: white;
}

DEMO:http://jsfiddle.net/kah0bn6o/5/

或者,您可以保留span,只需将border-radius规则应用于spanli元素。

DEMO:http://jsfiddle.net/kah0bn6o/7/

答案 1 :(得分:0)

如果你可以没有跨度,那么你可以将所有样式移到li上。

http://jsfiddle.net/f6Lgbtre/

li {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    color: white;
    background-color: blue;
    padding: 0em 1em;
    border-radius: 1em;
}

<li style="flex: 1 1;">A</li>