2014-09-04 3 views

ответ

3

Вы можете сделать все это с помощью CSS (нет необходимости для изображения):

.hint { 
    background:#F85B58; 
    display:inline-block; 
    position:relative; 
    color:white; 
    padding:20px; 
    box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.25); 
} 
.hint:before, .hint:after { 
    content:" "; 
    display:block; 
    position:absolute; 
    top:50%; 
    left:100%; 
    width:0px; 
    height:0px; 
    overflow:hidden; 
    margin-top:-10px; 
    border:10px solid transparent; 
    border-left-color:#F85B58; 
} 
.hint:before { 
    margin-top:-8px; 
    border-left-color:rgba(0, 0, 0, 0.25); 
} 

См: http://jsfiddle.net/ro9nfhw6/

Изменение border-width, чтобы стрелка более острым (в соответствии с вашим примером):

.hint:before, .hint:after { 
    border-width:6px 10px; 
} 

например: http://jsfiddle.net/ro9nfhw6/1/

+0

Не забудьте, поддержка: до и: после в старых браузерах невелика, если она вообще существует. – evilunix

+0

@evilunix Отмечено, но поддержка довольно приличная - [полностью назад к IE8 на самом деле] (http://caniuse.com/#feat=css-gencontent) – Moob

0
.hint-outer { 
    background: url('/triangle.png') center right no-repeat; 
    padding-right: 10px; 
} 

.hint-inner { 
    box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.25); 
    height: 100px; 
} 


<div class="hint-outer"><div class="hint-inner"></div></div> 
+0

Проблема заключается в том, что вам нужно разделить разметку на несколько разделов и применить к ним тени отдельно. Тени теней всегда будут применяться ко всему div, даже если части его кажутся прозрачными для вас. – evilunix

+0

Он перемещает тень, но появляется тень с левой стороны. – Alexey

+0

Является ли проблема тень в правом нижнем углу? Вам нужно разделить свой код на внешний и внутренний DIV и применить тень к внутреннему div. – evilunix

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