2014-02-20 3 views
3

У меня есть эта проблема, когда я хочу иметь границу и тень, но тень должна быть над границей.Box-shadow over border

Свойство box-shadow начинается, когда граница заканчивается, можно ли перемещать ее по границе?

.border 
{  
    border: solid rgba(128,42,42,.98) 16px; 
} 


.img-box-shadow 
{ 
    -moz-box-shadow: 0px 0px 20px #000000; 
    -webkit-box-shadow: 0px 0px 20px #000000; 
    box-shadow: 0px 0px 20px #000000; 
} 

Мой HTML:

<img class="border img-box-shadow" src="img.png"> 

Уже попробовал врезке в моей коробке тени, но это не сработало!

Я ищу этот эффект:

border

И я получаю этот результат:

shadow in border

+0

Вы хотите внутреннюю тень для внешнего контейнера? –

+0

Это тот же контейнер, если вы можете посмотреть мое изображение здесь http://imgur.com/JHnbwTy, вы увидите, что тень окна начинается там, где граница заканчивается, я хочу, чтобы оба они начинались с того места, где заканчивается изображение. – Mandi

+0

Это самый какамоли, смотрящий css когда-либо – JakeParis

ответ

2

Я думаю, что это было бы гораздо легче достичь с двумя наложенными тенями коробки

Что-то like this подходит к w шляпа, которую вы ищете

box-shadow: 0 0 20px 5px #000000, 
    0 0 0 16px rgba(128,42,42,.98); 
+0

Спасибо человеку! отлично работал! – Mandi

+1

@PabloPerez Это мое удовольствие! Это (косвенно) вдохновило меня на создание новой техники для раскрытия картины (: вы можете [проверить это] (http://cssdeck.com/labs/inset-box-shadow-play), завтра появятся новые версии. на данный момент! –

+0

Очень хороший человек, мне на самом деле нравятся они! Спокойной ночи! Я рад, что могу «помочь» вам тоже. – Mandi

0

Вы можете попробовать использовать вставку, а затем понижая значение альфа вашей границы. Это может быть не совсем то, что вы хотите, но это близко.

.border 
{  
    border: solid rgba(128,42,42,.5) 4px; 
} 


.img-box-shadow 
{ 
    -moz-box-shadow: inset 0px 0px 20px #000000; 
    -webkit-box-shadow: inset 0px 0px 20px #000000; 
    box-shadow: inset 0px 0px 20px #000000; 
} 

Альтернативный вариант (заимствованный от). Не используйте .border и просто использовать это (вы можете поэкспериментировать со значениями пикселей):

.img-box-shadow 
    { 
     box-shadow: rgba(0,0,0,.98) 0px 0px 3px, inset rgba(0,0,0,.98) 0px -2px 3px; 
    } 

Вот JSFiddle

+0

Ни один из тех не делает эффект, который я действительно хочу, я ищу что-то вроде этого: http://imgur.com/BBcraBt – Mandi

0

Кажись, как вы хотите тень inset окна, то вы можете использовать:

box-shadow: inset 0 -15px 10px -10px #444; 
-moz-box-shadow: inset 0 -15px 10px -10px #444; 
-webkit-box-shadow: inset 0 -15px 10px -10px #444; 

Fiddle Demo

0

Как насчет этого?

.ds-bottom { 
    position:relative; 
    overflow:hidden; 
    border-bottom:1px solid #ddd; 
} 
.ds-bottom:before { 
    content: ""; 
    position:absolute; 
    z-index: 1; 
    width:96%; 
    bottom: -10px; 
    height: 10px; 
    left: 2%; 
    border-radius: 100px/5px; 
    box-shadow:0 0 18px rgba(0,0,0,0.6); 
} 
0

Во-первых, у вас есть ошибка в формате теней коробки.

box-shadow: 0px 0px 20px #000000; 

Изменение в

box-shadow: 0px 0px 20px 0 #000000; 

Из правого формата окно Свойства тени

коробчатой ​​тень: горизонтальной длиной вертикальной длиной радиус размытия распространению в радиус;

Далее, чтобы сделать работу с вашим требованием, вы должны обернуть изображение в div. Box-shadow не работает над границей.

Вот стиль

div { 
    display:inline-block; 
    padding:4px; /* Act as border width */ 
    background:rgba(128,42,42,.98); /* Act as border color */ 
} 

.img-box-shadow 
{ 
    box-shadow: inset 0px 0px 20px 0 #000000; 
    -webkit-box-shadow: inset 0px 0px 20px 0 #000000; 
    -moz-box-shadow: inset 0px 0px 20px 0 #000000; 
} 

И HTML Markup

<div class="img-box-shadow"> 
<img src="http://graph.facebook.com/715380382/picture?type=large"> 
</div> 

Проверить демо http://jsbin.com/hex/1/edit