2013-11-16 21 views
4

Я пытаюсь использовать border-box, чтобы создать эффект наличия прозрачной прозрачной прозрачной прозрачной пленки около трех столбцов. Я прочитал, что для того, чтобы граница перемещалась внутрь, чтобы использовать отступы, и я не могу заставить ее работать.Border-Box Transparent Border

Вот мой 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 Tricks: Transparent Borders with background-clip, и не увенчались успехом.

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

Edit: Вот живая версия site

+0

Я думаю, что вы хотите поместить этот CSS на DIV, а затем поместить изображение внутри DIV. Вы не хотите применять это к самому изображению. – joshstrike

+0

Во-вторых, это движение ... Посмотрите «маскировку» в отношении CSS и HTML, вы сможете добиться желаемого эффекта. – SnareChops

ответ

2

Как это? jsFiddle example

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

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

12.1: до и после того, как: псевдо-элементов(reference)

Примечание. Эта спецификация не полностью определяет взаимодействие: 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; } 
3

Хотите быть открыт для делать это через раствор фонового изображения и коробчатого тень? Лучше практиковать, чтобы он был минимальным и сократил ненужную разметку (как в 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/