【问题标题】:% values in css makes image disappearcss 中的 % 值使图像消失
【发布时间】:2015-05-07 22:32:31
【问题描述】:

我在缩放元素以提高响应能力时遇到了一些问题。

如果我使用 px 值,则缩放是正确的并且表现得像我想要的那样。但由于我希望我的移动 css 与尽可能多的设备兼容,我更喜欢使用 % 值。问题是,一旦我将 px 值切换为 % 值,我的图像/内容要么消失,要么缩放到非常小的比例,并且也会改变 x 和 y 位置。

是否有任何已知问题可能导致浏览器难以处理 % 值?我环顾四周,但找不到任何描述我的问题的内容。

我的问题示例:

  • 使用 px 值(正常工作):JSFiddle demo
  • .header{
        width: 30%;
        margin: auto;
        position: relative;
    }
    
    .logo{
        background-color: #FF0000;
        width: 100px;
        height: 100px;
        display: inline-block;
        margin: auto;
    }
    

  • 使用 % 值(图像消失):JSFiddle demo
  • .header{
        width: 30%;
        margin: auto;
        position: relative;
    }
    
    .logo{
        background-color: #FF0000;
        width: 100%;
        height: 100%;
        display: inline-block;
        margin: auto;
    }
    

    【问题讨论】:

    • 您能否提供指向该问题示例的链接?百分比在手机上运行良好。另外,我会考虑修改视口的元标记。为什么要禁用缩放?
    • 添加了实时示例。由于内容数量有限,因此无需进行缩放,并且应该在屏幕的 75% 以内。
    • minimum-scale=1.0, maximum-scale=1.0 - 禁用用户捏合和缩放功能。
    • 删除它似乎对我的问题没有任何影响。
    • 仅供参考,“header” div 元素没有高度。因此,当 inline-block logo 元素填充它时,它的高度为零。

    标签: css fluid-layout


    【解决方案1】:

    行为是绝对正确的。当您使用 % 时,它表示父容器总宽度的一部分。在您使用 % 的示例中,您说“占据整个可用区域”。但是父容器只设置了宽度。所以,它得到了 30% 的宽度,但没有添加高度。如果您将 height: 200px; (例如)添加到您的 .header 中,您将看到它按预期工作 -> http://jsfiddle.net/krasimir/aMXkg/11/

    .header{
      width: 30%;
      height: 200px;
      margin: auto;
      position: relative;
    }
    
      .logo{
        background-color: #FF0000;
        width: 100%;
        height: 100%;
        display: block;
        margin: auto;
      }
    

    【讨论】:

    • 有道理,但是当我添加 height: 20%;到标题,它仍然不起作用。它只接受 px 值? ://
    • 20% 的标头意味着您的标头将占用其父容器的 20%,该父容器可能也没有设置高度。这就是 px 工作的原因。所以,我建议向上检查整个 DOM 树,看看到底发生了什么。如果您到达具有 height: 100% 的身体,那么这样工作是正常的。考虑使用 min-height 属性。
    • 刚刚想通了,谢谢!为我的所有父元素添加 100% 的高度和宽度就可以了。
    • 百分比高度使用起来有点尴尬,它们只有在父容器定义了高度值时才有效。
    • 其实是有道理的。一旦你有了这个想法,一切都会到位。
    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 2012-03-05
    • 2016-07-13
    • 2015-12-12
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    相关资源
    最近更新 更多