Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以从Javascript返回CSS媒体查询声明?_Javascript_Jquery_Css - Fatal编程技术网

是否可以从Javascript返回CSS媒体查询声明?

是否可以从Javascript返回CSS媒体查询声明?,javascript,jquery,css,Javascript,Jquery,Css,我有一个DIV,根据视口大小调整CSS中的字体大小: font-size:1em; @media only screen and (min-width: 300px) { font-size:2em; } @media only screen and (min-width: 600px) { font-size:3em; } 但是,我还有Javascript,它可以根据用户是否向下滚动来更改字体大小 $(window).scroll(function () { if

我有一个DIV,根据视口大小调整CSS中的字体大小:

font-size:1em;
@media only screen and (min-width: 300px) {
    font-size:2em; 
}
@media only screen and (min-width: 600px) {
    font-size:3em; 
}
但是,我还有Javascript,它可以根据用户是否向下滚动来更改字体大小

$(window).scroll(function () {
    if ($(this).scrollTop() > 1) {
        $('#div').css('font-size', '1em');       
    }
    else {
        $('#div').css('font-size', '3em');
    }
});
问题是,在用户至少向下和向上滚动一次后,Javascript将
字体大小设置为
3em
,并且
@media
声明不再适用


是否可以使Javascript
else
子句中的样式恢复到CSS和
@media
条件中声明的样式?

应用于
#div
的样式覆盖
@media
声明,因此必须删除应用的样式。使用空样式(即
$('#div').css('font-size','')
)删除css属性。

如我所述,而不是使用
.css()
为元素定义内联样式的属性具有最高优先级,因此您可以使用jQuery重新重置它,jQuery是脏的,或者如果在
if
else
中有多个属性要重置/更改,则可能会变脏


因此,您应该使用
.css()
.addClass()
.removeClass()
方法,而不是使用
.css()
方法,这样可以很好地完成所需的功能。

您可以将字体大小设置为“无”,而不是使用javascript将其设置回正常大小。这样就可以应用css中定义的样式

$(window).scroll(function () {
    if ($(this).scrollTop() > 1) {
        $('#div').css('font-size', '1em');       
    }
    else {
        $('#div').css('font-size', '');
    }
});

使用
.addClass()
.removeClass()
方法,而不是使用
.css()
方法,该方法应用具有最高优先级的内联样式。@Mr.Alien我认为您应该回答这个问题。我认为这是最好的建议。@Danield很酷,谢谢,我会做必要的投票,因为这是非常有用的信息,在某些情况下,这绝对是最好的选择。然而,在我的例子中,我有一些通过id应用样式的div,并且指定的样式类不会超过它们。因此,特别是在这个例子中,我标记为正确的另一个答案让我的生活变得简单了一些。虽然有两个答案的信息相同,但我给这个答案打了一个检查,只是为了有更完整的代码。