Css 两个图像组成一个div的背景?
我需要在CSS中创建以下内容,并使其在IE7+上工作(如果可能的话,还有Firefox): 除了背景,一切都完成了 每次的报价都不一样,所以背景需要自动调整高度 它还需要自动调整到它所放置的容器的宽度。我的意思是梯度不能拉伸。背景需要是淡入左渐变,然后是背景颜色,然后是淡出右渐变 这是我当前的代码-: HTMLCss 两个图像组成一个div的背景?,css,background,Css,Background,我需要在CSS中创建以下内容,并使其在IE7+上工作(如果可能的话,还有Firefox): 除了背景,一切都完成了 每次的报价都不一样,所以背景需要自动调整高度 它还需要自动调整到它所放置的容器的宽度。我的意思是梯度不能拉伸。背景需要是淡入左渐变,然后是背景颜色,然后是淡出右渐变 这是我当前的代码-: HTML <div id="ehs-quotecontainer"> <div id="ehs-bgleft"> </div> <
<div id="ehs-quotecontainer">
<div id="ehs-bgleft">
</div>
<div id="ehs-bgright">
</div>
<div class="ehs-marks" id="ehs-marktop">
“
</div>
<span class="ehs-quotetext">Once you believe anything, you stop thinking about it.</span>
<div class="ehs-marks" id="ehs-markbottom">
”
</div>
</div>
关于如何使背景正确工作有什么想法? < P>你能创建一个单独的图像,中间的梯度会吗?如果是,您可以使用:
#ehs-quotecontainer {
background: (YOUR_OUTER_EDGE_COLOR) url(../images/ehsbgMerged.jpg) repeat-y center center;
}
如果您已经定义了框的边缘(看起来您已经定义了),那么渐变图像将始终位于文本的中心
我应该补充一点,如果你的图像太窄,你的背景颜色会与图像的边缘混合,而不是分散在中间,这可能不是您想要的。我不想这么说,但由于您将使用一个非常小的图像,您不想使用背景并插入具有背景的文本 因此,您将:
最简单的方法是将整个报价
定位为:relative
,这样就可以相对于报价容器定位其中的内容
在这之后,你所要求的是相当容易做到的:
类似这样的内容:
身体{
背景:url(http://i.stack.imgur.com/VeMeV.png)不重复8px 8px;
保证金:71px 8px 8px;
}
.引用{
边框:1px实心#dfdfdf;
位置:相对位置;
填充:8px 35px;
}
引用
p{
保证金:0;
字体:斜体12px无衬线;
文本对齐:居中;
位置:相对位置;
z指数:1;
}
.quote.w,
.quote.e{
位置:绝对位置;
排名:0;
宽度:75px;
身高:100%;
背景图片:url(http://img526.imageshack.us/img526/1796/gradientj.png);
背景重复:重复-y;
}
.quote.w{左:0;背景位置:-75px 0;}
.quote.e{右侧:0;背景位置:0;}
引用
跨度{
颜色:#898a8e;
字体:70px/70px allerta,衬线;
位置:绝对位置;
}
引用
白雪公主{
左:-35px;
顶部:-15px;
}
引用
rdquo{
右:-35px;
底部:-42px;
}
“没有任何任务是如此重要或紧迫以至于不能安全地完成。”
@Alex您可以在JSFIDLE或其他地方设置演示吗?对于初学者,您希望标记更像这样:“没有任务是如此重要或紧急以至于无法安全完成。”您应该指定您关心的浏览器。@Šime Vidas:现在在JSFIDLE上设置。谢谢你的邀请suggestion@reisio:CSS对我来说是相当新的,所以谢谢你的提示。我已经更新了提问浏览器和JSFIDLE链接。@reisio,这不是语义标记。您应该在
blockquote
或q
元素中包装报价。如果您必须在报价单中添加额外的元素,那么可能应该通过JavaScript来完成。仅仅为了调整样式而弄乱标记总是一个坏主意。不幸的是,客户要求渐变看起来像截图。不允许伸展。否则这就容易多了!这是一个有趣的观点。问题是边缘没有定义,并且可能比梯度图像更宽。我可能需要将它们固定到一定的宽度。我同意David的答案b/c,这对我帮助最大,但对你的答案投了更高的票,因为它教会了我使用p
的重要性,以及一种可以实现这一点的替代方法。他们使用相同的方法,实际上,这一种方法只是具有更好的标记,在IE7中工作,一般来说,由于引用的是web字体,所以浏览器之间的惊喜应该会少一些。
#ehs-quotecontainer {
background: (YOUR_OUTER_EDGE_COLOR) url(../images/ehsbgMerged.jpg) repeat-y center center;
}
<!doctype html>
<html>
<head>
<title></title>
<link href='http://fonts.googleapis.com/css?family=Allerta' rel='stylesheet'>
<style>
body {
background: url(http://i.stack.imgur.com/VeMeV.png) no-repeat 8px 8px;
margin: 71px 8px 8px;
}
.quote {
border: 1px solid #dfdfdf;
position: relative;
padding: 8px 35px;
}
.quote
p {
margin: 0;
font: italic 12px sans-serif;
text-align: center;
position: relative;
z-index: 1;
}
.quote .w,
.quote .e {
position: absolute;
top: 0;
width: 75px;
height: 100%;
background-image: url(http://img526.imageshack.us/img526/1796/gradientj.png);
background-repeat: repeat-y;
}
.quote .w { left: 0; background-position: -75px 0; }
.quote .e { right: 0; background-position: 0 0; }
.quote
span {
color: #898a8e;
font: 70px/70px allerta, serif;
position: absolute;
}
.quote
.ldquo {
left: -35px;
top: -15px;
}
.quote
.rdquo {
right: -35px;
bottom: -42px;
}
</style>
</head>
<body>
<div style="width: 209px;">
<div class="quote">
<p><span class="ldquo">“</span>No task is so important or urgent that it cannot be done safely.<span class="rdquo">”</span></p>
<div class="w"></div>
<div class="e"></div>
</div>
</div>
</body>
</html>