2013-03-08 3 views
0

Я не могу найти, как создать простую выравнивание:Создание 2 наложенные дивы под 2 бок о бок дивы

имеют линию с 2 бок о бок дивы, первым занимая пространство, которое он требует и последнее - оставшееся пространство (это достаточно просто с встроенным блоком или поплавком)

В правом div должны быть два наложенных дочерних div, каждый из которых принимает 100% правого родителя (этого я не мог сделать).

Моей мотивацией является индикатор выполнения с меткой (слева) и меткой процента над индикатором выполнения. Текст метки прогресса должен быть центрирован (вот почему мне нужно, чтобы он взял 100% правильного родителя)

Если у кого-то есть идеи, я бы хотел их услышать.

Вот пример моей проблемы:

<div id="all"> 
    <div id="left"> 
     left 
    </div> 
    <div id="right"> 
     right 
    </div> 
</div> 

#all { 
    width: 200px; 
    height: 100px; 
    background: grey; 
    border: 1px solid; 
} 

#left { 
    background: red; 
    float: left; 
    height: 100% 
} 

#right { 
    background: blue; 
    display: block; 
    height: 100%; 
} 

Вот jsFiddle иллюстрация этого: http://jsfiddle.net/a9cnH/3/

Моей проблема: Я хочу, чтобы поместить 2 дивы в «правильных» делах. Каждый из них должен принимать 100% правого div. Если я использую на них абсолютное значение, я должен сделать свою «правильную» позицию div иначе, чем «статический», но это не приведет к выравниванию рядом с левым div рядом.

+0

Вы пробовали поиск по [CSS прогресс бар] (http://www.google.ca/search?q=css+progress+bar&ie=utf-8&oe = utf-8 & channel = предлагать), чтобы увидеть, как другие справились с этим? Также стоит отметить, что существует элемент 'progress': https://developer.mozilla.org/en-US/docs/HTML/Element/progress – cimmanon

+0

Индикатор выполнения Mozilla поддерживается IE10. Я использую индикатор выполнения jquery UI, и они предоставляют пример ярлыка поверх индикатора выполнения, но они дают процентные значения, чтобы сделать текст на этикетке центрированным. Проблема в том, что когда текст слишком длинный (т.е. «завершен»), центрирование выключено. Я думал, что использую text-align: center, чтобы получить желаемый эффект и сделать метку на 100%. – Marumba

ответ

0

Если вы хотите складывать divs поверх другого, вам нужно использовать z-index и выравнивать divs абсолютно. Пример:

<div style="border: 1px sold red; width: 300px; height:200px; background-color:White;position:relative;"> 
     <div style="width:50%; height:100%; background-color:Red; z-index:2; float:left; "></div> 
     <div style="width:50%; height:100%; background-color:blue;z-index:2; float:right; "></div> 
     <div style="width:50%; height:50%; background-color:green;z-index:3; top:25%; left:25%; position:absolute; "></div> 
    </div> 
0

Я, наконец, получил его.

Мне нужно было как левое, так и правое divs, чтобы скрыть переполнение. Чем я могу поместить правильную позицию div.

<div id="all"> 
    <div id="left"> 
     left 
    </div> 
    <div id="right"> 
     <div id="right1"> 
      r1 
     </div> 
     <div id="right2"> 
      r2 
     </div> 
    </div> 
</div> 

#all { 
    width: 200px; 
    height: 100px; 
    background: grey; 
    border: 1px solid; 
} 

#left { 
    background: red; 
    height: 100%; 
    float: left; 
    overflow: hidden; 
} 

#right { 
    background: blue; 
    height: 100%; 
    overflow: hidden; 
    position: relative; 
} 

#right1 { 
    width: 100%; 
    background: green; 
    position: absolute; 
} 

#right2 { 
    width: 100%; 
    position: absolute; 
    text-align: center; 
} 

Вот как это выглядит: http://jsfiddle.net/nSD66/

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