Angular中使用bootstrap样式
Angular中引入bootstrap的方法
方法1:在Angular.json
中的styles
数组中添加bootstrap
路径
如下所示:
"styles": [
"src/styles.css",
"./node_modules/bootstrap/dist/css/bootstrap.min.css"
]
这里需要注意路径问题,不同Angular版本下,Angular.json的位置可能有所不同,因此对应的路径也有可能需要作出修改。
方法2:通过在styles.css
中使用@import
进行引入。
由于styles.css
是整个项目的全局样式,因此可以在这里通过@import直接引入,也能够全局生效,这里同样需要注意路径问题。
路径中不需要带node_modules
@import url('bootstrap/dist/css/bootstrap.min.css')
Angular中引入bootstrap不生效的解决办法
在进行Angular开发时,使用了bootstrap样式。发现bootstrap的样式无法生效。引用方式如下:
在Angular.json
中修改styles
数组,
"styles": [
"src/styles.css",
"./node_modules/bootstrap/dist/css/bootstrap.min.css"
]
仔细检查路径后发现没有问题,但是样式总是无法生效。查看控制台发现元素没有bootstrap的样式。说明bootstrap没有生效。然后在node_module中查找发现存在两个跟bootstrap相关的文件,其中一个是我们引用的bootstrap,另外一个是带下划线和@版本的bootstrap。
_bootstrap@4.3.1@bootstrap/dist/css/bootstrap.min.css
这个文件里面具有各种css样式设置。因此,我们尝试了将这个文件进行了引入。
"styles": [
"src/styles.css",
"./node_modules/_bootstrap@4.3.1@bootstrap/dist/css/bootstrap.min.css"
]
最后发现bootstrap样式果然生效了。通过在网上查找发现:原来使用淘宝的cnpm进行模块安装时,最终带下划线带@符号的才是模块文件,其他的文件夹只是模块文件的快捷方式。所以我们如果要引用第三方模块,必须引入带下划线的模块,而不能使用快捷方式。