html - 将 img 标签转换为 div 标签给出奇怪的高度结果

标签 html css

我当然不是 CSS 专家,但我正在解决一个问题,我想让用户复制图像稍微麻烦一些。当然,它们仍然可以很容易地检索到,但这使得您不能只是将它们拖/放到桌面上。基本上,我有一堆这样的标记:

<img width="400" src="my image.png" class="foo" alt="foo">

相反,我决定将其放入背景图像并将元素更改为 div:

<div width="400" class="foo">

我遇到的问题是图像的宽度固定,但高度可变。当我使用 img 标签时,这非常有效。当我使用 div 标签时,它没有相同的行为。相反,CSS 要求我强制使用高度属性来显示任何内容:

这行不通

.foo {
  display: block;
  margin: 0;
  padding: 0;
  width: 400px;
  background-image: url(myimage.png);
  /* height: 200px; */
}

这种方式可以:

.foo {
  display: block;
  margin: 0;
  padding: 0;
  width: 400px;
  background-image: url(myimage.png);
  height: 200px; 
}

问题是图像的高度都是可变的,正如我之前提到的。因此,如果我对尺寸进行硬编码,它会一遍又一遍地平铺。该容器可以作为 5,000 多张图像的占位符,因此手动设置它是行不通的。如果我能让这个 div 的行为与 img 标签完全一样,那么问题就解决了。

最佳答案

如果您只是试图阻止人们点击和拖放,我会说将每个 img 放入它自己的 divposition:relative。在具有以下样式的相对 div 中添加另一个 div:

div.img_box {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: none;
    z-index: 9999; /* or anything higher than your img's z-index */
}

这将用透明的 div 覆盖图像。

这样,图像(它是您内容的一部分)在 html 中的句法仍然是正确的。

当然,每个人都说他们已经通过访问该网站将图像下载到他们的计算机上了,这当然是正确的。

关于html - 将 img 标签转换为 div 标签给出奇怪的高度结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369293/

相关文章:

javascript - 显示/隐藏 Div 仅由按钮触发

html - Firefox - 从未装饰的复选框中删除边框

css - 移动 View 中右侧大屏幕中的空白区域

javascript - 找到模态消息的宽度和高度

html - 如何在html打印页面pdf中自动添加第2/2页

html - 在检查器上禁用后动画有效

css - 如何设置全宽和响应式背景图片

html - Perl - 按 "table"标签及其内容拆分 html 代码

javascript - 写入文本时更新 div 无法按预期工作

html - 空 xml 元素混淆 - HTML