Aurelia - 每页加载一个CSS文件/ Scoped CSS

时间:2016-09-27 10:58:22

标签: css aurelia

我有多个页面,我想为每个页面加载不同的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。

1 个答案:

答案 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/