zoukankan      html  css  js  c++  java
  • 引入CSS的方式、link和@import的区别

    引入CSS的方式有四种:内联方式、嵌入方式、链接方式、导入方式。

    内联方式

    内联方式指的是直接在 HTML 标签中的 style 属性中添加 CSS。

    <div style="background: red"></div>

    这通常是个很糟糕的书写方式,它只能改变当前标签的样式,如果想要多个 <div> 拥有相同的样式,你不得不重复地为每个 <div> 添加相同的样式,如果想要修改一种样式,又不得不修改所有的 style 中的代码。很显然,内联方式引入 CSS 代码会导致 HTML 代码变得冗长,且使得网页难以维护。

    嵌入方式

    嵌入方式指的是在 HTML 头部中的 <style> 标签下书写 CSS 代码。

    <head>
        <style>
        .content {
            background: red;
        }
        </style>
    </head>

    嵌入方式的 CSS 只对当前的网页有效。因为 CSS 代码是在 HTML 文件中,所以会使得代码比较集中,当我们写模板网页时这通常比较有利。因为查看模板代码的人可以一目了然地查看 HTML 结构和 CSS 样式。因为嵌入的 CSS 只对当前页面有效,所以当多个页面需要引入相同的 CSS 代码时,这样写会导致代码冗余,也不利于维护。

    链接方式

    链接方式指的是使用 HTML 头部的 <head> 标签引入外部的 CSS 文件。

    <head>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>

    这是最常见的也是最推荐的引入 CSS 的方式。使用这种方式,所有的 CSS 代码只存在于单独的 CSS 文件中,所以具有良好的可维护性。并且所有的 CSS 代码只存在于 CSS 文件中,CSS 文件会在第一次加载时引入,以后切换页面时只需加载 HTML 文件即可。

    导入方式

    导入方式指的是使用 CSS 规则引入外部 CSS 文件,在<style>标签中使用@import

    <style>
        @import url(style.css);
    </style>

    链接方式link和导入方式@import的区别

    两者都是外部引用CSS的方式,但是存在一定的区别:

    1. 放置的位置不同

        link一般放在head标签中

             @import必须放在<style  type="text/css">标签中

    2. 加载方式不同

             link会和dom结构一同加载渲染

        @import只能能dom结构加载完成以后才能渲染页面

    3. 兼容性不同

             link是在xhtml的标签,兼容IE各个版本

        @import是css2.1时提出来的,只能在IE6以上进行解析。

    4. 加载内容不同

             link是XHTML标签,除了可以加载css文件外,还可以定义RSS等其他事务。

        @import属于CSS范畴,只能加载css文件

    5. 当使用 Javascript 控制 DOM 去改变样式的时候,只能使用 link 方式,因为 @import 眼里只有 CSS ,不是 DOM 可以控制的,而link是html元素,可用javascript去控制dom元素最后达到改变样式的效果;

    优先级

    内联方式 > 嵌入方式 > 链接方式 > 导入方式

  • 相关阅读:
    jQuery函数继承 $.extend, $.fn.extend
    [原创]茗洋AaronYang的 jquery.myselect.js 我的一次前端突破[上]
    EasyUI 的 combotree 加载数据后折叠起来,并且只允许单击子节点的写法
    判断js数组包是否包含某个元素
    JS中 HTMLEncode和HTMLDecode
    Easyui datagrid 特殊处理,记录笔记
    easyui tab上面添加右键菜单
    第三方文本框 在div中显示预览,让指定节点不受外部css影响
    Easyui 让Window弹出居中
    C# txt格式记录时间,时间对比,决定是否更新代码记录Demo
  • 原文地址:https://www.cnblogs.com/lmjZone/p/8717489.html
Copyright © 2011-2022 走看看