如何管理冲突的第三方 CSS
How to manage clashing third party CSS
我正在开发一个 Web 应用程序,它使用 Materialize 作为前端框架,并使用 Kendo UI 作为网格组件。
如果 Kendo UI 和 Materialize 都具有相同元素的样式,我会遇到问题 - 例如,它们都覆盖了复选框的样式 - 这会导致布局损坏由于冲突。
我意识到的一个选择是选择 Materialize 或 Kendo UI 并放弃另一个...但是我想尽可能避免这种情况,因为它们在大多数情况下都相互补充其他弱点很好。
如果它只是一个元素在这里或那里放置特定的覆盖将是一个选项,但是对于两个框架的规模,这将是一个维护噩梦,因为当一个改变覆盖时可能必须重构。
有什么方法可以解决我所缺少的这个问题吗?
我知道通常建议不要重复代码,并且您想尝试避免覆盖,但是是否可以找到您喜欢的 css 部分(即 select 框从 materialize) 并将其复制到新的自定义 css 文件中,重命名 select 或者这样你就可以从 Materialize/Kendo UI?
中单独使用它
您可以手动编辑八方的样式表。采用非缩小 CSS,并在每个基本路径前加上一个短前缀:
.card {
....
}
变成
.mat.card {
....
}
这样,对于每个具体化样式,您都在使用 .mat
之前使用。或者,如果你主要使用 materialize,对 Kendo UI.
做同样的事情
这很痛苦,但可以解决您的问题。
解决此类冲突的一种方法是构建您的 MaterializeCSS 以仅包含项目所需的部分。
例如,如果您不需要 MaterializeCSS 的按钮样式,您可以简单地通过 sass,从文件中编译 materialize.scss
和 cherry pick 按钮。
如果继续构建自定义 .css 的 Materialise 对您来说是一个很长的缩写,您可以尝试使用 materialize.khophi.co(免责声明:我构建了它)。
了解有关如何自定义 MaterializeCSS 的更多信息:http://materializecss.com/getting-started.html
我正在开发一个 Web 应用程序,它使用 Materialize 作为前端框架,并使用 Kendo UI 作为网格组件。
如果 Kendo UI 和 Materialize 都具有相同元素的样式,我会遇到问题 - 例如,它们都覆盖了复选框的样式 - 这会导致布局损坏由于冲突。
我意识到的一个选择是选择 Materialize 或 Kendo UI 并放弃另一个...但是我想尽可能避免这种情况,因为它们在大多数情况下都相互补充其他弱点很好。
如果它只是一个元素在这里或那里放置特定的覆盖将是一个选项,但是对于两个框架的规模,这将是一个维护噩梦,因为当一个改变覆盖时可能必须重构。
有什么方法可以解决我所缺少的这个问题吗?
我知道通常建议不要重复代码,并且您想尝试避免覆盖,但是是否可以找到您喜欢的 css 部分(即 select 框从 materialize) 并将其复制到新的自定义 css 文件中,重命名 select 或者这样你就可以从 Materialize/Kendo UI?
中单独使用它您可以手动编辑八方的样式表。采用非缩小 CSS,并在每个基本路径前加上一个短前缀:
.card {
....
}
变成
.mat.card {
....
}
这样,对于每个具体化样式,您都在使用 .mat
之前使用。或者,如果你主要使用 materialize,对 Kendo UI.
这很痛苦,但可以解决您的问题。
解决此类冲突的一种方法是构建您的 MaterializeCSS 以仅包含项目所需的部分。
例如,如果您不需要 MaterializeCSS 的按钮样式,您可以简单地通过 sass,从文件中编译 materialize.scss
和 cherry pick 按钮。
如果继续构建自定义 .css 的 Materialise 对您来说是一个很长的缩写,您可以尝试使用 materialize.khophi.co(免责声明:我构建了它)。
了解有关如何自定义 MaterializeCSS 的更多信息:http://materializecss.com/getting-started.html