首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS中的Jquery和@media

问CSS中的Jquery和@media
EN

Stack Overflow用户
提问于 2018-10-25 20:29:26
回答 2查看 190关注 0票数 0

嗨,这儿!

我有一个有角度的项目,在这里我使用HTML、CSS和Jquery。我有一个段落设置为"display: none",我希望它只在用户单击“按钮”标签时才出现。问题是,CSS在@media注释中。我不能把它放在段落标签里,比如"style=@media all And .“因为HTML文件不使用注释进行编译。它必须在一个特定的CSS文档中。由于这一点,我不能使用Jquery覆盖段落标记的显示。

情况是这样的:

HTML:

代码语言:javascript
复制
<p id="two">
    The history of ...</p>

CSS:

代码语言:javascript
复制
@media all and (max-width: 580px) {

   p#two
   {
       display: none;
   }

}

Jquery:

代码语言:javascript
复制
$(document).ready(function(){
    $("p#one button").click(function(){
      $("p#two").attr("style", "display: normal")
    });
});

我还尝试了Jquery,例如:

代码语言:javascript
复制
    $("p#one button").click(function(){
      $("p#two").css({"display" : "normal"});
    });

或

代码语言:javascript
复制
$("p#one button").click(function(){
      $("p#two").css({
        display : 'normal'});
    });

但似乎没有什么东西可以覆盖“显示:没有”。我能做些什么来解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-25 20:41:42

就我个人而言,我不喜欢将css属性与javascript混为一谈,除非它是真正必要的。

您可以为p#two添加一个覆盖display: none属性的类,并在单击时切换该类on。

代码语言:javascript
复制
@media all and (max-width: 580px) {
   p#two { display: none; }
   p#two.show { display: initial; } // "normal" is not a valid value for display
}

然后,在单击事件处理程序上添加类:

代码语言:javascript
复制
document.getElementById('two').classList.add('show')

请注意,normal不是display的一个有效选项,而且jquery和and都可以使用自己的方法(如ng-if指令的$('#p').show() )处理显示元素。

票数 2
EN

Stack Overflow用户

发布于 2018-10-25 20:53:55

您可以使用简单的方法来解决这个问题:

代码语言:javascript
复制
@media all and (max-width: 580px) {

    p.hidden-class {
       display: none;
    }

    p.visible-class {
        display: block;
    }
}

并使用ngClass切换您的类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52997624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档