2017-01-11 4 views
0

Я хочу, чтобы создать форму, как, как показано ниже:Как добавить символ «:» Near My Label с большим количеством космических символов

abc   : 
abcdefg  : 

«ABC» имеет 3 символа. «abc:» - 20 символов. Поэтому пространство должно иметь 17 символов. 'abcdefg' имеет 7 символов. 'abcdefg:' - 20 символов. Таким образом, пространство должно иметь 13 символов. Я не хочу добавлять пробел с символом nbsp &.

<label class="col-sm-3 col-form-label col-form-label-lg">abc<span style="padding-left:17px;">:</span></label> 

<label class="col-sm-3 col-form-label col-form-label-lg">abcdefg<span style="padding-left:13px;">:</span></label> 

Выше кода не верно, потому что 'px' не равно одному пространству символов.

Я не хочу писать код, вроде как ниже:

<label class="col-sm-3 col-form-label col-form-label-lg">abc &nbsp &nbsp &nbsp...:</label> 

Как я могу добавить более чем на один символ со стилем заполнения? Например, можно ли написать функцию js для добавления более одного символа пробела с помощью $ nbsp? Как, как показано ниже:

function AddMultiCharacterSpace(charCount){ ... } 
+0

Вы используете моноширинный шрифт? Если нет, то разница между шириной буквы будет повсюду в зависимости от буквы - поэтому нет единственной «ширины символа» - она ​​будет зависеть от буквы. В качестве альтернативы вы можете использовать 'em' или' rem' –

+0

Что-то вроде: '.col-form-label {width: 100px; } .col-form-label: after {content: ':'; float: right; } 'и простой'

ответ

1

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

label { 
 
    position: relative; 
 
    display: block; 
 
    width: 100px; 
 
} 
 
label::after { 
 
    content: ':'; 
 
    position: absolute; 
 
    top: 0; 
 
    right: 0; 
 
}
<label>abc</label> 
 

 
<label>abcdefg</label>

CODEPEN

0

label { 
 
\t width: 100px; 
 
\t display: flex; 
 
\t justify-content: space-between; 
 
}
<label class="col-sm-3 col-form-label col-form-label-lg"> 
 
\t <span>abc</span> 
 
\t <span>:</span> 
 
</label> 
 
<label class="col-sm-3 col-form-label col-form-label-lg"> 
 
\t <span>abcdefg</span> 
 
\t <span>:</span> 
 
</label>

p.s. просто выберите желаемую ширину для метки.

0

Вы могли бы сделать это.

Для вашего label элемент display: inline-block (например, block также может быть опцией).

Вам также необходимо указать значение ширины.

Для размещения символа :, вы можете использовать псевдоэлемент и поплавать его справа.

label { 
 
    width: 100px; 
 
    display: inline-block; 
 
} 
 
label:after { 
 
    content: ':'; 
 
    float: right; 
 
}
<label>abc</label><br> 
 
<label>abcdfgh</label>

+1

Я предпочитаю это решение для моего. – sol

+0

Наши решения аналогичны. Мне трудно думать о ситуации, которая отдает предпочтение тому или другому. –

Смежные вопросы