html - 使用 CSS 响应式更改内容菜单

标签 html css media-queries

我想只使用 CSS 做一个响应式菜单。

我正在尝试做类似的事情: - 当该 div 的宽度非常小时显示象形图。 - 当可用宽度稍大时,显示像“搜索”这样的小文本(没有象形图)。 - 当宽度稍大时,显示长文本,如“随心搜索”。

提前致谢

最佳答案

简短的回答是:它很复杂。纯 CSS 解决方案包括添加一个类,如下所示:

.hidden {
  visibility: hidden;
}

在给定特定视口(viewport)大小的情况下应隐藏 DOM 中的元素。现在您有了一个小实用程序类,您可以开始添加媒体查询来影响菜单中的各种类和 id。这里有点麻烦,您的 .hidden 类需要动态更改。真的,你最终会有更多这样的类(class):

.hidden-search-bar {
    visibility: hidden;
}

遍及您的 CSS 文件,每个只应用于特定的媒体查询。另一种方法是构建一个完整的网格系统,该系统使用实用程序类,例如:

.col-large-display-hidden {
    visibility: hidden;
}

因此您可以告诉浏览器,当它处于 large-display 视口(viewport)大小范围内时,它知道隐藏该类的任何内容。

我相信还有更多有趣的方法可以解决这个问题,但如果您希望能够将这些类转移到其他页面,那么您需要更加系统化。我建议查看 Twitter Bootstrap看看他们是如何处理这个问题的,但他们确实在整个框架中使用了 JavaScript(特别是 jQuery)。

关于html - 使用 CSS 响应式更改内容菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25208510/

相关文章:

mobile - 使用媒体查询引入新元素

jquery - 从一个 css 中的 for 循环生成的页面的不同背景

html - 为什么 Jinja 在宏中转义 html?

jquery - 带有 jquery 标题的 cycle2 幻灯片不合适

html - 响应式媒体在 Gmail 的电子邮件模板中不起作用

html - Div 没有彼此对齐

css - CSS可以根据语言选择不同的默认字体和大小吗

html - 时事通讯电子邮件中的响应图像最大宽度属性

javascript - 从移动 View 中删除 Div

html - 使用媒体查询在设置的屏幕宽度和 Bootstrap 网格中关闭 css 规则