CSS引入方式有哪些,区别是什么

淺唱寂寞╮ 提交于 2020-02-22 23:45:09

学习CSS肯定绕不开的就是如何将css引入到HTML文件中,引入方式主要有三种:

内联样式、内部样式、外部样式

1、内联样式

内联样式又称行内样式,使用该样式需要直接在标签内添加“ style=" " ”,再将需要的样式写在双引号内,如

<div style="background: red;">hello world!</div>

行内样式比较适合初学者学习的时候使用,在网站开发时尽量不要去用,因为使用这种样式会把结构和CSS全部融合在一个页面里面,造成代码冗余,后期调整样式的时候非常不方便。

2、内部样式

内部样式是一种适合案例或者比较小的页面的引入方式,它的语法是在在head标签里添加style标签,再在style标签的内容区添加需要的样式,如:

<head>
<style type="text/css">
    div{background: red;}
</style>
</head>

内部样式比较适合案例或者比较小的页面中,因为它也会增加HTML文件的代码量。

3、外部样式

外部样式是使用最广的引入方式,适合比较大的页面或者整站开发。引入方法是将样式写css文件中,再将css文件链接到HTML文件里。
而外部样式有两种链接方法引入HTML文件中:linkimport
1)用link链接需要在html文件内添加link标签,在该标签内属性“ href=" " ”的双引号里写上css文件的路径即可。

<link rel="stylesheet" type="text/css" href="demo.css"/>

2)用import链接需要用内部样式的方法添加“ @import url(""); ”属性,在url("")中写上css文件的路径。

<style>
    @import url("demo.css");
</style>

同为外部样式的链接方式,link和import之间的不同不仅是载入链接的语法不同:

  • 本质上link是HTML标签,是HTML的写法,但是import是CSS的提供的一种链接方式。所以link能够引入除css以外的其它文件,而import只能引入css文件。

  • link是没有兼容问题的,但是import在IE5以下不支持。

  • 加载顺序上也不一样,link是HTML结构和CSS样式同时加载,而import是先加载HTML后加载CSS。有时候网速比较慢,你就会看到只有文字和边框的难看页面,然后才看到比较好看的页面,就是因为这个网页使用import链接的样式。

  • 在用js控制dom修改样式的时候,link可以被修改,但是import不可以。

最后我们再来比较下对同一个元素同时进行多种样式的引入操作,浏览器是怎么解析的

(蓝色的是内联样式,红色的是内部样式,黄色的是外部样式)
由下图中可知,当三种引入方式都添加了之后,页面中的div显示的是内联样式,这是因为CSS的层叠性中的权重规则:权重高的样式会覆盖权重低的样式。而内联样式表的权重是最高的1000,自然显示的是它的样式。
同时引入内联样式、内部样式和外部样式

当我们删除内联样式后,刷新页面浏览器显示的是内部样式,看到这你可能认为是因为内部样式的权重比外部样式大,但我要告诉你不是这个原因,内部样式和外部样式并没有权重比较。
内部样式在外部样式后外部样式在内部样式后

你看,当我们把外部样式的链接标签link放到内部样式后面时,再刷新页面,浏览器显示的又是外部样式了。

造成这种情况是因为CSS层叠性的另一个特点——覆盖,即当权重相同的时候,后面的样式会覆盖前面的样式。当外部样式在内部样式后引入,自然就将内部样式给覆盖了。

如果我们用import链接外部样式呢?
同一style标签中@import放内部样式后同一style标签中@import放内部样式前

由上图可见,当内部样式和外部样式冲突时,不论我们将@import属性放在style标签内的什么地方,外部样式都无法被解析。
如果想要显示外部样式,我们可以在后面新建一个style标签,并把@import属性丢进去,这样根据覆盖特点它就会被解析。
在后面新建一个style标签放入@import

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!