css 样式引入的方法 link 与import的区别

<link> 元素所参考的样式用户能够自由的选择加以改变,而导入的样式表单就自动的与剩下的样式表融合在一块儿了javascript

CSS与HTML文档结合的4中方法
1 使用<link>元素连接到外部的样式文件
2 在<head>元素中使用"style"元素来指定
3 使用CSS "@import"标记来导入样式表单
4 在<body>内部的元素中使用"style"属性来定义样式css

1 用link进行引用html

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

2 用import进行引用浏览器

<style type="text/css">
        @import url(my.css);
</style>dom

第一种是直接在html页面上进行css书写,而第二种和第三种是采用外部引用样式单独提取文件。url

link和@import有什么区别?spa

link元素
HTML和XHTML都有一个结构,它使网页做者能够增长于HTML文档相关的额外信息。这些额外资源能够是样式化信息(CSS)、导航助手、属于另 外形式的信息(RSS)、联系信息等等。
@import
指定导入的外部样式表及目标设备类型。
其实link和@import的最根本区别就是,link 是一个html 的一个标签 ,而@import 是css 的一个标签 ,
link除了调用css外还能够有其余做用譬如声明页面连接属性,声明目录,rss等等,而@import就只能
调用csshtm

问题2.link合import到底那个更好?
上面说了由于上面的老大不同,因此在使用上就会有一些细节的区别,不能说整体谁好谁坏,只能说具体状况具体分析。

1)我要用javascript进行样式选择;
这个时候就要用link,由于link是html元素,可用javascript去控制dom元素最后达到改变样式的效果。
看下列代码对象

<link rel="stylesheet" href="/css/styles.css" type="text/css" media="screen" />
<link rel="stylesheet" href="/css/orange.css" type="text/css" media="screen" title="orange" />
<link rel="alternate stylesheet" href="/css/blue.css" type="text/css" media="screen" title="blue" />
<link rel="alternate stylesheet" href="/css/pink.css" type="text/css" media="screen" title="pink" />
<link rel="alternate stylesheet" href="/css/slate.css" type="text/css" media="screen" title="slate" />
这是一段很经典的改变页面风格的代码,由于咱们今天主要讲的是link和import,因此我这里只列出了引用css部分。
咱们先来看看link里面个个属性都是表达了什么意思:
[1]rel:用来声明连接对象的做用或者类型。
譬如上面的的代码:"stylesheet"表示连接一个默认的css,而"alternate stylesheet"折表示备选的css
[2]href:这个就不用我说了吧,引用css的文件路径。
[3]tyle:文件类型
[4]media:应用的设备,"screen"是说明应用在屏幕上。
[5]title:是css的名称。
这段代码中一共有5个css,第一个是基本样式,而其余四个是风格样式,利用javascript去控制默认显示的样式title就ok了。

2)我要在应用打印样式;
打印样式顾名思义就是打印页面时候的样式。这个样式在普通浏览下是没有效果的,只有在打印的时候生效。若是要为页面单独引用打印样式的话,link和@import均可以的。

link代码

<link rel="stylesheet" href="/css/styles.css" type="text/css" media="print" />

@import代码

<style type="text/css">
@import url(foo.css) print;
</style>

另外对于css来讲还有一种方式@media:

@media print { 
@import "print.css" 

用@media先制定设备为 print,而后再用@impor连接

3)我要引用多个样式;
若是要在一个页面上引用多个样式组合产生效果的话,永link和@import也是均可以的。

link代码

<link rel="stylesheet" href="/css/styles.css" type="text/css" media="screen" />
<link rel="stylesheet" href="/css/orange.css" type="text/css" media="screen" />

@import代码

<style type="text/css">
        @import url(../css/base/my.layout.css);
        @import url(../css/base/my.typo.css);
       </style>

不过我的以为,用@import引用多文件的时候更加清晰一些,另外对于多样式还有一种link于@import的组合用法。


先用link引用一个css文件

<link rel="stylesheet" href="/css/styles.css" type="text/css" media="screen" />
而后在这个css文件里面再引用。

<style type="text/css">
        @import url(../css/base/my.layout.css);
        @import url(../css/base/my.typo.css);
       </style>
这样作的好处是,若是你一个站点全部页面引用的样式都是同样的,而有又多个css,若是你每一个页面都加4,5个同样的css样式,倒是浪费代码和精力,因此莫不如这样作,全部一个页面都引用一个css,而后一个css在引用多个css,方便管理和维护。

加载css link与@import的区别:(加载顺序不同)其实 link 与 @import 在显示效果上仍是有很大区别的,基本上来看 link 的加在会在页面显示以前所有加在彻底,而 @import 会是读取完文件以后加在,因此若是网速很好或很快的状况下,会出现先开始无css定义,然后加载css定义。@import加载页面时开始的瞬间会有闪烁 (无样式表的页面),而后才恢复正常(加载样式后的页面),Link没有这个问题。

他们从方法上是同样的,只是在浏览器识别上有点差距,link在支持CSS的浏览器上都支持而@import只在5.0一行的版本有效,并且还能用 于浏览器过滤也就是hack的使用,兼容一些老版本的浏览器。因此最好仍是使用link通用型更强,可是对于高版本的浏览器,也就是如今的浏览器来讲,其 实都同样,这是个没有太大意义的区分 。

相关文章
相关标签/搜索