【问题标题】:Having trouble making the media queries work properly.无法使媒体查询正常工作。
【发布时间】:2014-02-25 09:28:02
【问题描述】:

我是响应世界的新手(请记住这一点)。 我有下面列出的以下媒体查询,其中一些有效,而另一些无效。 有效的是: @media only screen and (min-width : 320px) and (max-width : 480px)@media only screen and (min-width : 320px) and (max-width : 480px)

但其他的不起作用。 我检查它们是否有效的方法是通过 FileZillah 在线上传文件/文件夹,然后我在 http://www.responsinator.com/ 上检查它

我的问题是为什么其他媒体查询对这两个不起作用? 如果您知道比响应者更好的网站,请分享:)

/* Smartphones (portrait and landscape) ----------- */
@media only screen 
and (min-width : 320px) 
and (max-width : 480px) {
/* Styles */}

/* Smartphones (portrait) ----------- */
@media only screen 
and (max-width : 320px) {
/* Styles */}

/*iPhone 5 in portrait & landscape*/
@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 568px) {
/* Styles */}

/* iPads (portrait and landscape) ----------- */
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) {
/* Styles */}

/* iPads (landscape) ----------- */
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) 
and (orientation : landscape) {
/* Styles */}

/* iPads (portrait) ----------- */
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) 
and (orientation : portrait) {
/* Styles */}

/* Desktops and laptops ----------- */
@media only screen 
and (min-width : 1224px) {
/* Styles */} 

/* Large screens ----------- */
@media only screen 
and (min-width : 1824px) {
/* Styles */}

【问题讨论】:

  • 关于另一个工具:Firefox 有一个功能,可以测试不同的屏幕尺寸。 webmonkey.com/2012/06/…
  • 感谢分享 Maja!这实际上非常有帮助。您是否也知道为什么有些媒体查询对我有效而其他媒体查询无效?
  • 我明白了,您使用了 2 种不同的语法:min-widthmin-device-width。我猜第二个语法,加上额外的device-keyword,被你正在使用的网站(并且可能也被firefox)解释错误javascriptkit.com/dhtmltutors/cssmediaqueries2.shtml
  • 您可能需要在设备本身上对其进行测试,我们只使用min-width,忘记min-device-width
  • 嘿,玛雅,你居然给了我一个正确的答案!它确实无法正常工作,因为我使用了 2 种不同的语法。我以前经历过它并改变了语法,但它以前不起作用。你的评论说服我再试一次,我意识到我必须在没有应用正确更改的情况下完成它。无论如何,我非常感谢。如果你喜欢,你可以发表你的评论作为答案,这样我就可以给你完整的分数:)谢谢!

标签: html css responsive-design


【解决方案1】:

您在 css 代码中使用了 2 种不同的语法:min-widthmin-device-width

原因是,“device-Pixel”和“CSS-Pixel”之间可能存在差异——尤其是在 Apple 的 Retina-Displays 上。具有如此高结果的设备通常将 1 个 css 像素映射到多个设备像素。

width:指css-Pixels个数

device-width指的是设备本身的宽度,也就是设备的屏幕分辨率

(更多信息可以在这里找到:http://www.javascriptkit.com/dhtmltutors/cssmediaqueries2.shtml

我猜第二个语法加上额外的device-keyword 被您使用的网站解释错误 - 它只会改变宽度,但设备宽度始终保持不变。

我建议减少媒体查询的数量。在大多数情况下,不需要太多不同的语法,它们还会降低代码的可读性和可维护性。

关于使用其他工具的问题:

我建议使用浏览器本身来测试您网站的责任。这比每次更改后将代码上传到在线平台要方便得多。

Firefox 提供了一个用于测试不同屏幕分辨率的内置功能,这非常有用: http://www.webmonkey.com/2012/06/new-firefox-developer-tools-will-help-you-build-responsive-websites/

Chrome 也有很多扩展。

【讨论】:

    猜你喜欢
    • 2016-12-13
    • 2016-01-22
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多