2013-10-12 4 views
0

Я нахожу, что приведенный ниже код может отлично работать на IE8, IE9 и firefox, но не может хорошо работать на IE7, стрелка вверх не может появиться, почему?Почему стрелка не может отображаться в IE7?

CSS:

.arrow_box { 
    position: relative; 
    background: #88b7d5; 
    border: 4px solid #c2e1f5; 
} 
.arrow_box:after, .arrow_box:before { 
    bottom: 100%; 
    border: solid transparent; 
    content: " "; 
    height: 0; 
    width: 0; 
    position: absolute; 
    pointer-events: none; 
} 

.arrow_box:after { 
    border-color: rgba(136, 183, 213, 0); 
    border-bottom-color: #88b7d5; 
    border-width: 30px; 
    left: 50%; 
    margin-left: -30px; 
} 
.arrow_box:before { 
    border-color: rgba(194, 225, 245, 0); 
    border-bottom-color: #c2e1f5; 
    border-width: 36px; 
    left: 50%; 
    margin-left: -36px; 
} 

HTML:

<br/> 
<br/> 
<br/> 
<div class="arrow_box"><h1 class="logo">css arrow please!</h1></div> 

ответ

3

:before и :after селекторы не поддерживаются в IE7.

Вы должны либо изменить свой CSS, чтобы не использовать :before, и :after, либо вы можете использовать js shiv, который будет в основном эмулировать поведение этих селекторов с помощью javascript. Вот post о том, как это сделать.

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