2013-05-10 3 views
0

Im пытается реализовать гибкую модель коробки на моем веб-сайте, и пока она работает для -webkit-браузеров, таких как хром и сафари, другие браузеры, такие как mozilla и opera, я, возможно, работая в Internet Explorer, независимо от того, что я делаю. Вот короткий фрагмент моего файла стилей Css, содержащий мой класс .holder, в котором хранятся все, и мой id #new_div, который является дочерним .holder и содержит мой основной раздел для сообщений и боковой панели.IE гибкая коробка модель не работает

.holder 
{ 
    width:100%; 
    margin:auto; 
    display:-webkit-box; 
    display:-o-box; 
    display:-ms-box; 
    display:-box; 
    display:-pie; 
    -webkit-box-orient:vertical; 
    -moz-box-orient:vertical; 
    -o-box-orient:vertical; 
    -ms-box-orient:vertical; 
    -box-orient:vertical; 
    -pie-box-orient:vertical; 
    -moz-box-flex:1; /* Firefox, seamonkey etc */ 
    -o-box-flex:1;  /* Opera */ 
    -ms-box-flex:1;  /* MSIE */ 
    -box-flex:1;   /* Any that support full implementation */ 
    -pie-box-flex:1; 
    -webkit-box-flex:1; 
    -webkit-box-pack:center; 
    -o-box-pack:center; 
    -ms-box-pack:center; 
    -pie-box-pack:center; 
    -box-pack:center; 
    text-align:center; 
    behavior: url(../../Content/pie/PIE.htc); 
} 

.holder #new_div 
{ 
    width:940px; 
} 
.holder div 
{ 
    -webkit-box-pack:center; 
    -o-box-pack:center; 
    -ms-box-pack:center; 
    -box-pack:center; 
    -pie-box-pack:center; 
    behavior: url(../../Content/pie/PIE.htc); 
} 
#new_div 
{ 
    margin:auto; 
    display:-webkit-box; 
    display:-moz-box; 
    display:-o-box; 
    display:-ms-box; 
    display:-box; 
    display:-pie-box; 
    text-align:left; 
    -webkit-box-flex:1; 
    -moz-box-flex:1; /* Firefox, seamonkey etc */ 
    -o-box-flex:1;  /* Opera */ 
    -ms-box-flex:1;  /* MSIE */ 
    -box-flex:1; 
    -pie-box:1;  
    -webkit-box-pack:center; 
    -box-pack:center; 
    -moz-box-pack:center; 
    -o-box-pack:center; 
    -ms-box-pack:center; 
    -pie-box-pack:center; 
    background-color:#25282D; 
    -webkit-box-orient:horizontal; 
    -moz-box-orient:horizontal; 
    -o-box-orient:horizontal; 
    -ms-box-orient:horizontal; 
    -box-orient:horizontal; 
    -pie-box-orient:horizontal; 
    min-width:940px; 
    padding:20px; 
    behavior: url(../../Content/pie/PIE.htc); 
} 

Там вы можете увидеть у меня есть -ms-box- .. имена, определенные вдоль стороны других определений, однако она по-прежнему не кажется, чтобы зарегистрироваться. Я попытался использовать библиотеку CSS3Pie из отчаяния, хотя это не помогло, попробовал установить плагин Chrome для IE, хотя это тоже не удалось, и я не знаю, что делать парням. Может быть, может возникнуть проблема синтаксиса с css, который я уже написал, это отбрасывает его, но, как я уже сказал, он отлично работает в других браузерах. Любые предложения или советы?

+1

Возможный дубликат [CSS Flexbox не работает в IE10] (http://stackoverflow.com/questions/18019450/css-flexbox-not-working-in -ie10) – TylerH

+0

Поддержка браузера Flexbox: http://stackoverflow.com/a/35137869/3597276 –

ответ

5

IE не использует deprecated 2009 Flexbox properties, он использует те, которые устарели March 2012 draft. Opera поддерживает свойства Flexbox standard без префиксов и свойств 2009 года в префиксе -webkit.

.holder { 
    width: 100%; 
    margin: auto; 
    display: -webkit-box; 
    display: -moz-box; 
    display: -ms-flexbox; 
    display: -webkit-flex; 
    display: flex; 
    -webkit-box-orient: vertical; 
    -moz-box-orient: vertical; 
    -webkit-box-direction: normal; 
    -moz-box-direction: normal; 
    -webkit-flex-direction: column; 
    -ms-flex-direction: column; 
    flex-direction: column; 
    -webkit-box-flex: 1; 
    -moz-box-flex: 1; 
    -webkit-flex: 1; 
    -ms-flex: 1; 
    flex: 1; 
    -webkit-box-pack: center; 
    -moz-box-pack: center; 
    -ms-flex-pack: center; 
    -webkit-justify-content: center; 
    justify-content: center; 
    text-align: center; 
} 

.holder #new_div { 
    width: 940px; 
} 

.holder div { 
    /* justify-content does nothing here since this element isn't a flex container */ 
    -webkit-box-pack: center; 
    -moz-box-pack: center; 
    -ms-flex-pack: center; 
    -webkit-justify-content: center; 
    justify-content: center; 
} 

#new_div { 
    margin: auto; 
    display: -webkit-box; 
    display: -moz-box; 
    display: -ms-flexbox; 
    display: -webkit-flex; 
    display: flex; 
    text-align: left; 
    -webkit-box-flex: 1; 
    -moz-box-flex: 1; 
    -webkit-flex: 1; 
    -ms-flex: 1; 
    flex: 1; 
    -webkit-box-pack: center; 
    -moz-box-pack: center; 
    -ms-flex-pack: center; 
    -webkit-justify-content: center; 
    justify-content: center; 
    /* this shouldn't be necessary, as the default direction is `row` */ 
    -webkit-box-orient: horizontal; 
    -moz-box-orient: horizontal; 
    -webkit-box-direction: normal; 
    -moz-box-direction: normal; 
    -webkit-flex-direction: row; 
    -ms-flex-direction: row; 
    flex-direction: row; 
    min-width: 940px; 
    padding: 20px; 
} 

Также стоит отметить, это требует IE10 +

+0

Чтобы получить это прямо здесь, выравнивание-содержание: столбец был добавлен отдельно от выпуска в марте 2012 года вместе с гибким направлением? И с -webkit- и -moz-префиксы orient: horizontal, thats больше не нужны и заменяются колонкой? Извините за преждевременные отзывчивые вопросы, я все еще новичок в потоке вещей css3. –

+0

Какие свойства вам нужны, зависит от того, какие браузеры вы хотите настроить. Firefox еще не перешел на использование стандартных свойств, но по-прежнему остается на 2009 год. То же самое касается Safari и каждого мобильного браузера веб-браузера, за исключением Blackberry 10. https://gist.github.com/cimmanon/727c9d558b374d27c5b6 – cimmanon

+0

Спасибо, брат! !! Цените помощь и поддержку, я никогда не знал об этом! –