0

我在彼此内部有两个 DIV。内部 DIV 包含一个图像。我正在尝试在右上角的该图像上添加一个浮动文本。我不知道如何使该文本使用内部 DIV 的位置而不是外部位置。

这是我到目前为止得到的

CSS:

html {
    background: #EEF0F3;
}
.outer {
    background: #FFFFFF;
    border-radius: 4px 4px 4px 4px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
    margin: 0 auto;
    padding:20px 0px;
    position: relative;
    width: 680px;
    text-align: center;
    margin-bottom: 20px;
}
.inner {
    position: relative;
}
h2 { 
   position: absolute; 
   top: 0px; 
   right: 0px; 
}
h2 span { 
   color: white; 
   font: bold 24px Helvetica, Sans-Serif; 
   letter-spacing: -1px;
   background: rgba(255, 0, 0, 0.5);
   padding: 0px 10px; 
}

HTML:

<div class="outer">
    <div class="inner">
        <h2><span>Title 1</span></h2>
        <img src="1.jpg">
    </div>
</div>

这是JSFiddle中的代码

http://jsfiddle.net/UM8ea/

如果我将定位设置为:

h2 { 
   position: absolute; 
   top: 20px; 
   right: -20px; 
}

我得到了想要的结果,但这感觉像是解决方法而不是解决方案。

4

2 回答 2

2

它非常简单。

检查这个小提琴

.outer {
background: #FFFFFF;
border-radius: 4px 4px 4px 4px;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
margin: 0 auto;
padding:20px 0px;
position: relative;
width: 680px;
text-align: center;
margin-bottom: 20px;
}

对于 h2

 h2 
{ 
position: absolute; 
top: 5px; 
right: 20px; 
margin:0;
}
于 2013-04-11T09:33:14.747 回答
1

你有这种行为是因为.outer它比图像更宽,然后.inner也是。的h2位置与 相关.inner,并向右移动。

如果您设置.outer为 640px 宽度(作为图像),您将获得所需的结果

其他解决方案margin: 0 20px;是设置.inner

如果您希望文本全部位于图像上方,您可以h2 {margin:0;}在这两种情况下进行设置。

于 2013-04-11T08:53:03.537 回答