html - CSS断点不起作用
问题描述
我设计了一个响应式网站,它有以下断点。我为每个断点添加了背景颜色以确保它们正常工作:
@media (min-device-width: 1366px) /*1366px or less*/ (background is blue)
@media (min-device-width: 1024px) /*1024px or less*/ (background is pink)
@media (max-width: 991.98px) /*992px or less*/ (background is grey)
@media (max-width: 767.98px /*768px or less*/ (background is green)
@media (max-width: 575.98px) /*576px or less*/ (background is yellow)
除了“蓝色”之外,所有这些都可以工作,我不知道为什么。
第一个是我的桌面断点,是一个名为“custom.css”的文件。所有其他断点都在一个名为“responsive.css”的单独文件中
您可以在此处查看该站点。
解决方案
当使用min-width
ormin-device-width:
进行媒体查询时,您必须以相反的方式对它们进行排序。查看代码的开头:
@media (min-device-width: 1366px) /*1366px or MORE!*/ (background is blue)
@media (min-device-width: 1024px) /*1024px or MORE!*/ (background is pink)
第二个 ( min-device-width: 1024px
) 将始终适用于任何大于 1024 像素的设备,因为它会覆盖第一个,因为它紧随其后,任何大于 1366 的设备也将比 1024 更宽!
(您的“……或更少”假设是错误的:min-width: ...
意味着“……或更多”)
所以只需将它们按相反的顺序排列:
@media (min-device-width: 1024px) /*1024px or MORE*/ (background is pink)
@media (min-device-width: 1366px) /*1366px or MORE*/ (background is blue)
...或max-width
改用。
另一个可能的解决方案:
@media (min-width: 1025px) /*1025px or MORE*/ (background is blue)
@media (max-width: 1024px) /*1024px or less*/ (background is pink)
@media (max-width: 991.98px) /*992px or less*/ (background is grey)
@media (max-width: 767.98px /*768px or less*/ (background is green)
@media (max-width: 575.98px) /*576px or less*/ (background is yellow)
(第一个涵盖了大于 1024 的所有内容,然后您已经拥有了四个断点)
推荐阅读
- sql - 获取 DISTINCT ON 中的重复行数
- java - 在基于 XML 的休眠中执行“session.createQuery(hql).list()”时执行加载命令时出错
- python - 为 numpy 3D 数组制作快速自定义过滤器
- odoo-8 - 超过 1 个产品要听写
- ansible - Ansible - 获取所有已更改文件的列表 [在 md5 检查后]
- javascript - CORS Axios Redmine
- android - 评论中的 Kotlin 断线不起作用
- java - Java文件路径作为目录路径
- oauth-2.0 - IdentityServer3 OAuth2 LinkedIn 外部登录返回访问被拒绝
- ios - 内存泄漏与 init(coder:)