gpt4 book ai didi

javascript - 如何使媒体查询覆盖在代码中动态设置的值?

转载 作者:行者123 更新时间:2023-11-28 01:42:10 25 4
gpt4 key购买 nike

我有一个 div,它有一个基本宽度值,设置在一个 css 文件中。在那个文件中,我也有一个新的基本宽度的媒体查询,当方向改变为纵向时。在我的 javaScript 中,我有一个函数在文档准备好时动态更新宽度。

发生的事情是,当调用媒体查询时,更新的宽度 - 是由 js 动态设置的宽度,它会自动覆盖新的媒体查询 css 宽度。换句话说,一旦我在代码中动态设置了宽度——媒体查询将不再生效。

我怎样才能让媒体查询的CSS宽度覆盖当前宽度(这是由js动态设置的?)

谢谢!


HTML + JS:

<html>
<head>
<script>
var defaultNumOfItem = 3;

$(document).ready(function()
{
updateWidth(4);
});

function updateWidth(currentNumOfItems) {
var basicWidthText = $('#list').css('width');
var basicWidth = parseFloat(basicWidthText .slice(0, basicWidthText .indexOf('px')));
$('#list').css('width', basicWidth * currentNumOfItems/ defaultNumOfItem);
}

$(window).bind('orientationchange, function(){
updateWidth(4);
});
</script>
</head>

<body>
<div id='list'>
</div>
</body>
</html>

CSS:

#list {
width: 900px;
}

@media only screen and (orientation: portrait){

#list {
width: 600px;
}

}

P.S !important 的使用对我不起作用,因为如果我将它放在 css 中 - js 将不起作用。如果我把它放在 js 中——媒体查询不起作用——把它放在 js 和 css 中也会发生同样的事情

最佳答案

这可能不用 JavaScript 就可以实现,尽管代码的全部意图并不完全清楚,所以这是在保持当前功能的同时做到这一点的方法。

@media only screen  and (orientation: portrait) {

#list {
max-width: 600px;
}

}

max-width CSS 属性胜过 width,即使 width 是内联定义的、外部定义的,或者是 !importantmin-width属性在不同情况下也是如此。

关于javascript - 如何使媒体查询覆盖在代码中动态设置的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25288663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com