Подтвердить что ты не робот

Указание точной процентной ширины относительно родительского DIV в CSS

Я пытаюсь создать визуальный элемент, используя элементы DIV и CSS, которые должны отображать данные в формате, показанном ниже.

[----- 50% ----- | --25% - | --25% -]

При использовании кода и CSS, которые я указал ниже, мой последний элемент всегда разливается в следующую строку, а значения процентных значений CSS, которые я указываю, похоже, не создают надлежащее оформление.

Может ли кто-нибудь предложить лучший способ сделать это?

Мой HTML

<div class="visual-indicator-title">
All Items</div>
<div class="visual-indicator-holder">
<div class="vi-internal-element" style="width: 25%; background-color: #5E9BD1;">
    25%</div>
<div class="vi-internal-element" style="width: 25%; background-color: #AB884D;">
    25%</div>
<div class="vi-internal-element" style="width: 50%;">
    50%</div>
</div>
<div class="visual-legend">
<ul class="inline-block">
    <li>
        <div class="legend-blue">
        </div>
        Sales</li>
    <li><span class="legend-tan"></span>Processed</li>
    <li><span class="legend-grey"></span>Pending Processing</li>
</ul>

Мой CSS

.visual-indicator-title{
font-size:12px;
font-weight:bold;
color:#777777;
}
.visual-indicator-holder
{
width:100%;
background-color:#666666;
height:28px;
border-radius: 8px;
}
.visual-indicator-holder .vi-internal-element
{
font-size:11px;
text-align:center;
color:#ffffff;
background-color:#777777;
border-radius: 6px;
display:inline-block;
}
4b9b3361

Ответ 1

Причина этого в том, что при inline или inline-block пробел в элементе будет влиять на рендеринг (добавляет пробел). Вот ваша демонстрация, работающая с удаленным пробелом, никаких изменений в CSS: http://jsfiddle.net/fZXnU/

Удаление пробела не является тривиальным, поэтому вам будет лучше плавать элементы (которые запускают display:block). Рабочая демонстрация с большим количеством пробелов: http://jsfiddle.net/fZXnU/1/

Ответ 2

Вы можете использовать float: left, position: relative, а затем определить ширину в процентах, как вы.

Я изменил ваш код, чтобы использовать float здесь: http://jsfiddle.net/Z3kdP/.

Ответ 4

Все эти элементы имеют маржу и дополнение с ними, а также проценты, создающие ошибки округления при расчете. Поэтому вам нужно убедиться, что вы устанавливаете или учитываете, какая маржа делает с этим. Для ошибок округления типично, чтобы проценты составляли что-то менее 100%, но затем добавляли margin: auto, чтобы центрировать все это.