我已经在查看CSS: How to make background-image above background-color in a list并尝试!important
属性,但没有成功。
我有this示例页面,我想将黄色书籍封面用作下面导航栏前面的背景图像。
我使用的代码如下:
.home-link {
background: url(http://www.mensch-jinn-dajjal.net/wp-content/uploads/2013/12/Buchtitel.gif) no-repeat !important;
background-size: 180px 200px !important;
background-position: 400px 80px !important;
z-index: 99999 !important;
}
知道为什么它不会出现在前面吗?
我还尝试为导航栏分配负z-index但没有成功。
答案 0 :(得分:1)
编辑旧帖子
只需更改这些属性即可。因为你提供了非常小的代码。很难想象和解释。但要做以下这些改变。这会得到你想要的。并且你必须重新接触一些对齐
.site-header {
background: url(http://www.mensch-jinn-dajjal.net/wp- content/uploads/2013/12/header-without-book-1600x230.jpg) no-repeat scroll top;
background-size: 1600px auto;
z-index: 1; //updated here
}
.navbar {
background-color: #DD2A0F;
margin-bottom: 10px;
padding-right: 80px;
position: absolute; //updated here
top: 200px; //updated here
z-index: -2; //updated here
}
.site-header .home-link {
color: #141412;
display: block;
margin: 0 auto;
max-width: 1080px;
min-height: 280px; //updated here
padding: 0 20px;
text-decoration: none;
width: 100%;
}
快照就在这里。
答案 1 :(得分:1)
问题不在于你的想法。实际上a.home-link
确实在前面,但它与导航栏没有重叠。而你真的不想要它,因为当菜单按钮位于链接navbar
a.home-link
进行导航
为了实现您的喜好,您需要将a.home-link
分成两部分:
a
元素代表带有文字的链接a
元素代表书籍封面关于你的css编码风格的一般评论:
!important
。 !important
不应该是使基本css继承原则无效的方法。在设计时考虑到样式,您将(几乎)永远不再需要!important
。不要经常使用!ipmortant
,因为(1)你不能覆盖它,(2)它导致无法使用的css代码。99999
已经大于2
,为什么要使用1
?如果您稍后想要99999
之前的某些内容,您会使用999999
吗?答案 2 :(得分:1)
z-index
在这种情况下不起作用; z-index适用于那些堆叠在一起的元素,即它们在顶部和左侧重叠,这不是你的情况。
Html的工作方式应该是流程布局,
这是您网站上的标记:
<header id="masthead" class="site-header" role="banner">
<a class="home-link" href="...</a> <-- Link containing the image-->
<div id="navbar" class="navbar"> <!-- navigation bar -->
</div><!-- #navbar -->
</header>
显然,你的锚和导航栏是一个接一个地放置,它们的渲染方式完全相同。
因此,如果您想重叠图片,则需要制作图片position:absolute
。我建议,创建一个独立的img
标签并使其位置绝对,并将其准确放置在您想要的位置,并使用相对的顶部和左侧,以便根据分辨率调整自身。
请参阅z-index的简单说明:jfiddle
在这个中,我们有四个float:left, position:absolute
分区,默认情况下,当没有给任何一个z-index时,流中最后一个出现的那个是可见颜色,但是当你给任何人提供更高的z-index(例子中的第一个)时,它就变成了可见的颜色
答案 3 :(得分:0)
CSS中元素的堆叠顺序由position
属性和z-index
属性控制。从查看代码开始,您没有在position
div或其下方的导航栏上声明.home-link
属性。
我会尝试将position: relative
添加到.home-link
作为初学者。然后,您可能需要使用导航栏的定位和z-index
。