(CSS)如何在 <img> 标签上定位文本(带背景颜色)而不使用绝对定位

Posted

技术标签:

【中文标题】(CSS)如何在 <img> 标签上定位文本(带背景颜色)而不使用绝对定位【英文标题】:(CSS) How position text (with background color) over <img> tag without absolute positioning 【发布时间】:2011-08-25 07:34:15 【问题描述】:

正如标题所说

我的代码是这样的:

<div class=container> <img/> <div>some text with line one, line two , line three </div> </div>

容器应该有 overflow:hidden 并且我的文本会超过一行,所以我只需要我的一小部分文本出现在容器的底部,所以当用户悬停时,会出现全文。

我想在没有绝对定位的情况下将文本定位在 img 上。 我尝试了负边距,但那里的文本不会有 BG 颜色。 还尝试了相对位置。 => 在 IE 上效果很好,但不是偶然的。

这是我想要的图片

【问题讨论】:

我们也给你带来一只独角兽吗? 我认为position: absolute; 是获得这个的唯一方法。你有不想使用它的理由吗? @Ender : 请给两个 :) @David-Thomas : IE6 中的每件事都变得疯狂,当它绝对化时,我没有足够的专家来处理它(你有什么建议吗?那个问题??) 老兄,看在上帝的份上,请不要支持ie6。除非它是为了您的业务或您真的不应该使用它。 @Bialy: Are you sure you care about IE6? 你有充分的理由支持它吗? 【参考方案1】:

我认为没有理由不使用position: absolute

见:http://jsfiddle.net/NeaR4/

CSS:

.container 
    border: 2px dashed #444;
    float: left;
    position: relative

.container img 
    display: block

.container > div 
    position: absolute;
    left: 0;
    bottom: 0;
    right: 0;
    height: 14px;
    background: #000;
    background: rgba(0,0,0,0.7);
    color: #fff;
    overflow: hidden;
    font: bold 14px Arial, sans-serif;
    padding: 5px;

.container:hover > div 
    height: auto

HTML:

<div class="container">
    <img src="http://dummyimage.com/230x180/f0f/fff" />
    <div>some text with line oneeee, line twoooooooo ooooooo , line three</div>
</div>

【讨论】:

我已经使用绝对定位并且正在寻找更好的东西,无论如何感谢您的时间:) 我会看看如何让它在 IE6 中运行。你可以使用(次要)javascript 吗? (在我注意到你接受了我在 IE6 中不起作用的答案之后) 我应该考虑在 IE6 中实现这项工作吗? 如果您有时间,我想看看针对该浏览器的任何 js 解决方案 :( @Bialy:这是一个主要适用于 IE6 的版本,必要时使用 jQuery:http://fiddle.jshell.net/euawG/show/light/ / http://jsfiddle.net/euawG/ - 请注意,我使用 .load() 运行代码(而不是.ready())。【参考方案2】:

position:relative 解决你的问题

【讨论】:

亲戚为我做了。困扰我一段时间了。有点奇怪的解决方案是缺乏相对。谢谢。

以上是关于(CSS)如何在 <img> 标签上定位文本(带背景颜色)而不使用绝对定位的主要内容,如果未能解决你的问题,请参考以下文章

HTML/javascript 文本 清除 CSS 样式 代码 等标签 如何编写

如何在悬停时更改 <img> 标签的来源?

使用 css 替换图像(在 <img /> 标签中)

css html 如何将图片img标签 水平居中 垂直居中 和水平垂直居中

js如何实现a标签获取下面img的src

在 <img> 标签中使用时,嵌入在 SVG 中的动态 CSS 不起作用