答案 0 :(得分:6)
据我了解,您使用的是Angular Material Design,它负责在?sp.vcov
部分添加style
代码。这一切都发生在幕后,您可以关注this link了解更多信息。我认为你不必担心删除这个样式标签,因为它来自功能。 Angular Material Design动态注入此head
标记以用于主题目的。
参考:https://material.angularjs.org/latest/Theming/05_under_the_hood
谢谢。
修改强>
如果您不想默认生成主题,则可以使用
style
实施例:
$mdThemingProvider.generateThemesOnDemand(true);
参考:https://material.angularjs.org/latest/Theming/04_multiple_themes
答案 1 :(得分:3)
如果要删除所有样式标记:
var st = document.getElementsByTagName('style');
并添加一个循环以删除所有这些。
for(i = 0 ; i < st.length ; i++){
st[i].parentNode.removeChild(st[i]);
}
答案 2 :(得分:2)
请尝试使用以下JQuery代码
$('style[md-theme-style]').remove();
答案 3 :(得分:0)
原因:
Angular-material包含一些默认的theme
css作为常量变量。
您可以查看here(angular-material.js)。
当我们在浏览器中加载此库时,它会动态地将大量style tags
动态添加到页面的<HEAD>
部分。
如何停用?
您可以覆盖constans
。这将导致不在组件上添加主题类。
angular(myApp, [ ngMaterial, myAppModules ]).constant("$MD_THEME_CSS","");
您还可以查看angular-material.js。这个解决方案也在图书馆本身提出。
答案 4 :(得分:0)
您是否尝试过禁用主题生成,然后启用所需的主题?
angular.module('myApp', ['ngMaterial'])
.config(function($mdThemingProvider) {
//disable theme generation
$mdThemingProvider.generateThemesOnDemand(true);
//themes are still defined in config, but the css is not generated
$mdThemingProvider.theme('altTheme')
.primaryPalette( '紫色') .accentPalette( '绿');
//生成名为altTheme的预定义主题 $ mdTheming.generateTheme( 'altTheme'); });
答案 5 :(得分:0)
当material.js加载到浏览器中时,会向页面文档动态添加大量css样式标记。要禁用它们,您需要使用以下命令自行重新编译角度材料:
git clone https://github.com/angular/material.git
然后安装依赖项:
cd material
npm install
然后转到gulp / util.js并从以下位置更改第53行:
var jsProcess = series(jsBuildStream, themeBuildStream() )
是:
var jsProcess = series(jsBuildStream)
然后运行构建过程:
gulp build