2014-01-30 3 views
0

Может кто-нибудь, пожалуйста, взгляните на мой jsfiddle и посмотрите, можете ли вы сделать красный div вертикально выровненным по центру и получить также красную область. Вам придется сделать DIV, который содержит красные Дива определенную высотувертикально выровнять div красный

jsFiddle

<div class="container"> 
    <div class="row1"> 
     <div> 
      <div style="height:200px; width:725px; background-color:red; margin:0px auto">A</div> 

     </div> 
     <div></div> 
    </div> 
    <div class="row2"> 
     <div>B</div> 
     <div>C</div> 
    </div> 
</div> 

html, body { 
    height:100%; margin:0px; padding:0px  

} 
.container { 
    width: 100%; 
    height: 100%; 
    display:table;  
    position: relative; 
} 
.row1 { 
    display:table-row; 
    max-height: 425px; 
    background: pink; 
} 
.row1 div { 
    display:table-cell; 
    width:100%; 
} 
.row2 { 
    display:table-row; 
    height: 100%; 
} 
.row2 div { 
    width: 100%; 
    height: 100%; 
    float:left; 
    background: green; 
} 
.row2 div + div { 
    background: aqua; 
    width: 50%; 
    height: 100%; 
    position: absolute; 
    top:0; 
    right:0; 
} 
@media (max-width: 1024px) { 
    .row1 { 
     width: 100%; 
    } 
    .row1 div + div { 
     display: none; 
    } 
    .row2 div + div { 
     width:50% 
    } 
    .row2 div { 
     width: 50%; 
    } 
    .row2 div + div { 
     position: static; 
    } 
} 
+0

Нравится? http://jsfiddle.net/VL5dr/ –

+0

Нет, красный div должен быть центрирован его родителем и вертикально выровнен в середине – ONYX

ответ

0

Просто небольшое изменение делает ваше table-cell правила применяется только к непосредственным детям, что вы звоните table-row: .row1 > div вместо .row1 div. См. Обновление: http://jsfiddle.net/Xgr3k/11/

Это устраняет вашу проблему, за исключением того, что теперь ваш цветной div div появляется каждый раз, когда ваша ширина> 1024. Это происходит из-за вашего медиа-запроса и установки этого div на position: static. Который я не уверен, что вы хотите сделать. Но, в основном, будьте осторожны, как ваши правила каскадируют ваш DOM. Удачи :)

+0

Хорошо, я проверил, что вы сделали, и внес изменения в проценты, и теперь он работает лучше, но проблема заключается в том, когда вы максимизируете область до максимума, она не выравнивается по центру, как я могу ее исправить. Это почти закончено, вы можете помочь исправить это. Http://jsfiddle.net/Xgr3k/13/ – ONYX

+0

Оформить мой последний комментарий и скрипку – ONYX

+0

K, это работает, но что aqua div вызовет у вас проблемы. И то, как вы определили эти правила, очень сложно задуматься. Я бы предложил посмотреть, как загрузочный и эти библиотеки выполняют макеты. Во всяком случае, удачи: http://jsfiddle.net/Xgr3k/16/ – Milimetric

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