【问题标题】:How to avoid CSS conflict using jquery?如何使用 jquery 避免 CSS 冲突?
【发布时间】:2013-10-28 18:01:21
【问题描述】:

我遇到了 CSS 冲突问题。 以下是详细信息:

我有一个搜索结果页面,其中产品以网格格式显示。网格搜索结果的 CSS 是“product-grid.css”,它包含在页面的标题中。在此页面上,我有一个按钮,单击该按钮以列表格式显示搜索结果。列表格式的 css 是“product-list.css”,它也包含在页面的 head 标记中。

现在 HTML 专家已经让 product-grid.css 和 product-list.css 中的类名称相同。

我想要的是,当我以网格样式查看页面时,只有 product-grid.css 应该应用于页面的相应部分。当我以列表格式查看页面时,应该禁用 product-grid.css 并且 product-list.css 应该应用于整个页面。

我曾尝试使用 jquery 启用和禁用 css 文件,但可能是我做错了什么。此外,当页面加载时,两个 css 文件都在 head 标记中处于活动状态,并且由于类名称冲突,即使没有切换到其他视图,页面也会出现格式错误。

任何帮助我该怎么办?

【问题讨论】:

  • 能否请您添加用于切换样式的代码?
  • 您可能使用 PHP 或其他工具来加载您的内容。为什么不使用它来根据 URL 来管理应该加载哪个样式表……或者更好的是,重命名类,这样就不会存在重复了!
  • 考虑改写你的问题标题
  • 是什么决定了您应该在网格还是列表中查看它?难道你不能只使用 CSS 媒体查询来切换你的样式吗?

标签: jquery html css


【解决方案1】:

这是我的解决方案:

HTML 人 应该更改类名。目前的方法是不可接受的

workaroundsabracadabras 加载 CSS 文件只是因为有些人懒得分开页面的重要部分简直是 愚蠢 ,恕我直言。

【讨论】:

    【解决方案2】:

    创建一个变量来决定页面以网格样式或列表样式查看的条件。根据该变量使用下面的代码。

    根据您的情况,您需要验证页面是否以网格样式查看,然后添加网格 像CSS一样

    $('head').append('<link rel="stylesheet" type="text/css" href="product-grid.css.css">');
    

    否则

    $('head').append('<link rel="stylesheet" type="text/css" href="product-list.css">');
    

    参考:Can I load external stylesheets on request?

    【讨论】:

    • 整个页面不是这样的。单击时,仅通过 ajax 调用更改部分页面。
    猜你喜欢
    • 2019-08-11
    • 2014-02-26
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多