html - CSS display none mobile 和 tablet 显示在同一个查询中
问题描述
我有以下代码/ CSS 我想要做的只是根据屏幕尺寸/设备(手机、平板电脑、台式机)显示一种类型的菜单,但是我的手机和平板电脑总是一起显示。
谁能看到我可能缺少的东西?
.desktop-nav {
display: none;
}
.tablet-nav {
display: none;
}
.mobile-nav {
display: none;
}
@media (min-width:320px) {
.mobile-nav {
display: block;
}
.desktop-nav {
display: none;
}
.tablet-nav {
display: none;
}
}
@media (min-width:480px) {
.mobile-nav {
display: block;
}
.desktop-nav {
display: none;
}
.tablet-nav {
display: none;
}
}
@media (min-width:600px) {
.tablet-nav {
display: block;
}
}
@media (min-width:801px) {
.tablet-nav {
display: block;
}
}
@media (min-width:1025px) {
.desktop-nav {
display: block;
}
.tablet-nav {
display: none;
}
.mobile-nav {
display: none;
}
}
@media (min-width:1281px) {
.desktop-nav {
display: block;
}
.tablet-nav {
display: none;
}
.mobile-nav {
display: none;
}
}
<div class="desktop-nav">
Desktop
</div>
<div class="tablet-nav">
Tablet
</div>
<div class="mobile-nav">
Mobile
</div>
解决方案
请改用最大宽度。
这是您的代码用简单的英语所说的内容:
隐藏所有菜单
但是,如果大于 320px,则显示移动菜单按钮
如果它大于 480 像素,则显示平板电脑菜单按钮
之后的那些基本上只会妨碍事情,所以你可以删除它们。
您应该改用一些不同的媒体查询,例如下面代码中使用最大宽度的媒体查询。
我还将它们更改为对这些设备更现实。
/* desktops */
.desktop-nav {
display: block;
}
.tablet-nav {
display: none;
}
.mobile-nav {
display: none;
}
@media (max-width: 1000px) {
/* tablets */
.mobile-nav {
display: none;
}
.desktop-nav {
display: none;
}
.tablet-nav {
display: block;
}
}
@media (max-width: 600px) {
/* mobiles */
.mobile-nav {
display: block;
}
.desktop-nav {
display: none;
}
.tablet-nav {
display: none;
}
}
<div class="desktop-nav">
Desktop
</div>
<div class="tablet-nav">
Tablet
</div>
<div class="mobile-nav">
Mobile
</div>
推荐阅读
- java - 休眠搜索:Elasticsearch 传输线程 3" java.lang.OutOfMemoryError:
- html - 复选框右属性在从左到右更改时不起作用
- node.js - nodejs:自定义函数的 setInterval
- c# - 试图从 WPF 窗口打开一个新窗口,我得到 STAThread 异常
- python - 微调 TensorFlow 对象检测预训练模型
- java - 定义广播组?
- python - Power BI 中的 Python 可视化需要什么设置?任何特定的 matplotlib 包版本或系统设置?
- python - 在大量使用元类的库中,如何避免因元类冲突而惹恼用户?
- google-docs - 如何使用谷歌文档或表格作为知识连接器的输入文档
- android - RecyclerView scrollToPosition() - 使用屏幕底部边缘作为参考点(而不是屏幕顶部边缘)