我的页面中有这样的内容:
<header>
<nav>
a menu...
</nav>
</header>
<section>
some block...
</section>
<section>
<article>
article content...
</article>
rest of the page...
</section>
它是一个标准的网页布局结构:顶部的菜单,然后是主要主题(第一个<section>
)的部分,然后是页面的其余部分(第二个<section>
)。在桌面视图上可以。
问题:可以用移动设备上的第一个部分块替换CSS 导航块,以便主要主题位于主要顶层菜单之上?
答案 0 :(得分:3)
Ypu可以使用(i)CSS媒体查询(ii)CSS flexbox(iii)order属性来交换元素的顺序而不改变HTML:
/*
* change order of header and sections on smaller screens using CSS flex
* use the stack snippet Full page button to view the "desktop" version
*/
@media only screen and (max-width: 700px) {
#wrapper {
display: flex;
flex-direction: column;
}
section:nth-of-type(1) {
order: 1;
}
header {
order: 2;
}
section:nth-of-type(2) {
order: 3;
}
}
&#13;
<div id="wrapper">
<header>
<nav>Navbar</nav>
</header>
<section>Section 1</section>
<section>Section 2</section>
</div>
&#13;
答案 1 :(得分:1)
您可以使用@media
隐藏nav
。请尝试放大此fiddle
@media screen and (max-width: 600px) {
nav {
display:none;
}
}
&#13;
<header>
<nav>a menu...</nav>
</header>
<section>some block...</section>
<section>
<article>article content...</article>rest of the page...</section>
&#13;