替换标记内部的div,右边使用文本右对齐填充

时间:2014-01-26 16:48:16

标签: html css text-align

我有以下html:

<div id="image">
 <a href="link" title="some link"><img src="someimage"><p id="imagecaption">Some Link</p></a>
</div>

和css:

#mainimage a {
text-decoration: none;
border-bottom: 0;
}

#imagecaption {
position: absolute;
bottom: 0;
width: 100%;
text-align: right;
background-color: #000;
background-color: rgba(0, 0, 0, 0.6);
}

这给了我一个漂亮的半透明条形图,它在图像的底部,我用它来描述图像中的内容。图像和条形图都可以点击并转到同一个地方。

但我目前遇到两个问题。首先显然你不能在<p>标记内使用<div><a>之类的内容。我该怎么用?

其次,理想情况下我想将条形图中的文本填入远离右边缘的10px,这样文本就不会在右边对接。我不能在栏上使用padding-right: 10px,因为我已经指定了宽度,这会导致边框模型出现问题。

有什么想法吗?谢谢。

2 个答案:

答案 0 :(得分:0)

考虑使用<span>代替<p>

#imagecaption {
    position:absolute;
    left:0; right:0; bottom:0;
    padding-right:10px; /* avoids box sizing issue */
    text-align:right;
    background:#000; /* for compatibility, use background not background-color */
    background:rgba(0,0,0,0.6);
}

答案 1 :(得分:0)

我会这样做:http://jsfiddle.net/mikea80/jvse9/

<a href="#" title="some link">
    <div id="image">
        <img src="http://www.w3schools.com/images/pulpit.jpg" />
        <div id="imagecaption">Some Link</div>
    </div>
</a>

a {
    text-decoration: none;
    border-bottom: 0;
}
#image {
    width:304px;
    height:228px;
    margin:0 auto;
    border:1px solid #000;
    overflow:hidden;
}
#imagecaption {
    clear:both;
    position: relative;
    display:block;
    width: 100%;
    height:45px;
    text-align: right;
    background-color: #000;
    background-color: rgba(0, 0, 0, 0.6);
    padding:10px 10px 0 0;
    color:white;
    margin:-45px 0 0 -10px;
    overflow:hidden;
}