2016-12-03 16 views
0

При запуске этого кода правый столбец выходит далеко за пределы экрана, вправо.Flex - три столбца, третий один выходит за экран

  1. Я хочу, чтобы боковые столбцы были отзывчивыми, а средний - с фиксированной шириной.

  2. И как заставить его работать в IE10?

Планировка:

<div class="wrapper"> 
    <div class="left"></div> 
    <div class="middle"> 
     <div> 
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin eget ante bibendum, cursus diam sit amet 
     </div> 
    </div> 
    <div class="right"></div> 
</div> 

CSS:

.wrapper { 
    height: 80px; 
    width: 100%; 
    display: -webkit-flex; 
    display: flex; 
    -webkit-flex-direction: row; 
    flex-direction: row; 
    -webkit-align-items: center; 
    align-items: center; 
    -webkit-justify-content: center; 
    justify-content: center; 
} 
.wrapper .left { 
    height: 100%; 
    flex: 0 0 100%; 
    background-color: yellow; 
} 
.wrapper .middle { 
    height: 100%; 
    flex: 0 0 800px; 
    background-color: orange; 
} 
.wrapper .right { 
    height: 100%; 
    flex: 0 0 100%; 
    background-color: red; 
} 

ответ

0

Вы не используете flex стенографии правильно. Это правильный формат: flex: <flex-grow> <flex-shrink>? || <flex-basis> ;

Ive поменял вашу, чтобы работать с вашими спецификациями, включая IE. Из-за фиксированной ширины 800X вам необходимо просмотреть это в полноэкранном режиме.

.wrapper { 
 
    height: 80px; 
 
    width: 100%; 
 
    display: -webkit-box; 
 
    display: -ms-flexbox; 
 
    display: flex; 
 
    -webkit-box-orient: horizontal; 
 
    -webkit-box-direction: normal; 
 
    -ms-flex-direction: row; 
 
    flex-direction: row; 
 
    -webkit-box-align: center; 
 
    -ms-flex-align: center; 
 
    align-items: center; 
 
    -webkit-box-pack: center; 
 
    -ms-flex-pack: center; 
 
    justify-content: center; 
 
} 
 
.wrapper .left { 
 
    height: 100%; 
 
    -webkit-box-flex: 1; 
 
    -ms-flex: 1 1 0%; 
 
    flex: 1 1 0%; 
 
    background-color: yellow; 
 
} 
 
.wrapper .middle { 
 
    height: 100%; 
 
    width: 800px; 
 
    background-color: orange; 
 
} 
 
.wrapper .right { 
 
    height: 100%; 
 
    -webkit-box-flex: 1; 
 
    -ms-flex: 1 1 0%; 
 
    flex: 1 1 0%; 
 
    background-color: red; 
 
}
<div class="wrapper"> 
 
    <div class="left"></div> 
 
    <div class="middle"> 
 
    <div> 
 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin eget ante bibendum, cursus diam sit amet 
 
    </div> 
 
    </div> 
 
    <div class="right"></div> 
 
</div>

+0

Ничего себе! Большое спасибо, теперь это работает. – vNottbeck

+0

Я рад, что смог бы помочь. Если бы вы могли правильно пометить мой ответ, проверив галочку рядом с моим ответом. – Aaron

+0

Конечно! Не знал об этом :) – vNottbeck

0

Вы можете использовать гибкий: 1; на его собственные для ваших левых и правых столбцов. Вам не нужно указывать значения flex-shrink и flex-basis, поскольку они будут настроены разумно в зависимости от свойства flex-grow.

+0

Это было бы правдой, кроме IE, где на самом деле нужно указать 3 свойства, плюс базис также требует, чтобы% или px не игнорировались. – Aaron