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


CSS与HTML文档结合的4中方法:
1 使用<link>元素链接到外部的样式文件
2 在<head>元素中使用"style"元素来指定
3 使用CSS "@import"标记来导入样式表单
4 在<body>内部的元素中使用"style"属性来定义样式
一个例子:
<html>
<head>
<title>css demo</title>
<link rel=stylesheet type="text/css" href="css/name.css" title="cool">
<style>
@import url(css/name2.css);
H1 {color:red}
<style>
</head>
<body>
<H1>CSS demo by JET</H1>
<p style="color:blue">good luck.
</body>
</html>
1 用link进行引用
<link rel="stylesheet" type="text/css" href="my.css">
2 用import进行引用
<style type="text/css">
        @import url(my.css);
</style>
第一种是直接在html页面上进行css书写,而第二种和第三种是采用外部引用样式单独提取文件。
问题1.到底link和@import有什么区别?
我们先来看看他们的定义
link元素

HTML和XHTML都有一个结构,它使网页作者可以增加于HTML文档相关的额外信息。这些额外资源可以是样式化信息(CSS)、导航助手、属于另 外形式的信息(RSS)、联系信息等等。
@import

指定导入的外部样式表及目标设备类型。
其实link和@import的最根本区别就是,link是一个html的一个标签,而@import是css的一个标签,
link除了调用css外还可以有其他作用譬如声明页面链接属性,声明目录,rss等等,而@import就只能
调用css。如果单独从外部引用css来说,他们的作用是基本一样,只不过上面的老大不一样而已。:)
问题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通用型更强,但是对于高版本的浏览器,也就是现在的浏览器来说,其 实都一样,这是个没有太大意义的区分 。

@import最优写法:
@import的写法一般有下列几种:
@import 'style.css' //Windows IE4/ NS4, Mac OS X IE5, Macintosh IE4/IE5/NS4不识别
@import "style.css" //Windows IE4/ NS4, Macintosh IE4/NS4不识别
@import url(style.css) //Windows NS4, Macintosh NS4不识别
@import url('style.css') //Windows NS4, Mac OS X IE5, Macintosh IE4/IE5/NS4不识别
@import url("style.css") //Windows NS4, Macintosh NS4不识别
由上分析知道,@import url(style.css) 和@import url("style.css")是最优的选择,兼容的浏览器也是最多了。而从字节优化的角度来看@import url(style.css)无愧于最值得推荐的写法。
CSS代码格式可以缩减样式表文件的大小

在编写CSS样式表的时候,为了能够方便以后阅读样式定义代码,我们会将每一条代码写在一行上。但是我发现这样写似乎并不好,因为CSS代码毕竟不像程序 代码有很强的逻辑性,它主要以名称和值的对应方式写的。所以写在同一行上不会特别影响阅读。反而会减少样式表文件的尺寸,因为减少了很多换行符和间隔符。 我测试了一下发现文件的尺寸可以减少12%左右。如果样式表文件比较大或者文件比较多的时候就会明显减少客户端的下载量,提高了网页的打开速度。
注意样式名称的冒号和后面的值之间不要写空格,只是在两个样式之间用空格分割。
具体格式如下:
程序代码:
div {margin:20px; padding:10px; background-color:#F00;}

UI设计师必知:link和@import引用css文件方法的区别相关推荐

  1. 读后有感 - UI设计师必知:线框图、原型和视觉稿

    读后有感 - UI设计师必知:线框图.原型和视觉稿 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作 ...

  2. 基础的APP技术框架,UI设计师必知!

    App技术框架原理,能更有效地帮助我们预判哪些方案可行和实现效果较好,来让设计方案更接地气,让我们一起来了解一下App技术框架都有哪些. 一.App技术框架的类型 1)Native App: 一种基于 ...

  3. UI设计师必收藏的上百种配色方案专辑!

    色彩搭配是设计中的重要要素之一.要营造设计对象的氛围和定位,靠的就是颜色的搭配. 无论是单色.明亮色.冷色或是补色,所有的颜色都可以发挥设计的作用. 配色方案包括: 单色系Monochromatic ...

  4. import引css,@import引入CSS文件的方法

    @import引入CSS文件的方法 发布时间:2020-09-26 13:58:39 来源:亿速云 阅读:61 作者:小新 小编给大家分享一下@import引入CSS文件的方法,相信大部分人都还不怎么 ...

  5. 麓言信息室内设计师必知的15个网站

      作为一名室内设计师,最痛苦的莫过于缺少灵感以及素材来源了.今天,小编为你整理了一些室内设计师常用的网站,包括作品类.模型类.搜索类.软装类.     一.拓者设计吧     可以说是国内目前室内设 ...

  6. android按键色彩搭配,界面配色就靠它们,UI设计师必装的手机配色参考APP

    作为一名专业的UI设计师,在自己手机上肯定会安装几个跟配色相关的APP.在闲暇之余可以快速找到合适项目的配色参考方案.或者是给出最正确的产品配色值. 今天就跟大家分享四款UI设计师手机上必装的几款配色 ...

  7. 学习UI设计必知的防雷小知识:11例UI设计规范模板

    作为UI设计师,整理设计规范也是设计能力的一种体现.所以,无论是自己设计创作的阶段还是和程序员沟通推动产品开发阶段,你的设计规范是否完善,对产品的质量起着决定性的关键作用. 在UI设计的过程中,设计规 ...

  8. avue 文字点击 弹窗_经验 | UI设计师必懂的App弹窗设计方法

    本文总结了App弹窗设计体系,以及不同弹窗的使用方法和误区.案例丰富,适合UI设计师进阶学习. 这一篇你将看到: 1.弹窗的定义 2.不同类型弹窗的特点及使用场景 3.常见使用误区 一.弹窗的定义: ...

  9. android 单位pt,Android APPUI设计师必知:pt sp dp之间的关系

    我们都知道APP UI设计师常用的工具是Ps或者Ai,但是里面都没有sp的单位的.我们先来普及下一些关于Android尺寸单位或者是分辨率一些知识点: px: pixels(像素). 不同设备显示效果 ...

最新文章

  1. 细品经典:LeNet-1, LeNet-4, LeNet-5, Boosted LeNet-4
  2. java 文件引用路径_JAVA项目引用文件路径问题
  3. UA MATH571B 试验设计III 单因素试验设计3
  4. 云服务器下行_腾讯云轻量应用服务器简单测评
  5. 苹果AR/VR头显将通过Memojis和SharePlay支持FaceTime
  6. [转]Linux TCP/IP 协议栈的关键数据结构Socket Buffer(sk_buff )
  7. python编译:setup.py添加.h头文件或者库的搜索路径
  8. 在html页面中怎么打印区域,javascript打印web页面中指定区域的方法
  9. java redis监听问题_springboot+redis过期事件监听实现过程解析
  10. paip.erlang环境搭建和脚本式escript运行halo world 在windows下attilax总结
  11. w10如何共享计算机硬盘,Win10如何设置局域网磁盘共享?操作方法分享
  12. 刘德华--5难忘长发飘飘
  13. mysql触发器——NEW与OLD aes_encrypt AES_DECRYPT
  14. form表单Get方式提交时,action中带参数传递不了
  15. 揭秘支付机构【备付金】管理过程
  16. CiteSpace采用WOS导入文献数据分析(四)
  17. 测试用例编写练习(二)
  18. Flink on yarn集群HA配置
  19. DirectX11 Effect特效文件
  20. ACM-ICPC 2018 南京赛区网络预赛 E. AC Challenge 状压dp

热门文章

  1. centos安装llvm_Linux CentOS上编译并安装Clang教程
  2. mysql md5版本校验_MySQL查询以名称的md5版本更新所有条目?
  3. php xml相关函数方法,php中对xml读取的相关函数的介绍一
  4. win10电脑开机密码忘了怎么办_Mac电脑忘记开机密码怎么办?Mac开机密码快速恢复方法...
  5. 用matlab做纹理合成,关于图像纹理合成的Matlab例程
  6. Python中xlrd模块解析
  7. java面向对象(this关键字)
  8. 02.Python 3.6.4下载与安装
  9. 根据自己的博客数据统计国内IT人群
  10. golang linux安装