【发布时间】:2020-06-09 13:30:38
【问题描述】:
This is an example of my code
Display on Desktop
<body>
<div>
<header>
<div>example</div>
<a><img src"my logo is here"/></a>
<div>example</div>
<nav>classic-menu</nav>
</header>
</div>
</body>
Display on Mobile
<body>
<div>
<nav>menu responsive</nav>-------> when the menu go in drop down all header content follow the menu
<header>
<div>example</div>
<a><img src"my logo is here"/></a>----->wrong logo position when you open the menu responsive
<div>example</div>
</header>
</div>
</body>
我想知道是否可以通过媒体查询更改 HTML 元素的当前顺序,从而在响应式视图中固定徽标位置。
【问题讨论】:
-
您不能使用 CSS 修改 DOM。如果视觉顺序是水平的(即从左到右,反之亦然),您可以更改视觉顺序,但不能更改垂直顺序。有朝一日使用现代 CSS 布局功能可以实现这一点,但目前还不行。
-
如果您的浏览器支持,您可以使用 flexbox 重新排序元素。但是,您将无法像上面那样让 DOM 从
mobile切换到desktop。您正在将nav移出header并将其置于上一层。以获得想要的效果。您可能希望将nav绝对定位在移动视口上。 -
@feeela 你们想多了!超级简单,我只是回答OP的问题lol。
-
添加 - 在移动视图中定位绝对“导航”
-
正如@LaljiTadhani 建议的那样,使用CSS 将元素移出其父元素的唯一方法是在元素上设置
position: absolute,并在必要时将position: static设置为父元素。兄弟姐妹可以使用 flexbox 和order移动,但不能从它们的容器中移出。
标签: html css responsive-design media-queries