Border-Box Прозрачный бордюр

Я пытаюсь использовать рамку для создания эффекта черной границы 50% прозрачности вокруг трех изображений столбцов. Я прочитал это, чтобы заставить границу двигаться внутрь, чтобы использовать отступы, и я не могу заставить его работать.

Вот мой код CSS:

div.column-image {
box-sizing: border-box;
-moz-box-sizing: border-box;
border: 1em solid rgba(0, 0, 0, 0.5);
padding: 5px;
float: left;
}

И это результат

http://i.imgur.com/9dopCX5.jpg?1

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

Вот пример:

http://i.imgur.com/ib6YUVZ.jpg


Я пытался следовать примерам из этого урока: CSS-хитрости: прозрачные границы с background-clip, и потерпел неудачу.

Пожалуйста, помогите, я не знаю, что делать ~

Редактировать: вот живая версия сайта

2 ответа

Будете ли вы готовы сделать это с помощью решения для фона и тени? Лучше придерживаться минимума и сокращать ненужную разметку (как в вашем CSS, так и в HTML). Все, что вам нужно, это один div, который будет содержать и рамку, и изображение.

.transparent-bordered-image {
    background-image: url(http://your-url-here);
    background-size: cover;
    box-shadow: inset 0 0 0 30px rgba(0,0,0,0.5);
   -webkit-box-shadow: inset 0 0 0 30px rgba(0,0,0,0.5);
}

Это пример: http://jsfiddle.net/fBY9z/1/

Как это? Пример jsFiddle

Я добавил границу через псевдоэлемент, помещенный в обертку div элемент.

К сожалению, вы не можете использовать элемент псевдо на img сам, как говорится в спецификации:

12.1 Псевдоэлементы:before и: after (ссылка)

Заметка. Эта спецификация не полностью определяет взаимодействие:before и: after с замененными элементами (такими как IMG в HTML). Это будет определено более подробно в будущей спецификации.

HTML

<div id="imgwrap">
    <img/>
</div>

CSS

#imgwrap {
    position:relative;
    display:inline-block;
}
#imgwrap:after {
    content:"\A";
    border:20px solid rgba(10, 0, 255, 0.5);
    width:100%;
    height:100%;
    position:absolute;
    top:0px;
    left:0px;
    box-sizing: border-box;
    -wekbit-box-sizing: border-box;
    -moz-box-sizing: border-box;
}
img { vertical-align:top; }
Другие вопросы по тегам