【发布时间】:2013-09-08 09:43:31
【问题描述】:
我需要创建一个设计,让最终用户可以看到包含两个组件的单行文本。 text-align:left div 可以有任意长度的文本。 text-align:right div 通常大约有 9 或 10 个字符长,但可以想象它可能高达 20 多个字符。
以下是它需要向最终用户显示的方式:
-
text-align:left文本应使用ellipsis将任何不适合屏幕的文本隐藏在一行文本中。 -
text-align-right文本应始终在屏幕上的同一行中。 -
text-align:leftdiv的宽度应等于浏览器窗口的宽度减去text-align:right文本的div的宽度。 -
text-align:rightdiv的宽度应等于其中文本的宽度加上其水平的padding。 - 文本需要垂直居中在行的中间。
我几乎可以在fiddle 中使用它,但我需要为text-align:right div 使用固定宽度。这是 HTML:
<body>
<div id="wrap">
<div id="left">Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left</div>
<div id="right">Right</div>
</div>
</body>
这是 CSS:
* {border:0; margin:0; padding:0;}
html, body {background-color:gray; height:100%; width:100%}
#left, #right {padding:5px;}
#left {
background-color:red;
float:left;
text-align:left;
width:calc(100% - 120px); /* deducted amount = width of #right + total horizontal padding*/
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
#right {
background-color:orange;
float:right;
text-align:right;
white-space: nowrap;
width:100px;
}
我可以在这里跳转到 JQuery 并让它根据 text-align:right div 的宽度设置 divs 的 widths,但如果可能。
以前我尝试使用display:table 和display:table-cell 来实现这一点,但我遇到了将ellipsis 与table-cell 一起使用的各种问题。 Using table-layout:fixed 没有正确显示 ellipsis,display:block 也没有,setting a max-width 也没有。如果可以的话,我很乐意使用table-cell。
那么有没有办法使用纯 CSS 来做到这一点?
【问题讨论】:
-
您是否尝试过自动换行:break-word;和溢出换行:断字;
标签: css