1.类名操作

  • class类名以字符串的形式存储到标签和Dom元素的属性中,标签属性为class,Dom元素属性为className,两个属性是均支持读取和修改,修改其中的一个会同步至另一个属性
  • className属性:拿到Dom后,通过这个属性来读取和修改
<body>
<div id="app">
<div id="box" class="box text-align">测试样式类名</div>
</div>
</body>
<script>
var box = document.querySelector("#box")
//读取并打印
console.log(box.className) //box text-align
//设置className
box.className = "box text-align text-success"
</script>
  • 标签属性:通过getAtrribute()/setAtrribute()方法直接读取和修改
<script>
var box = document.querySelector("#box")
console.log(box.getAttribute("class")) //box text-align box.setAttribute("class","box text-align text-success")
</script>
  • 缺点:样式类以字符串形式读取和设置,但是样式类生效时时彼此独立的,不方便操作

2.classList 属性

  • 这个属性以数组形式返回元素css类名,且支持对数组元素的怎删改查
  • 注意:这个是HTML5里面新增的属性,旧版本浏览器不支持
<body>
<div id="box" class="box text-align">测试样式类名</div>
</body> <script>
var box = document.querySelector("#box")
//一个带value属性的数组
//DOMTokenList(2) ['box', 'text-align', value: 'box text-align']
console.log(box.classList)
</script>
  • 属性方法add(class1, class2, ...):在元素中添加一个或多个类名(已经存在的类名不会重复添加,能自动去重)
<script>
var box = document.querySelector("#box")
//添加一个类
box.classList.add('text-success')
////DOMTokenList(3) ['box', 'text-align', 'text-success', value: 'box text-align']
console.log(box.classList)
</script>
  • 属性方法remove(class1, class2, ...):移除元素中一个或多个类名
<script>
var box = document.querySelector("#box")
//移除一个类
box.classList.remove('text-align')
////DOMTokenList(1) ['box']
console.log(box.classList)
</script>
  • 属性方法toggle():切换某个类名,如果这个类名已经存在就把他移除,如果类名不存在则添加这个类名
<script>
var box = document.querySelector("#box")
//切换一个类
box.classList.toggle('text-align')
////DOMTokenList(1) ['box']
console.log(box.classList)
//切换一个类
box.classList.toggle('text-align')
////DOMTokenList(2) ['box','text-align']
console.log(box.classList)
</script>
  • 属性方法contains():判断元素是否含有指定的css类名
<script>
var box = document.querySelector("#box")
// true
console.log(box.classList.contains("box"))
// false
console.log(box.classList.contains("text-success"))
</script>
  • 属性方法replace():替换某个css类名
<script>
var box = document.querySelector("#box")
// 替换类名
box.classList.replace("text-align","left-align")
//DOMTokenList(2) ['box', 'left-align', value: 'box left-align']
console.log(box.classList)
</script>

3.内联样式

  • 通过Dom元素的style属性进行操作
<script>
var box = document.querySelector("#box")
// 替换类名
box.style.color = "red"
</script>
  • 如果css属性带有 "-" ,设置时使用驼峰法或者数组语法
<script>
var box = document.querySelector("#box")
// 驼峰法 background-color
box.style.backgroundColor = "red"
//数组语法
box.style["box-sizing"] = "border-box"
</script>

JavaScript 样式操作的更多相关文章

  1. 前端(十二)—— JavaScript基础操作:if语句、for循环、while循环、for...in、for...of、异常处理、函数、事件、JS选择器、JS操作页面样式

    JavaScript基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通 ...

  2. 深入学习jQuery样式操作

    × 目录 [1]设置样式 [2]增加样式 [3]删除样式[4]切换样式[5]判断样式[6]样式操作 前面的话 使用javascript脚本化CSS是一个系列,包括行间样式.计算样式.CSS类.样式表. ...

  3. JQuery_元素样式操作

    元素样式操作包括了直接设置CSS 样式.增加CSS 类别.类别切换.删除类别这几种操作方法.而在整个jQuery 使用频率上来看,CSS 样式的操作也是极高的,所以需要重点掌握.  一.css()方法 ...

  4. DOM样式操作

    CSS 到 DOM的抽象 通过操作 CSS 对应的 DOM对象来更新CSS样式 换肤操作 如何获取实际的样式(不仅有行内,更有页面和外联样式表中定义的样式) 样式表分为三类: 外联,页面,行内 内部样 ...

  5. jQuery - 5.样式操作

    样式操作 1.获取样式 attr("class"), 2.设置样式attr("class","myclass"), 3.追加样式addCla ...

  6. jQuery编程基础精华02(属性、表单过滤器,元素的each,表单选择器,子元素过滤器(*),追加方法,节点,样式操作)

    属性.表单过滤器 属性过滤选择器: $("div[id]")选取有id属性的<div> $("div[title=test]")选取title属性为 ...

  7. JavaScript 节点操作Dom属性和方法(转)

    JavaScript 节点操作Dom属性和方法   一些常用的dom属性和方法,列出来作为手册用. 属性:   1.Attributes 存储节点的属性列表(只读)   2.childNodes 存储 ...

  8. JavaScript动态操作style

    1.易错:修改元素的样式不是设置class属性,而是className属性.class是JS的一个保留关键字. 2.易错:单独修改样式的属性使用"style.属性名"3.注意在cs ...

  9. jQuery初识之选择器、样式操作和筛选器(模态框和菜单示例)

    一.jQuery 1.介绍 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架). jQuery设计的 ...

  10. 关于JavaScript的操作

    一:js基础. 1. var是定义js变量的关键字. 如: var leng=5;定义一个变量为5 var length = 16; // Number 通过数字字面量赋值 var points = ...

随机推荐

  1. 小tips:CSS3中的background-clip属性(背景的裁剪区域)

    CSS3中的background-clip属性,其主要是用来确定背景的裁剪区域,换句话说,就是如何控制元素背景显示区域. 语法如下: background-clip : border-box || p ...

  2. Angular 16+ 高级教程 – Angular 和其它技术方案的比较

    前言 上一篇我有提到 Angular 适合用于哪些项目,但讲的太含糊,什么大中小项目的...这篇我将更具体的去讲解,Angular 的定位,还有它和其它方案的优缺点. Web 技术可以用来做许许多多不 ...

  3. Figma 学习笔记 – Constraints 约束

    用途 Constraints 用于 responsive design, 子元素和父元素建立约束关系后, 当父元素 dimension 变换的时候, 子元素会做出相应的变化 (移动位置或 resize ...

  4. OData – Routing

    前言 以前我都是把 ODataController 和普通 API Controller 分开做. (因为 OData 实在多 Bug, 好东西尽量不要掺和它) Read 的部分用 OData, CU ...

  5. webpack 5.88.2

    原理 webpack的运行过程大致可以分为以下几个步骤:webpack的运行过程实际上就是等待上一个钩子结束调用下一个钩子的过程 初始化:webpack接收命令行参数或配置文件,创建一个Compile ...

  6. 记录一次BOOST库相关的使用包含互斥量、条件变量的类,引发的编译报错

    1. 工作中的代码: 2. 使用指针作为形参,不会造成编译报错,我是可以理解的. 那么请讨论下为什么使用值传递和引用作为形参,会造成编译报错? 3. 答案揭晓 boost 的mutex源码: 最终原因 ...

  7. [namespace hdk] Balanced_tree 整合

    代码 #include<bits/stdc++.h> using namespace std; namespace hdk{ namespace balanced_tree{ const ...

  8. 大语言模型(LLM)

    大语言模型 LLM 人工智能 Artificial Intelligence 一门研究如何使计算机能够模拟和执行人类智能任务的科学和技术领域 是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术 ...

  9. Js运算符(操作符)

    算数运算符 a = 1 + 1 // 2 a = 10 - 5 // 5 a = 10 / 5 // 2 a = 10 / 0 // js中除以0不会报错,结果是Infinity a = 2*2 // ...

  10. SpringCloud入门(四)Ribbon负载均衡

    一.Ribbon负载均衡原理SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的. SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTempl ...