zoukankan      html  css  js  c++  java
  • link和@import的区别

    link标签和@import都是为了引入css样式

    不同之处:

    -- 从属关系:

    link: 是html标签,能够支持rel等各种属性

    @import: 是css提供的语法,只有导入样式表的作用

    -- 兼容

    link: 不存在兼容问题

    @import: 不兼容IE5以下

    -- 加载

    link: 与页面同时加载

    @import: 页面加载完毕后加载

    -- 可控制性

    link:是DOM结构,可以通过操作DOM来进行操作

    @import:  无法直接操作

    例子:

    使用link便签来控制全局样式

     创建两个css文件
     // redBackground.css
     .home {
       background-color: red;
    } // greenBackground.css .home { background-color: green; }

    使用js控制全局样式

     1 function addCss(href) {
     2     const link = document.createElment(‘link’)
     3     // 添加link属性
     4     link.setAttribute('rel', 'stylesheet')
     5     link.setAttribute('type', 'text/css')
     6     link.setAttribute('href', href)
     7     // 在head标签中添加link标签
     8     document.getElementsByTagName('head')[0].appendChild(link)
     9 }
    10 
    11 // 如传入redBackground.css的路径
    12 
    13 addCss(http://xxx.xxx.xxx.xxx/css/redBackground.css)

    重复执行该方法的话,会添加多个link标签,增加渲染,所以添加删除方法

     1 function removeCss (href) {
     2   // 获取所有的link标签   
     3   const links = document.getElementsByTagName('link')
     4   for (let i = links.length; i >= 0; i--) {
     5     const link = links[i]
     6     if (link && link.getAttribute('href') && link.getAttribute('href') === href) {
     7       link.parentNode.removeChild(link)
     8     }
     9   }
    10 }
    以梦为马
  • 相关阅读:
    新家开始了
    FreeMarker过时的方法 new Configuration()
    基于Spring封装的Javamail实现邮件发送
    Spring中PropertiesLoaderUtils应用
    SpringBoot基于数据库的定时任务统一管理
    ActiveMQ点对点模式
    springboot整合swagger2
    dubbo简单示例
    SpringCLoud之搭建Zuul网关集群
    微服务项目框架搭建
  • 原文地址:https://www.cnblogs.com/lsAxy/p/12883964.html
Copyright © 2011-2022 走看看