CSS图像边框翻转效果无需调整图像大小?

时间:2013-10-11 19:06:53

标签: css image hover border

我几乎不敢问这个问题,因为它似乎是一个显而易见的问题,但我找不到一个明确的答案,所以冒着玷污我不存在的声誉的风险,这里有:

有没有办法在悬停时向图像添加展开的CSS内边框,而不会影响图像的大小?

这是我的代码尽可能接近我自己的代码:

CSS

* {
-webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
      box-sizing: border-box;
}

.media_item_container img {  
border: 3px solid #00205f;

-webkit-transition: all .3s ease;
 -moz-transition: all .3s ease;
   -o-transition: all .3s ease;
  -ms-transition: all .3s ease;
      transition: all .3s ease;
}

.media_item_container img:hover {
border: 10px solid #00205f;
}


.media_item_container a
{
font-weight:bold;
color:#000;
text-decoration:none;
font-size:13px;
}
.media_item_container a:hover
{
color:#fff;
}

HTML

<body bgcolor="#999999">
<div class="media_item_container">

    <div class="media_item_text">
    <a href="#"><img src="http://lorempixel.com/output/business-q-c-158-158-5.jpg" width="158" height="158" class="media_item_thumb" />
    <h3>E-Brochure: <em>Printable e-brochure</em></h3>
    DOWNLOAD »</a>
    </div>
</div>
</body>

http://jsfiddle.net/aKedV/

只是试图确定是否有任何方法可以在没有图像按比例缩小的情况下进行边框尺寸的增加(我基本上理解为什么会发生这种情况,我似乎无法自己想出一个解决方案)。

我应该澄清当我问是否有办法做到这一点时,我认为必须有一些方法来做到这一点,但我想知道是否有一个相对简单的方法。

非常感谢!

2 个答案:

答案 0 :(得分:5)

您可以使用轮廓而不是边框​​。

outline:3px solid red;
outline-offset:-3px; //keeping it inside

并悬停

outline:10px solid red;
outline-offset:-10px;

Fiddle

答案 1 :(得分:3)

交配这是我提出的解决方案。不得不改变一些HTML和CSS,但这是我的镜头。希望这有助于交配,干杯

http://jsfiddle.net/aKedV/3/

<强> HTML:

<body bgcolor="#999999">
    <div class="media_item_container">
        <div class="media_item_text">
            <a href="#">
                <div class="border"  style="background: url(http://lorempixel.com/output/business-q-c-158-158-5.jpg);">
                </div>


<h3>E-Brochure: <em>Printable e-brochure</em></h3>
    DOWNLOAD »</a>

    </div>
</div>

<强> CSS:

.border {
    -webkit-transition: all 500ms linear;
    -o-transition: all 500ms linear;
    -moz-transition: all 500ms linear;
    -ms-transition: all 500ms linear;
    -kthtml-transition: all 500ms linear;
    transition: all 500ms linear;
    width: 158px;
    height: 158px;
}
.border:hover {
    -webkit-box-shadow: inset 0px 0px 2px 10px #00205f;
   box-shadow: inset 0px 0px 2px 10px #00205f;
}
.media_item_container a
{
    font-weight:bold;
    color:#000;
    text-decoration:none;
    font-size:13px;
}
.media_item_container a:hover
{
    color:#fff;
}