我正在我的第一个真实网站上工作,并在媒体查询和定位上挣扎。我想创建一个包含大图像和菜单的顶部着陆页的单页设计。对于较小的屏幕,我想隐藏这个大图像并只显示菜单。响应式图片和媒体查询
所以我的计划是建立一个移动版本,而不应该通过媒体查询扩展图像。在我的HTML我创建了一个相对定位的div包括图像和标题相对定位的div和导航:
<div class="relative">
<img id="landingimg" class="bigimg" src="http://placekitten.com/g/1200/800">
<div id="header">
<h1 class="center headline">HEADLINE</h1>
<nav>
<a class="navigation" href="">Link</a>
<a class="navigation" href="">Link</a>
<a class="navigation" href="">Link</a>
<a class="navigation" href="">Link</a>
</nav>
</div>
</div>
图像设置为display:none;
。拥有超过400像素的屏幕大小我想显示的图像(#landingimg
),并通过此查询重新定位容器内的导航DIV(#header
):
@media screen and (min-width: 470px) {
.headline {
font-size: 200% !important;
}
#landingimg {
display: inline !important;
}
#header {
position: absolute !important;
top: 30% !important;
}
}
这种做法令人遗憾的是没有工作,导致以下问题:
- 当屏幕大小更改时,媒体查询不会插入图像。
- 在非常小的屏幕上,标题/菜单覆盖内容或页脚覆盖菜单。即使两者都设置为
position:relative, display:block/inline
等,或者在相同的Z指数级别上,也会发生这种情况。我尝试了千次以不同的方法解决这个问题,但没有成功。我只是不知道如何防止这种影响。 - 我不得不在我的查询中使用
!important
才能正常工作,但不知道为什么。我与元素的ID工作,以防止任何优先权冲突,但还是不行...
下面拨弄我用不透明度(而不是display:none;
)的替代解决方案的形象,给你一个想法它应该如何工作,但这不解决菜单覆盖内容的问题,如果屏幕变得非常小,并且这也意味着移动设备仍然加载图像。 您可以找到它:https://jsfiddle.net/9pj5ux3L/
与显示器没有最初的方法存储在此链接下: https://jsfiddle.net/h56nx35g/2/
希望有人能告诉我一个更专业的解决方案。谢谢!
谢谢你的意见,但我还是有点困惑: – Til
1.我知道这是不好的使用很重要,但我真的不知道那是什么阻止了媒体quiery从没有工作的问题...!有没有人在我的代码中看到问题? 2.是否有人知道为什么菜单覆盖了内容? 如果没有任何工作,我会尝试JS的方法,但宁愿一个CSS解决方案,以保持简单,因为我想知道如何在CSS中做到这一点:) – Til
试图设置一个背景图像到父级登陆div:'#landingdiv { \t \t background-image:url(“http://placekitten.com/200/300”)!important; \t \t身高:100%!重要; \t \t宽度:100%!重要; \t}' 但实际上并没有发生任何事(无论是在正常的CSS还是在媒体上都没有发生)。任何想法为什么?谢谢! – Til