【问题标题】:Removing a class in a CSS stylesheet删除 CSS 样式表中的类
【发布时间】:2016-02-24 23:53:47
【问题描述】:

我正在尝试使我的网站可移动访问。我遇到的问题是nav。我相信这与nav 上使用的类有关。所以我想做的是在使用移动设备时删除该类。

我在媒体查询中使用了它,并更改了许多内容以使其在移动设备上看起来正确。我读到可以使用

删除一个类
$( "p" ).removeClass( "myClass yourClass" );

我相信我会是

$( "nav" ).removeClass( "navigation" );

但是当放入样式表并通过 css 验证器时,我得到了

Lexical error at line 104, column 4.
Encountered: "(" (40), after : "$" ( "nav" ).removeClass( "navigation" );

我不知道如何解决这个问题,或者即使我可以解决这个问题。我读过的其他页面说这是不可能的,所以我得到了相互矛盾的信息。

这是我试图发布代码。 我的 CSS 中的所有内容都会影响我的导航。

nav ul { list-style-type: none;
    margin: 0; 
    padding: 0; }
header nav a { text-decoration: none;
    padding: 10px;
    display: block;
    background-color: #a8e6a8;
    border-bottom: 1px solid #228B22; }
nav a:link { color: #228B22; } 
nav a:visited { color: #568b22; } 
nav a:hover { color: #869DC7; 
    background-color: #EAEAEA; }
.navigation { float: right;
    width: 200px;
    font-weight: bold;
    letter-spacing: 0.1em; }

这是我未完成的媒体查询。

@media only screen and (max-width: 1024px) {
  body { margin: 0; padding: 0; background-color: #fff; }
  #wrapper { width: auto; min-width: 0; margin: 0; }
  h1 { margin: 0; text-align: center; font-size: 2em; line-height: 200%; }
  nav { float: none; width: auto; }
  nav li { display: inline-block; }
  nav a { padding: 1em; border-style: none; font-size: 1.2em; }
  nav ul { text-align: center; padding: 0; margin: 0; }
  main { margin: 0; padding: 0 1em; font-size: 90%; }
  dd { margin-bottom: 1em; }
  footer { margin: 0; }
  .navigation { float: none;
    width: auto;
    letter-spacing: 0.1em; };
}

【问题讨论】:

  • 欢迎来到 stackoverflow,Scotty! "How to ask?"What topics can I ask about here?" 应该为您提供有关如何使其“视觉上令人愉悦”的所有信息。
  • 对于反对者来说,这个问题似乎描述得很好,只是被缺乏格式知识的新提问者隐藏了。
  • 我不知道那次否决票是怎么发生的,但我修好了。

标签: css html class media-queries stylesheet


【解决方案1】:

欢迎加入!请尽量让您的问题更简洁:-)

我的回答: 您发布的代码是 JavaScript。 jQuery,确切地说。这在 CSS 中肯定行不通。

但更好的解决方案是使用媒体查询不是删除一个类,而是改变它。示例:

.foo { width:200px; }
@media print
{
  .foo { width:100px; }
}

将 CSS 添加到问题后进行编辑:

结尾的; 对我来说似乎是一个语法错误:将letter-spacing: 0.1em; }; 更改为letter-spacing: 0.1em; }

除了媒体查询在原则上看起来不错。尝试添加background:red 看看它是否有效:-)

【讨论】:

  • 非常感谢 Thomas,但是由于我仍然无法让它工作,如果我尝试通过将代码添加到我的问题中来向您展示我的代码可以吗? (我不知道为什么会发生这样的投票,抱歉。)
【解决方案2】:

$("nav").removeClass("navigation"); 是 JavaScript,而不是 CSS。从概念上讲,您不能在 CSS 中添加/删除类 - 它只是一种样式描述语言

然而,您可以在 CSS 中为特定设备宽度显示/隐藏内容(“断点”):

.navigation {
  display: block;
  /* your style definitions for nav */
}

@media only screen and (max-device-width: 800px) {
  .navigation {
    display: none;
  }
}

【讨论】:

    【解决方案3】:

    实际上,您可以使用jQuery 添加一个类,但我认为这不是实现您需要的最佳方式。

    我见过很多设计师做的是有两个导航。一个用于大屏幕,另一个用于小屏幕。它非常方便,因为您也可以使用不同的 html 代码。例如,您可以将 FontAwesome 图标添加到您的移动导航中,添加或删除链接等。因此,您的 html 将如下所示:

    <nav class="nav-big">
      <ul>
        <li><a href="path">Link 1</a></li>
        <li><a href="path">Link 2</a></li>
        ...
      </ul>
    </nav>
    
    <nav class="nav-small">
      <ul>
        <li><i class="fa fa-plus"></i><a href="path">Link 1</a></li>
        <li><i class="fa fa-minus"></i><a href="path">Link 2</a></li>
        ...
      </ul>
    </nav>
    

    然后,您的 CSS 将如下所示:

    .nav-big {
    ...your styles 
    }
    
    .nav-small {
      ...your styles
    }
    
    @media screen and (min-width: 1024px) {
        .nav-small {
          display: none;
        }
    }
    
    @media screen and (max-width: 1023px) {
        .nav-big {
            display: none;
        }
    }
    

    您可以在我的 Blog 和我开发的另一个 website 中看到类似的东西。

    希望有所帮助。如果我这样做了,请将答案标记为有用或正确!谢谢!

    【讨论】:

    • Virtua,我对多个导航的想法很感兴趣,但我不知道如何实现它。我是编码新手,如果我自己这么说的话,我也不太擅长。这个网站是我正在上课的最后一个项目,将于下周星期一 11 月 30 日到期。您认为我有时间找出多个导航并将其实施到我的网站吗?无论如何,非常感谢你,斯科蒂科尔曼
    • 嘿@Scotty,我也不是专家......哈哈......我只是分享我所获得的知识。是的,您当然可以及时设置多个导航。它就像看起来一样简单! ;) 实际上,您只需要两个。也许您可以使用 736px / 737px 而不是使用 1023px / 1024px 的值; iPhone 6+ 的屏幕为 736 像素(纵向),因此您可能找不到更大的纵向屏幕。如果您需要更具体的帮助,请随时通过website 与我联系。
    • 看,this guy here 深入探讨了这个主题。有点复杂,但可以遵循。如果你想要更简单的东西,你可以使用Refillsdisplay: none; 我已经告诉过你的技术。这是我从头开始构建this website 的方式,带有SassBourbon 和Refills。
    • 我将通过您的网站与您联系。也就是说,如果我能通过葡萄牙语找到路哈哈。
    • 哈哈哈......我相信你会没事的,它很直观!干杯! :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多