用JS改变HTML样式

在html中定义样式的方法有3种:

  • 通过link标签链接外部样式
  • 使用style标签定义嵌入式样式
  • 使用标签style属性定义样式

用JS改变的HTML样式无非就是上面三种,改变样式只需要解决两个问题

  1. 找到要更改样式的元素
  2. 更改样式

更改link链接的外部样式

<!DOCTYPE html>
<html>
<head><title></title><link rel="stylesheet" type="text/css" href="01.css">
</head>
<body>
<div id="div"></div>
<script type="text/javascript">var css=document.getElementsByTagName('link')[0];css.href='02.css';
</script>
</body>
</html>

首先获取链接外部css的link 元素节点,然后改变link标签的href的值。

改变style标签定义嵌入式样式
首先获取文档要改变的样式表,然后用操作样式表的方法改变样式表。

<!DOCTYPE html>
<html>
<head><title></title><style type="text/css">.div{border: 1px solid #000;width: 100px;height: 100px;}</style>
</head>
<body>
<div id="div"></div>
<script type="text/javascript">var style=document.styleSheets[0];style.insertRule('body{ background:silver}',0);
</script>
</body>
</html>

操作样式表的方法有:

  • insertRule(rule,index):向样式表中指定的位置插入rule字符串。index很重要,规则的次序在确定层叠之后应用到文档的规则时至关重要。
  • delete(index):删除样式表指定位置的规则。

上面的方法有点麻烦,我们可以通过改变元素的class或id属性来应用不同的css样式。

<!DOCTYPE html>
<html>
<head><title></title><style type="text/css">.one{border: 1px solid #000;width: 100px;height: 100px;}.two{border: 1px solid #000;width: 200px;height: 200px;}</style>
</head>
<body>
<div class="one" id="div"></div>
<script type="text/javascript">var div=document.getElementById('div');div.className='two';
</script>
</body>
</html>

注意:虽然样式表可以改变对应元素的样式,但它并不是元素的属性,也就是说元素节点的属性列表中不会包含样式表的样式,也就不能通过HTML元素节点属性改变样式表。

改变元素的style属性

  1. 首先获取要改变样式的节点,然后可以通过节点的setAttribute(‘style’,’value’)方法来设置style属性,这种方法可以同时设置多条样式规则。
  2. 可以直接设置节点的style属性。DOM的HTML元素节点继承Elenment并添加了一些属性。添加的这些属性分别对应于每个HTML元素中都可存在的特性,如id、title、style、className(之所以不是class是因为class是JS的保留字)等。
<script type="text/javascript">var div=document.getElementById('div');div.style.property='xxx';div.style.cssText='string';
</script>

property是要设置的样式名称,后面是样式值。
style.cssText可以同时设置多个样式,string代表样式规则的集合。这种方式更方便

用JS改变html样式相关推荐

  1. js改变style样式和css样式

    js可实现用户对页面中的选择条件改变页面中的样式,页面样式可以通过style修饰,也可以通过css修饰,先来看一下js改变style样式,代码如下: [html] view plaincopy < ...

  2. 重学前端第一阶段完 钢琴项目(document.querySelector js改变css样式的3种方式 思路 成品)

    菜鸟学完之后,总是感觉学了也还是不会,主要就是因为没有实践,不知道自己到底哪里有问题!虽然说我还没复习完,前端很大一部分都处于模糊阶段,但是感觉还是应该先尽力做一个简单的东西,把这几天学的都用进去,遇 ...

  3. js基础总结——js 获取元素节点、js 绑定onclick事件、js 获取属性 修改属性值、js 获取子元素、js 改变css样式

    参考书籍:<JavaScript DOM编程艺术 第2版> 本博客代码的测试页面是:https://www.layui.com/ js dom操作 js 获取元素节点 一份document ...

  4. js如何修改html样式,怎么用js改变css样式?

    怎么用js改变css样式?下面本篇文章给大家介绍一下使用JavaScript改变css样式的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 怎么用js改变css样式? 1.通过 ...

  5. JS行间改变css的方法,js改变css样式的三种方法推荐

    共用代码: this is a div var div=document.getElementById('div'); 第一种:用cssText div.style.cssText='width:25 ...

  6. 如何通过js改变css样式,如何通过JS 动态改变CSS样式

    如何通过JS 动态改变CSS样式0 豆豆dou...2013.09.15浏览640次分享举报 .TLIWREGION3CSS { position:absolute; left:32px; top:4 ...

  7. js改变css样式_React 中使用CSS的7种方法

    来源 | https://www.jianshu.com/p/74aa74484579 第一种: 在组件中直接使用style 不需要组件从外部引入css文件,直接在组件中书写. import Reac ...

  8. 改变div php,js改变div样式

    摘要:html> changeDIV #box{width:&nbsphtml> changeDIV #box{width: 100px;height: 100px;backgro ...

  9. JS 改变HTML样式

    语法 Object.style.property=new style; 注意:Object是获取的元素对象,如通过document.getElementById("id")获取的元 ...

最新文章

  1. Parallax Mapping Shader 凸凹感【转】
  2. 求难、求拙、求慢、求少
  3. nrf52840开发套件_nRF52840蓝牙5.0模块有几个突出的优势
  4. linux exchange邮件客户端,Linux中使用Hiri邮件客户端访问Exchange帐户
  5. 图像的频率谱和功率谱代表什么_使用 FastAI 和即时频率变换进行音频分类
  6. PlayMaker 不支持过渡条件
  7. Hbase官方文档中文版
  8. 在 KITTI 数据集中利用车辆位姿真值拼接 pcd 点云并滤波,得到一个准确的点云地图
  9. 正在等待暴雪服务器响应,炉石传说无法通过暴雪战网服务进行登录,炉石传说,“游戏无法将你登陆至战网。请等待几分钟并再次尝试”...
  10. 【文献翻译】Select-Storage: A New Oracle Design Pattern on Blockchain
  11. java实现基金浮动_Java: 实现自回归分析/线性回归分析/基金各项指标计算等
  12. A survey on challenges and progresses in blockchain technologies区块链综述
  13. preg_replace与远程代码执行
  14. 基于Gstreamer和大疆OSDK4.0视频h264接口推流
  15. Pro10丨枢轴点反转策略
  16. [SCOI2012]喵星球上的点名
  17. 报计算机专业高考必考科目,不能错过的重点!新高考选科:名校专业必选的那些科目!...
  18. 浏览器小知识之欧朋(Opera)浏览器
  19. ios客户端学习笔记(六):iOS客户端的工作流程
  20. andriod 01

热门文章

  1. 进入U盘PE系统无法识别硬盘分区的原因分析和解决方法
  2. 计算机pe启动蓝屏怎么办,U盘重装系统进入PE蓝屏怎么办
  3. 计算机组成原理课程设计报告书
  4. mysql试题百度云_MYSQL练习题及答案
  5. 视频教程-vuecli实战商城后台管理系统-Vue
  6. 牛顿法计算平方根java_利用牛顿迭代法求平方根(转)
  7. oracle科目余额表的查询,科目余额表查询 · selfaccount-services · 看云
  8. 数据库种类发展史和大数据下的数据库(NoSQL)
  9. 03 分布式系统的技术栈
  10. android第三方上传文件,安卓和苹果终于打通!互传文件无需借助第三方,一碰就能传...