Проблемы с выравниванием с div внутри div

0

Я пытаюсь создать индикатор выполнения, и у меня проблема с выравниванием div внутри div.

CSS:

.outer {
width: 20px;
height: 190px;
border: 2px solid #ccc;
overflow: hidden;
position: relative;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
display:inline-block;
}

.inner {
    width: 100%;
    overflow: hidden;
    position: absolute;
    border-top-width: 0;
    background-image: url('/images/progressBar2Red.png');
    background-size: 20px;
    bottom: 0;
    height: 0%;
    display:inline-block;
}
.progress{
    display: inline-block;
    align-items:center;
}

HTML:

<div class="progress">
   <label class="progNum">20</label><br />
   <div class="outer"> 
     <div class="inner"></div>
   </div>
</div>

По какой-то причине внутренний div не находится точно в середине внешнего div. Вот как это выглядит: Изображение 174551

Как я могу поместить внутренний div точно в середину внешнего div?

  • 0
    align-items:center; это не только flexbox?
  • 0
    Также не используйте <br /> для макета.
Показать ещё 1 комментарий
Теги:

3 ответа

0
Лучший ответ

Вы сделали этот .inner элемент position: absolute. Просто добавьте left: 0; и right: 0; к .inner CSS правил.

По умолчанию разделители имеют ширину 100%, никогда не устанавливайте div на 100% ширину, если только вам это не понадобится... по какой-то причине.

РЕДАКТИРОВАТЬ

Хорошо, я действительно не понимаю, что НЕ работает для вас. Проверьте этот JSFiddle. Я думаю, что проблема в том, что вы работаете.

  • 0
    Это часть более сложной страницы. Добавление справа: 0; и слева: 0; решил проблему. Спасибо.
0

Дайте внутреннее margin: 0 auto;

0

Демо-версия JSfiddle

HTML

<div class="progress">
   <label class="progNum">20</label>
   <div class="outer"> 
     <div class="inner"></div>
   </div>
</div>

CSS

.outer {
height: 190px;
border: 2px solid #ccc;
overflow: hidden;
position: relative;
border-radius: 4px;
}

.inner {
    width: 100%;
    position: absolute;
    border-top-width: 0;
    background-color: red;
    bottom: 0;
    width: 100%;
    height:20px; /* or anything else you want */
    border-radius: 4px;
}
.progress{
    display: inline-block;
    width: 20px; /* sets width of the whole bar - everything else can be 100% */
}

.progNum {
    text-align: center;
    display: block;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню