android 版本为 2.2.1 和 2.3.5 且屏幕尺寸为 240 * 320 和屏幕尺寸为 480 * 800 的 Android 设备如何使用媒体查询?

Posted

技术标签:

【中文标题】android 版本为 2.2.1 和 2.3.5 且屏幕尺寸为 240 * 320 和屏幕尺寸为 480 * 800 的 Android 设备如何使用媒体查询?【英文标题】:How to use media Queries for android devices with android version 2.2.1 and 2.3.5 and their screen size of 240 * 320 and screen size of 480 * 800? 【发布时间】:2013-06-10 17:30:29 【问题描述】:

我必须使用 尺寸为 304 * 250 的图像。

它在 320 * 480 的屏幕尺寸和 720 * 1280 的屏幕尺寸下完美运行。

现在,当我想在 240 * 320 和 480 * 800 的屏幕尺寸中检查相同的情况时? 既看不到背景图像,也看不到数据值。

采取的补救措施:

我想用盒子阴影代替图像。我实现了它,并在 320 * 480 的屏幕尺寸下进行了测试,非常完美。

我想在 240 * 320 和 480 * 800 的屏幕尺寸下使用 Media Query

进行测试

我从here 引用并尝试实现它,但我没有成功。

我的普通CSS

.container

    width:80%; height:auto; margin-left:10px; margin-right:10px; background-color:#CCCCCC; text-align:justify; border-radius:20px; box-shadow: 10px 10px 5px #888888; padding:10px; min-height:250px;

我的媒体查询 CSS

@media only screen and (max-device-width: 240px) 

    .container
    
       width:180px; height:150px; margin-left:10px; margin-right:10px; background-color:#CCCCCC; border-radius:20px; box-shadow: 10px 10px 5px #888888; padding:10px; ;
    

我已经通过以下方式调用了 CSS

<link rel="stylesheet" type="text/css" href="css/common_set.css" />

问题: 它没有实现。我看不到盒子。它只是一个空屏幕。

它不会访问上面提到的媒体查询 css。

已尝试的解决方案

<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />

我的实现有什么错误吗?请帮忙!!

澄清一下,如果我理解了答案的第一点

    .name_layer
    
         float:left; width:100%; padding:0; margin:0; line-height:35px; height:35px; color: #FFFFFF; font-size:20px;
    
    .name_layer_text
    
        margin-left:1%;
    
    .swipe_body
    
          padding:0; margin:0; width:100%; height:480px; 
    
    .container
    
             width:200px; height:10px; margin-left:10px; margin-right:10px; background-color:#CCCCCC; border-radius:20px; box-shadow: 10px 10px 5px #888888; padding:10px; 
    
    @media only screen and (max-width: 240px) 
    
      .container
      
            width:180px; height:150px; margin-left:10px; margin-right:10px; background-color:#CCCCCC; border-radius:20px; box-shadow: 10px 10px 5px #888888; padding:10px; ;
      
    

这是正确的吗?但我的输出是根据容器 CSS...我在设备上测试它而不是浏览器

编辑:2

    @media only screen and (max-width:240px)  
    
      .container
      
            width:180px; height:150px; margin-left:10px; margin-right:10px; background-color:#CCCCCC; border-radius:20px; box-shadow: 10px 10px 5px #888888; padding:10px;
      
           
    @media only screen and (min-width:240px)
    
         .container
        
                 width:250px; height:250px; margin-left:10px; margin-right:10px; background-color:#CCCCCC; border-radius:20px; box-shadow: 10px 10px 5px #888888; padding:10px; top:5px min-height:200px;
        
    

这是一个较小的设备,采用第二个 CSS- min-width: 240px

【问题讨论】:

【参考方案1】:

这些是您的媒体查询不起作用的几种可能性。

    当您使用媒体查询 CSS 时,您是否删除了正常的 CSS?还是两个都保留了?如果你想同时拥有两者,那么你需要适当地保留它们,否则普通的 CSS 会覆盖里面的媒体查询。

    例如,如果你的 css 是这样的......

    @media only screen and (max-width: 241px) 
    
        .container
        
             width:180px; height:150px; margin-left:10px; margin-right:10px; background-color:#CCCCCC; border-radius:20px; box-shadow: 10px 10px 5px #888888; padding:10px; ;
        
    
    
    .container
    
         width:180px; height:150px; margin-left:10px; margin-right:10px; background-color:#CCCCCC; border-radius:20px; box-shadow: 10px 10px 5px #888888; padding:10px; ;
    
    

    媒体查询之外的.container 样式将覆盖媒体查询内部的样式。因此,如果存在特定于设备分辨率的样式,则必须将它们包装在媒体查询中。

    与设备分辨率无关的样式,例如在所有分辨率中都相同的标题颜色,应在媒体查询之外。

    一个可能的问题是媒体查询与设备的分辨率不匹配。

    另外请检查您要查看的方向。

    如果您在浏览器上进行测试,只有当您减小浏览器的宽度以满足媒体查询时,您才会在媒体查询中看到样式。很重要!因为通过使用媒体查询,您对浏览器说只有在宽度这么多时才应用它。例如,要查看 max-width 241px 的媒体查询内部的变化,您需要将浏览器的宽度减小到小于 240px(只需将浏览器的宽度减小到非常小)

您可以尝试对分辨率为 240*320 的设备进行媒体查询。

我想我找到了解决您需要从媒体查询中删除 -device- 的问题的解决方案(在浏览器上测试?)

@media only screen and (max-width: 241px) 

  .container
  
   width:180px; height:150px; margin-left:10px; margin-right:10px; background-color:#CCCCCC; border-radius:20px; box-shadow: 10px 10px 5px #888888; padding:10px; ;
  

您可以尝试对分辨率为 480*800 的设备进行媒体查询

@media only screen 
and (min-width : 480px) 

/* Styles */

注意:对媒体查询要非常谨慎。当您设置 min 和 max 时,它们将适用于所有满足 min 和 max 的分辨率。例如上面的媒体查询将适用于宽度大于 480 的所有设备。

【讨论】:

Yugandhar Pathi,谢谢,您的回答让我对媒体查询有了更多的了解。你能解释一下第一点吗?我应该如何拥有正常的 CSS 和媒体查询 CSS? 用户,我已经在答案中添加了解释。 你是对的......为什么我问你仍然没有得到实施。所以,我想如果我误解了你的第一点。我希望我已经理解你所说的......请检查问题的编辑版本。 像这样包裹另一个 .container @media only screen and (min-width: 240px) .container... 然后这将适用于宽度大于 240px 的设备。 这是因为您的设备宽度与两者都匹配,因此第二个 css 中存在的任何一个都会覆盖第一个。为了摆脱这种情况,将 mediaquery 的 min 更改为 241px。

以上是关于android 版本为 2.2.1 和 2.3.5 且屏幕尺寸为 240 * 320 和屏幕尺寸为 480 * 800 的 Android 设备如何使用媒体查询?的主要内容,如果未能解决你的问题,请参考以下文章

Unsuported Android插件版本:3.5.3。升级flutter 1.12.13 + hotfix.5之后

pfSense 2.3.5发布!

检测“samsung galaxy Android 2.3.5”的方向(横向和纵向模式)的事件

按频率和进入顺序重新排序向量

新手学Python之学习官网教程(九: Classes)

常见应用发布方式剖析