CSS:在子背景图像上显示父背景图像

标签 css

<分区>

在我的示例中 http://jsfiddle.net/cXbMb/我需要完全显示 Logo 图像,即标题图像必须部分 overdraw 。还有下一个要求:标题图片必须在标题下方 5px 处开始。

<!DOCTYPE html>
<html><head></head>
<body>
    <header>
        <h1>Headline</h1>
        <div></div>
    </header>
</body>
</html>
body { padding: 0; margin: 0 auto; width: 400px; }
header {
    background-image: url('http://placehold.it/100x50/ffff00&text=LOGO');
    background-position: left top;
    background-repeat: no-repeat;
}
header h1 { text-align: right; margin: 0 0 5px; padding: 0; font-size: 1em; }
header div {
    background-image: url('http://placehold.it/400x100/0000ff&text=HEADER');
    background-position: left top;
    background-repeat: no-repeat;
    height:200px;
}

最佳答案

要按照您概述的方式解决它,您应该将 Logo 创建为它自己的元素,并使用 z-index。像这样:http://jsfiddle.net/fzUtb/1/

<!DOCTYPE html>
<body>
    <header>
        <div class="logo"></div>
        <h1>Headline</h1>
        <div></div>
    </header>
</body>

新样式是这样的:

header{position:relative;}
.logo { background-image: url('http://placehold.it/100x50/ffff00&text=LOGO'); background-position: left top; background-repeat: no-repeat;position:absolute;z-index:2;width:100px;height:50px; }

这可能会让人毛骨悚然,但我建议 Logo 不要使用 CSS 图片! CSS 是关于样式的,但这个标志是真实的内容,所以我相信从语义上讲,HTML 元素更有意义。这样它将打印(CSS 背景不打印),并且它可以为屏幕阅读器和 Google 提供 ALT 文本!

关于CSS:在子背景图像上显示父背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16388924/

相关文章:

javascript - 为属于某个类的特定按钮应用 CSS 规则

html - 仅为 HTML 表格中的第一列设置样式

css - 如何为自定义 angularjs 输入绑定(bind)标签?

javascript - 在调整大小的容器中重新排列网格元素,保持一个图 block 不变

css - 居中提交按钮

CSS 问题,100% 宽度一直在错位

css - 如何在图像中制作羽绒?

java - 自定义 Vaadin JavaScript 组件溢出到 VerticalLayout 中的其他组件的问题

jquery - 尝试创建两个 50% 高的 div,堆叠在推/拉 "hideTop/showBoth/HideBottom"配置中

html - 使表格边框透明