我有多个页面,我想为每个页面加载不同的CSS文件。
这样的事情:
status.html
- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
CGFloat height = [[aWebView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue];
CGFloat width = [[aWebView stringByEvaluatingJavaScriptFromString:@"document.width"] floatValue];
CGRect frame = aWebView.frame;
frame.size.height = height;
frame.size.width = width;
aWebView.frame = frame;
}
cms.html
<template>
<require from="./css/modules/status.css"></require>
</template>
但这不能正常运作。在状态页面加载时我只有status.css文件,但如果我打开cms页面,我将获得status.css,它将加载cms.css。
答案 0 :(得分:2)
这是Aurelia延迟加载资源的方式。无论何时加载视图,它所需的css文件都会加载到页面中,即使您转到另一个视图,它们也会保留在那里。
您正在寻找的是ShadowDOM中存在的一项功能,但目前唯一支持Chrome AFAIK的浏览器。
另一个选项是作用域css,但看起来已停止: http://caniuse.com/#feat=style-scoped
您可能会对此问题感兴趣: https://github.com/aurelia/framework/issues/234
为了完整起见,实际上这是一种古老的学校方式: https://css-tricks.com/saving-the-day-with-scoped-css/