2009-10-28 152 views
0

我正在为Joomla网站开发一个组件。这个网站有一个复杂的模板花哨的CSS和脚本(即一些K2组件被命名)在这个组件我使用colorbox来显示模态图片库,但会发生什么是冲突的CSS和Javascript

只要这个组件被称为CSS属性和函数javascript模板失败导致一些weared页面显示。 由于我没有写这些CSS和JavaScript,所以我很难避免CSS和脚本之间的冲突。

那么,什么是我的问题是

有没有什么办法来防止不潜水这些脚本之间的冲突多到实际的脚本。

请指导我完成此操作。

Thanx预先

回答

0

K2是Joomla的内容组件。框架插件或附加组件彼此发生冲突并不罕见。不幸的是,您可能需要搜索Joomla或K2论坛寻求答案。或者,您可以尝试一个接一个地禁用其他插件,直到冲突消失(希望)。

+0

我只是问有没有什么办法可以避免使用Javascript或其他方法的css和脚本之间的冲突 – 2009-10-28 08:20:22

+0

没有触及代码,你可能能够找出冲突或重叠的CSS(例如使用Firebug)。对于冲突的JavaScript,您需要一定的脚本语言知识水平,然后您可以执行调试跟踪(例如使用Firebug)。 – 2009-10-28 08:35:42

0

JavaScript中的一个主要冲突是MooTools(一些Joomla函数需要)和其他JavaScript库之间。最常见的是通常用作DOM选择器的$全局变量。

在MooTools中,它仅通过ID进行选择,而在JQuery等其他库中,它使用CSS选择器。

所以,如果你有一个Joomla扩展,加载另一个JavaScript库像JQuery,你会遇到问题。对于JQuery,有一个特定的解决方案。 http://docs.jquery.com/Using_jQuery_with_Other_Libraries

然而,对于其他库,您需要深入研究JS,或者使用提供相同功能但使用MooTools的扩展。

至于CSS,解决这个问题的唯一方法就是编辑CSS文件。良好的扩展应该为他们的CSS使用某种名称空间。例如,使用组件名称前缀所有CSS类。或者将所有HTML包装在以组件或模块名称命名的包装元素中。

如果这不存在,您必须自己添加它。

也许最简单的是编辑HTML扩展,并添加:

<div id="extension-name"> 
    <!-- extension HTML here --> 
</div> 

各地扩展。

然后编辑扩展CSS和CSS选择前加

#extension-name 

例如,如果您有:

.left-column { 
    float: left; 
} 

将其更改为:

#extension-name .left-column { 
    float: left; 
} 

你甚至可以用正则表达式搜索这个过程自动化和替换。