【问题标题】:Detect screen width with CSS Media Queries使用 CSS 媒体查询检测屏幕宽度
【发布时间】:2019-11-21 08:36:41
【问题描述】:

我猜是因为您可以使用媒体查询来做到这一点:

@media (min-width:500px) { … }

在某些时候,CSS 样式表必须知道屏幕的宽度,没有 Javascript。

是这样吗?

【问题讨论】:

标签: css media-queries


【解决方案1】:

您可以使用device-width 来测试屏幕的宽度(以像素为单位)。然而,这并不完全推荐。请改用max-widthmin-width(用于视口)。


如果您尝试获取屏幕宽度并使用它(例如 content: (device-width); 之类的,那是不可能的。坚持使用 JavaScript。

Manual Reference

【讨论】:

    【解决方案2】:

    当客户端浏览器的视口改变大小时,浏览器将重新绘制可见区域。届时,浏览器将检查是否存在与新视口相关的媒体查询样式。

    CSS 并不真正知道浏览器视口的宽度,但浏览器知道什么 CSS 适用于特定视口。

    【讨论】:

    • 啊,感谢您的详细回答,所以只能使用 CSS 来获取屏幕大小的解决方案是不行的?
    • 媒体查询的好处是您可以对视口的特定属性做出反应,因此虽然您无法确定其确切大小,但您可以通过预测和考虑视口的大小来调整内容的表示在某些预期范围内。
    • 您可能会发现alistapart.com/articles/responsive-web-design 是一本内容丰富的读物。
    • 这不是真的。你有device-width
    • 或者我误解了答案?现在我很困惑:X
    【解决方案3】:

    嗯……

    @media(width:1024px){
      p#id:after{
        content:"1024px";
      }
    }
    

    如果视口的宽度为 1024 像素,则会在指定的

    元素之后显示文本“1024px”。您可以(假设地)放置数千个这样的 CSS 块来显示视口的宽度,以获取其宽度的任何合理值。 (请注意,文本在某些浏览器中是不可选的。)

    你知道的越多……(请不要真的这样做)

    【讨论】:

      【解决方案4】:

      在html中->

      <meta name="viewport" content="width=device-width">

      在 CSS 中 ->

      @viewport {
        width: device-width;
        }

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-06
        • 1970-01-01
        • 1970-01-01
        • 2023-01-26
        • 2017-04-06
        • 1970-01-01
        • 2013-01-06
        • 2012-11-30
        相关资源
        最近更新 更多