css基础问题

达到一定程度时(比如新浪等门户),如果采用链接的方式可能就会使得由于多个页面调用同一个CSS文件而造成速度下降,但是一般页面能达到这种程度的网站 也会有资本用最好的硬盘,所以这方面的因素也不用怎么担心。综上所述,一般普通的站点在调用外部样式表的时候,还是尽量选择link链入外部样式表比较好。
css基础问题
先解释一下网页添加css样式的方法,一共有四种,分别是:
一、内嵌样式——直接在页面的标签里加<div style="border:1px red solid;">测试信息</div>
二、内部样式表——在head部分加入 <style type="text/css">div{margin: 0;padding: 0;border:1px red solid;}</style>
三、链入外部样式表——在head部分加入<link rel="stylesheet" type="text/css" href="my.css" media="all" />,引入外部的CSS文件
四、导入外部样式表——在head部分加入<style type="text/css">@import url(my.css);</style>

样式表的优先级顺序从高到低依次为:内嵌样式 > 内部样式表 > 导入外部样式表(其实是属于内部样式表)
链入外部样式表与内部样式表之间的优先级取决于所处位置的先后,最后定义的优先级最高。

本文主要是做@import导入样式表与link链入样式表的区别探讨,所以其他的不做详谈。
1. 链入外部样式表
链入外部样式表是把样式表保存为一个样式表文件,然后在页面中用<link>标记链接到这个样式表文件,这个<link>标记必须放到页面的<head>区内,如下:
<head>
……
<link href="mystyle.css" rel="stylesheet" type="text/css" media="all">
……
</head>

面这个例子表示浏览器从mystyle.css文件中以文档格式读出定义的样式表。rel=”stylesheet”是指在页面中使用这个外部的样式表。
type=”text/css”是指文件的类型是样式表文本。href=”mystyle.css”是文件所在的位置。media是选择媒体类型,这些媒
体包括:屏幕,纸张,语音合成设备,盲文阅读设备等。

2.导入外部样式表
导入外部样式表是指在内部样式表的<style>里导入一个外部样式表,导入时用@import,看下面这个实例:
<head>
……
<style type=”text/css”>
<!--
@import “mystyle.css”
其他样式表的声明
-->
</style>
……
</head>
例中@import “mystyle.css”表示导入mystyle.css样式表,注意使用时外部样式表的路径。方法和链入样式表的方法很相似,实质上它相当于存在内部样式表中的。
注意:导入外部样式表必须在样式表的开始部分,在其他内部样式表上面。

综合度娘的多篇文章和个人理解,两者的区别总结如下:
1:老祖宗的差别。link属于XHTML标签,而@import完全是CSS提供的一种方式。
link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性,等,@import就只能加载CSS了。

2:
加载时间及顺序不同。使用link链接的css是客户端浏览你的网页时先将外部的CSS文件加载到网页当中,然后再进行编译显示,所以这种情况下显示出来
的网页跟我们预期的效果一样,即使一个页面link多个css文件,网速再慢也是一样的效果;而使用@import导入的CSS就不同了,客户端在浏览网
页时是先将html的结构呈现出来,再把外部的CSS文件加载到网页当中,当然最终的效果也是跟前者是一样的,只是当网速较慢时会出现先显示没有CSS统
一布局时的html网页,这样就会给阅读者很不好的感觉。这也是现在大部分网站的CSS都采用链接方式的最主要原因。

3:兼容性不同。由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。

4:使用dom控制样式时出现问题。当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。

5:
导入样式可以避免过多页面指向一个css文件。当网站中使用同一个CSS文件的页面不是非常多时,这两种方式在效果方面几乎是没有不同的,但网站的页面数
达到一定程度时(比如新浪等门户),如果采用链接的方式可能就会使得由于多个页面调用同一个CSS文件而造成速度下降,但是一般页面能达到这种程度的网站
也会有资本用最好的硬盘,所以这方面的因素也不用怎么担心。

综上所述,一般普通的站点在调用外部样式表的时候,还是尽量选择link链入外部样式表比较好。关于区别中第二点的加载顺序的差别中,找到一个国外的参考文章作为补充资料:http://www.stevesouders.com/blog/2009/04/09/dont-use-import/2016-08-31
当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显。2016-08-31
mengvlog 阅读 9 次 更新于 2025-07-21 03:26:02 我来答关注问题0
  •  誉祥祥知识 css 行高问题

    CSS行高可以通过设置`line-height`属性来调整。详细解释如下:一、CSS行高的基本概念 在CSS中,行高是用于控制文本行之间垂直距离的属性。它不仅影响文本的可读性,还影响网页的整体布局和外观。二、设置行高的方法 1. 固定值设置:可以通过像素、点等固定单位设置具体的行高数值,如`line-height: 20px;`...

  • 加载时间及顺序不同。使用link链接的css是客户端浏览你的网页时先将外部的CSS文件加载到网页当中,然后再进行编译显示,所以这种情况下显示出来 的网页跟我们预期的效果一样,即使一个页面link多个css文件,网速再慢也是一样的效果;而使用@import导入的CSS就不同了,客户端在浏览网 页时是先将html的结构...

  •  百度网友a67c6505a html/css的几个基础的问题,关于浮动这块,谢谢!

    定位一般是相对定位,定位只是一种方式,有绝对和相对定位,相对用的多。浮动只是针对块的排布而已。是的,必须设置float left才可以左右排开,至于块高度统一设为200px。宽度可以用百分比,最后一个块不一定要right,实际上像素控制的好left足矣。如果对于希望宽度自适应,并且保持布局不会乱套,还是用百分...

  • 明确答案: 在CSS中,`height`属性定义元素的高度,而`min-height`属性定义元素的最小高度。当元素的实际高度低于`min-height`时,浏览器会扩展元素的高度以满足最小高度的要求。如果超过设定的高度,内容会溢出容器。而`height`则设定一个固定的值或相对值作为元素的高度。如果内容超出设定的固定高度,...

  •  阿暄生活 css错误纠正

    修正语法:CSS语法错误是导致样式不生效的常见原因。使用浏览器的开发者工具查看控制台输出的错误信息,定位并修复如选择器书写错误、缺少分号、花括号不匹配等问题。处理选择器优先级:当多个CSS规则应用于同一元素时,了解CSS的优先级规则至关重要。使用更具体的选择器或!important来确保所需样式被正确应用...

檬味博客在线解答立即免费咨询

CSS相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部