html - 比率的媒体查询未触发

标签 html css

我正在尝试测试一些 Ratio 媒体查询:

例如:

@media screen and (min-aspect-ratio: 8/5) { ... }

查看完整代码:

<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8">

  <title></title>

  <style type="text/css">

    .mq {
    border: 2px solid;
    padding: 20px; 
    width: 300px;
    resize: both;
    overflow: auto;
}

@media screen and (min-aspect-ratio: 8/5) {

    .mq {
        background-color: red;
    }

}

  </style>

</head>

<body>

<div class="mq">
    Some text here. This DIV can be resized.
</div>

</body>
</html>

上面代码的问题在于它应该只在比率为 18/5 时才变红,但它始终是红色。

这段代码有什么问题?

最佳答案

你的代码很好,CSS 说你需要至少 8/5 的比例,如果你拖动屏幕大小,当你的窗口比宽度高得多时,你应该看到它发生变化。

如果您想对 div 而不是窗口产生这种效果,那么您需要使用 javascript 而不是媒体查询来处理它。

var $div = $('.mq');
$div.change(function() {
    if ($div.width() / $div.height() < 1.6) {
        $div.css('background-color', 'white')
    } else {
        $div.css('background-color', 'red')
    }
});

关于html - 比率的媒体查询未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46163414/

相关文章:

html - 随着内部 Div 的扩展,使 HTML 列变宽

javascript - 非常基本的滚动条没有按预期运行的问题

javascript - 是否可以使用 Javascript 从网络文件系统读取文件?

javascript - 使用 url 参数填充 div,但前提是在使用 settimeout 后另一个 span 为空

html - 第二个 <table> 的布局与第一个 <table> 不一样

asp.net - 在 asp.net 中使用内联 css 是不好的做法吗?

css - 如何使用 WebOptimization 和 Bundling 将 CSS 添加到 ASP.NET 站点

html - 如果我们不考虑任何版本的 IE (Internet explorer),我们是否需要重置 CSS?

PHP 表 : I'm trying to create new row for every mysql table rows in my website

jQuery 删除除 anchor 之外的所有 HTML 标签