我使用低于989像素(最大图像大小)的媒体查询为背景图像创建了一个断点。我不是用来显示图像,因为我想为不同的设备使用不同的图像(因此移动设备当然不会下载最大的图像)。 (每个图像都在特定的断点中定义)。只是提前说,这是http://www.glorkianwarrior.com
的现场直播css就是这样:
.splash {
max-width: 988px;
margin:auto;
height:380px;
}
@media (min-width: 989px) {
.splash {
background: url('../images/academy.png') no-repeat;
}
}
@media (max-width: 989px) and (min-width: 321px) {
.splash {
background: url('../images/academy-mid.png') no-repeat;
max-width: 640px;
padding: 4px;
position: relative;
background-size: 100%;
}
}
这使得一旦页面达到988像素或更低(低至321像素),飞溅图像变得流畅。它实际上并没有改变它的宽度/高度,直到浏览器宽度小于640px。嵌套在.splash下面的导航栏中发生的事情不会改变它的位置。这是因为它连接到.splash的高度。 html看起来像这样:
<header class="splashhead">
<div class="splash">
<nav class="kochalka">
<ul>
<li class="navclass first active"><a href="http://glorkianwarrior.com/" title="Home" >Home</a></li>
<li class="navclass"><a href="news/" title="News" >News</a></li>
<li class="navclass"><a href="gallery.html" title="Gallery" >Gallery</a></li>
<li class="navclass last"><a href="guide.html" title="Guide" >Guide</a></li>
</ul>
</nav>
</div>
</header>
如果我不给它那个高度,它就会消失。我试过给它100%或一定百分比的页面本身。我尝试给它的父母一个特定的高度,然后在.splash上做100%,但这并没有改变导航栏的位置。
是否可以根据浏览器大小更改此导航的大小?我是否必须弄清楚如何在页面上使用图像在每个图像中使用自己的div并使用媒体查询在非相关div上显示:none?
答案 0 :(得分:2)
你需要将你的nav
包装在div中,然后使用一些聪明的CSS给它一个宽高比。见下文 -
这是你的代码:
我已经在wrapper
周围添加了nav
div,如您所见
<header class="splashhead">
<div class="splash">
<div class="wrapper">
<nav class="kochalka" style="">
<ul>
<li class="navclass first active"><a href="http://glorkianwarrior.com/" title="Home">Home</a></li>
<li class="navclass"><a href="news/" title="News">News</a></li>
<li class="navclass"><a href="gallery.html" title="Gallery">Gallery</a></li>
<li class="navclass last"><a href="guide.html" title="Guide">Guide</a></li>
</ul>
</nav>
</div>
</div></header>
还添加以下样式,然后它将按您的意愿工作
<style>
.wrapper {
width: 100%;
display: inline-block;
position: relative;
}
.wrapper:after {
padding-top: 56.25%; /*16:9 ratio*/
display: block;
content: '';
}
</style>