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

<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;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javascript mqtt 发布订阅消息

js client使用paho-mqtt&#xff0c;官网地址&#xff1a;http://www.eclipse.org/paho/&#xff0c;参考http://www.eclipse.org/paho/clients/js/官网给出例子Getting Started&#xff0c;写出下面简单的测试代码。 <!DOCTYPE html> <html> <head> <met…

linux java jar war_简单介绍Java 的JAR包、EAR包、WAR包区别

WAR包WAR(Web Archive file)网络应用程序文件&#xff0c;是与平台无关的文件格式&#xff0c;它允许将许多文件组合成一个压缩文件。War专用于Web方面。大部分的JAVA WEB工程&#xff0c;都是打成WAR包进行发布的。War是一个web模块&#xff0c;其中需要包括WEB-INF&#xff0…

Spring Web应用程序的最大缺陷

在其应用程序中使用Spring Framework的开发人员很好地谈论了依赖注入的好处。 不幸的是&#xff0c;他们并不是很好地利用它的好处&#xff0c;例如单一负责的原则和在应用程序中关注点的分离 。 如果我们看一下任何基于Spring的Web应用程序&#xff0c;很可能会通过使用以下常…

用C++调用tensorflow在python下训练好的模型(centos7)

本文主要参考博客https://blog.csdn.net/luoyexuge/article/details/80399265 [1] bazel安装参考:https://blog.csdn.net/luoyi131420/article/details/78585989 [2] 首先介绍下自己的环境是centos7&#xff0c;tensorflow版本是1.7&#xff0c;python是3.6&#xff08;anacond…

纯CSS实现圆角边框

HTML部分&#xff1a;<body><div> <b class”t1″></b> <b class”t2″></b> <b class”t3″></b> <b class”t4″></b> <div class”cont”>这边输入实际内容</div> <b clas…

ActiveMQ producer同步/异步发送消息

http://activemq.apache.org/async-sends.html producer发送消息有同步和异步两种模式&#xff0c;可以通过代码配置&#xff1a; ((ActiveMQConnection)connection).setUseAsyncSend(true); producer默认是异步发送消息。在没有开启事务的情况下&#xff0c;producer发送持久化…

Java Priority Queue(PriorityQueue)示例

我们知道&#xff0c; 队列如下&#xff1a;F irst- 我正˚First-UT模型&#xff0c;但有时我们需要处理的基础上&#xff0c;优先级队列中的对象。 例如&#xff0c;假设我们有一个应用程序可以为日常交易生成股票报告&#xff0c;并处理大量数据并花费时间来处理它。 因此&am…

css未知尺寸的图片的水平和垂直居中

纯CSS实现未知尺寸的图片水平和垂直居中.box { /*非IE的主流浏览器识别的垂直居中的方法*/ display: table-cell; vertical-align:middle; /*设置水平居中*/ text-align:center; /* 针对IE的Hack */ *display: block; *font-size:26…

heap 的一些用法

noip 合并果子 #include<bits/stdc.h> using namespace std; int heap[maxn]; int size0; void input(int d) {heap[size]d;push_heap(heap,heapsize,greater<int>()); } int get() {pop_heap(heap,heapsize,greater<int>());//pop_heap(heap,heapsize);ret…

java 反射 new class_Java高级特性-反射:不写死在代码,还怎么 new 对象?

反射是 Java 的一个高级特性&#xff0c;大量用在各种开源框架上。在开源框架中&#xff0c;往往以同一套算法&#xff0c;来应对不同的数据结构。比如&#xff0c;Spring 的依赖注入&#xff0c;我们不用自己 new 对象了&#xff0c;这工作交给 Spring 去做。然而&#xff0c;…

EF Core利用Scaffold从根据数据库生成代码

在EF6 之前的时代&#xff0c;如果需要从数据库中生成代码&#xff0c;是可以直接在界面上操作的&#xff0c;而到了EF Core的时代&#xff0c;操作方式又有更简便的方式了&#xff0c;我们只需要记住以下这条指令。 Scaffold-DbContext "Server服务器地址;Database数据库…

如何通过CSS开启硬件加速来提高网站性能

你知道我们可以在浏览器中用css开启硬件加速&#xff0c;使GPU (Graphics Processing Unit) 发挥功能&#xff0c;从而提升性能吗&#xff1f; 现在大多数电脑的显卡都支持硬件加速。鉴于此&#xff0c;我们可以发挥GPU的力量&#xff0c;从而使我们的网站或应用表现的更为流畅…

Spring Security应用程序中的su和sudo

很久以前&#xff0c;我从事的项目具有很强大的功能。 有两个角色&#xff1a;用户和主管。 主管可以以任何方式更改系统中的任何文档&#xff0c;而用户则更受工作流约束的限制。 当普通用户对当前正在编辑和存储在HTTP会话中的文档有疑问时&#xff0c;主管可以介入&#xff…

示例介绍:JavaFX 8打印

我有一段时间没有写博客了&#xff0c;我想与其他人分享有关JavaFX的所有信息&#xff08;我的日常工作和家庭可能是借口&#xff09;。 对于那些是本博客的新手&#xff0c;我是JavaFX 2 Introduction by Example&#xff08;JIBE&#xff09;的作者&#xff0c; Java 7 Recip…

placeholder的使用

1.定义 placeholder 属性提供可描述输入字段预期值的提示信息 该提示会在输入字段为空时显示&#xff0c;并会在字段获得焦点时消失。 注释&#xff1a;placeholder 属性适用于以下的 <input> 类型&#xff1a;text, search, url, telephone, email 以及 password。 2.用…

字符串练习

字符串练习&#xff1a; http://news.gzcc.cn/html/2017/xiaoyuanxinwen_1027/8443.html 取得校园新闻的编号 trhttp://news.gzcc.cn/html/2017/xiaoyuanxinwen_1027/8443.html print(a[-14:-5])https://docs.python.org/3/library/turtle.html 产生python文档的网址 trhttps:/…

CSS清除行内元素之间的HTML空白

至今我还记得年轻是在IE6上开发的那些苦逼日子,特别希望IE浏览器采用 inline-block 的显示方式.行内块(inline-block)是非常有用的,特别是想要不用block和float来控制这些行内元素的margin,padding之时。问题来了,HTML源码中行内元素之间的空白有时候显示在屏幕上那是相当的讨厌…

int64 java_为什么json 不能使用 int64类型

json 简介jsON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集 。 JSON采用完全独立于语言的文本格式&#xff0…

Spring MVC自定义验证注释

在上一教程中&#xff0c;我展示了如何使用注释来验证表单 。 这对于简单的验证非常有用&#xff0c;但是最终&#xff0c;您需要验证一些现成的注释中没有的自定义规则。 例如&#xff0c;如果您需要根据输入的出生日期来验证用户已超过21岁&#xff0c;或者可能需要验证用户的…

Best Time to Buy and Sell Stock with Cooldown

https://soulmachine.gitbooks.io/algorithm-essentials/java/dp/best-time-to-buy-and-sell-stock-with-cooldown.html转载于:https://www.cnblogs.com/ZhiHao-queue/p/9521933.html