- 浏览: 329383 次
- 性别:
- 来自: 上海
文章分类
最新评论
<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;}
评论
发表评论
-
IE各版本的css hack
2012-12-06 14:34 1420一:IE各版本的css hack HACK EX ... -
如何去掉链接虚线框
2011-10-08 13:58 1715链接的虚线框影响整体风格,我们在工作经常会将它去掉,而采用 ... -
chrome浏览器font-size<12px无效解决办法
2010-11-30 15:08 3660当样式表里font-size<12px时,chrome浏 ... -
IE下li内元素浮动产生边距的解决办法
2010-07-16 14:25 2636类似于这样的一个结构 <ul> &l ... -
css命名规范
2009-11-07 21:40 1732最近看到了些关于css命名方面的文章,对于这方面我也有自己的看 ... -
图片和文字的对齐
2009-11-07 15:50 10343最近工作中遇到些关于“图片和文字的对齐”的问题: ... -
img标签下多余空白bug解决方法
2009-06-25 13:56 2267根据原因的不同要用不 ... -
命名规则有利于SEO
2009-05-11 13:21 1304搜索引擎优化(seo)有很多工作要做,其中对代码的优化是一个很 ... -
页面输出时一些常用的小技巧(一)
2009-04-07 23:43 2201页面输出时一些常用的小技巧(二) 1. 菜单一 ... -
button按钮在 IE 中两边被拉伸的解决办法
2009-03-07 18:40 1825大家在写按钮(input (type="button ... -
用div+css模拟表格对角线
2009-02-09 10:59 2203在蓝色理想 上看到一篇用css写的对角线,觉得很有用。 把 ... -
IE6下兼容position:fixed的问题
2009-01-15 17:23 3496做网页时经常会有让某 ... -
[译文]On having layout
2008-12-30 20:44 1993介绍 Internet Explorer 中有很多奇怪的渲染 ... -
css实现垂直居中
2008-12-15 13:53 1438如果是用table写的表格,那么用vertical-align ... -
文本溢出时显示省略标记
2008-11-21 17:55 3554语法:text-overflow : clip | e ... -
是时候不用考虑基于字体大小(em)的设计了
2008-11-01 00:22 1696一篇不错的文章,转自 ... -
网页的栅格系统设计
2008-10-30 21:31 1345栅格系统的形成 1692年,新登基的法国国王路易十四 ... -
CSS滤镜
2008-10-24 14:44 1257下面是一些滤镜的描述, ... -
网站灰黑色CSS滤镜代码
2008-10-24 10:32 1803html { filter:progid:DXImageTra ... -
IE6默认不缓存背景图片,引起鼠标抖动的解决方法
2008-10-09 13:51 3795在IE6下,如果拖动的DOM元素使用了背景图,在Drag的过程 ...
相关推荐
CSS有两种主要的引入方式,即`<link>`标签和`@import`规则。这两种方法虽然都能达到同样的效果,即引入外部样式表,但在实际应用中,它们之间存在一些差异。 首先,`<link>`标签是HTML文档的一部分,它被用来定义...
本文将深入讲解ThinkPHP模板引擎中的`import`和`load`标签,以及它们在导入资源文件时的方法。 1. `import`标签: `import`标签是ThinkPHP模板引擎中用于导入资源文件的一种方式,它的语法类似于ThinkPHP的`import`...
在ThinkPHP框架中,文件引用主要涉及到CSS、JavaScript文件的导入,以及模板中的`import`和`load`功能。 1. CSS和JS文件导入: - `link` 标签用于导入CSS文件,如示例所示,`<link rel='stylesheet' type='text/...
本自述文件仅记录了Ink的方法。 注意:这是Ink 3的文档。如果您正在寻找Ink 2的文档,请查看。 还提供了Ink 2的。 安装 $ npm install ink react 用法 import React , { useState , useEffect } from ' react ' ; ...
type(可选):引入的资源文件类型,默认为js,支持js css和php basepath(可选):命名空间的基础路径示例:<import type=’js’ file=”Js.Util.Array”>Type属性默认是js, 所以下面的效果是相同的:<import file...
尾风墨水 是使用颜色进行训练的AI调色板生成器。 警报:此工具是作为辅助项目而制作的,代码仍然杂乱无章。... import rawShades from './models/shadesModel' import rawNext from './models/nextModel' im
这种效果通常通过CSS(层叠样式表)来实现,尤其是CSS3引入了更多的动画特性,如`transition`和`animation`。颜色变化可以通过设置不同时间间隔的颜色值序列来完成,或者使用渐变色(linear-gradient或radial-...
本自述文件中将仅记录 Ink 的方法。 注意:这是 Ink 3 的文档。如果您正在寻找有关 Ink 2 的文档,请查看此版本。 还有一份来自 Ink 2 的迁移指南。 安装 $ npm installink react 用法 import React, {useState, ...
因此,去除文件的BOM或者将文件转换为无BOM的UTF-8格式是一个常见的解决尝试,但在这个特定案例中,这些方法并未奏效。 真正解决问题的关键在于`ob_clean()`函数的使用。`ob_clean()`是PHP中的输出缓冲区(Output ...
3. **__PUBLIC__常量**:在ThinkPHP中,`__PUBLIC__`是一个预定义的常量,它指向项目的公共资源目录,例如CSS、JS和图片。在上面的例子中,`__PUBLIC__/Js/jquery-1.7.2.min.js`引用了jQuery库,而验证码图片的路径...
import scrapy class QuotesSpider(scrapy.Spider): name = quotes start_urls = [ 'http://quotes.toscrape.com/page/1/', ] def parse(self, response): for quote in response.css('div.quote'): yield { ...