Как выровнять по двоеточия в каждой строке текста, например, в фильмах

Я хотел бы выровнять несколько строк текста о двоеточии в каждой строке. Поэтому у меня есть это:

aaa:111
bbbbbbb:22222
cccccccccc:33333333
dd:44
eeee:5555

Я хочу, чтобы они выровняли по двоеточию:

       aaa:111
   bbbbbbb:22222
cccccccccc:33333333
        dd:44
      eeee:5555

До сих пор я могу управлять им таблицей и двумя столбцами, левой колонкой text-align: right и правой колонкой text-align left. Но я уверен, что есть гораздо более элегантные решения, чем это. - Любые идеи?

Спасибо!

Ответ 1

Легким и семантическим способом было бы использовать список определений:

Демо

CSS

dt { display:block; float:left; width:100px; text-align: right;}
dt:after{content:':';}
dd { display:block;}

HTML:

<dl>
   <dt>aaa</dt><dd>111</dd>
   <dt>bbbbbbb</dt><dd>22222</dd>
   <dt>cccccccccc</dt><dd>33333333</dd>
   <dt>dd</dt><dd>44</dd>
   <dt>eeee</dt><dd>5555555</dd>
</dl>

Ответ 2

<div class="label-wrap">aaa:</div>
<div class="info">111</div>

CSS

.label-wrap
{
width:150px;
text-align:right;
float:left;
}

.info
{
width:150px;
float:left;
text-align:left;
}

Вы должны убедиться, что в любом случае у этих двух классов будет достаточно места - 300px + любое дополнение или маржа.

Ответ 3

Если ваши данные являются табличными данными, ваш подход с использованием таблиц является приемлемым.

Однако альтернативой может быть использование HTML-меток:

<p>
<span>aaa:</span>111
</p>
<p>
<label>bbbbbbb:</span>22222
</p>
<p>
<span>cccccccccc:</span>33333333
</p>​​​​

span
{
    width:100px;
    clear:left;
    float:left;
    text-align:right;
    padding-right:2px;
}​

Смотрите скрипту: http://jsfiddle.net/F2PRN/1/

Ответ 4

с произвольной длиной значения, таблица будет единственным способом сделать это