响应地将div高度调整为背景图像高度

时间:2015-07-29 21:02:32

标签: javascript jquery html css

我有一个图片博客,我想禁用简单的右键单击图片下载。为此,我将图像设置为div元素的背景。

我的网站响应迅速,我将background-size: contain添加到div元素中,因此如果调整大小,背景图片会采用宽度。

问题是,我不知道如何使div高度采用背景图像的高度,因此在调整大小时图像下面没有足够的空间

是否可以使用例如jQuery的?

尝试缩小div:



.ui-resizable-helper {
    border: 2px dotted #00F;
}

.resizable {
    background: url('http://www.ancestry.com/wiki/images/archive/a/a9/20100708215937!Example.jpg') no-repeat;
    background-size: contain;
    width: 400px;
    height: 267px;
    border: 2px solid gray;
}

<div class="resizable"></div>

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/start/jquery-ui.css" rel="stylesheet" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

<script>
$(function () {
    $(".resizable").resizable({
        animate: true,
    });
});
</script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

阻止右键单击图片下载的一种CSS方法是在图片上设置pointer-events: nonehttp://jsfiddle.net/h7jeyz6y/。这样,通过将图像作为div的一部分包含在内,您可以通过图像的高度控制div的高度,同时防止点击事件。

img {
    pointer-events: none;
}

另一种仅限CSS的方法是在图像顶部放置一个不可见的屏幕来捕捉点击事件:http://jsfiddle.net/zpsdwkwm/

.imageHolder:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100;
}