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. ASP.NET Core – Data Protection & Azure Storage + Azure Key Vault

    前言 以前就写过很多篇了 Asp.net core 学习笔记 ( Data protection ) Asp.net core 学习笔记 Secret 和 Data Protect Azure key ...

  2. mongo 副本集rs 理解和使用小结

    转载请注明出处: 在MongoDB中,rs(通常指的是"replica set"的缩写)是复制集(Replica Set)的标识符或在使用时的一种常见前缀,尤其是在命令行工具和脚本 ...

  3. Flutter Web 近期的重要更新

    我们的发布重点优先关注在性能.开发者体验以及 Web 集成上 2021 年 3 月 Flutter Web 支持已进入稳定版,那么,下一步是什么? 我们对用户研究发现,有超过 10% 的 Flutte ...

  4. 29. GIL全局解释器锁、信号量、线程池进程池

    1. GIL全局解释器锁 1.1 概念 '''In CPython, the global interpreter lock, or GIL, is a mutex that prevents mul ...

  5. USB协议详解第4讲(USB描述符-标准配置描述符)

    1.USB描述符 USB描述符有设备描述符.标准配置描述符.接口描述符.端点描述符.字符串描述符,HID设备有HID描述符.报告描述符和物理描述符.今天主要是学习USB标准配置描述符的组成. 2.标准 ...

  6. Oracle数据库安装配置详细教程汇总(含11g、12c、18c、19c、21c)

    不论你是数据库小白,还是久经沙场的技术专家,你接触和运维Oracle数据库的第一步可能都是安装配置.并且随着软硬件的升级.替换以及业务场景的变化,数据库安装也将是你常常会进行的操作之一. 这里先为大家 ...

  7. 墨天轮沙龙 | 麦杰科技卢学东:openPlant 实时数据库系统及应用

    在8月24日举办的[墨天轮数据库沙龙第九期-工业实时数据库专场]中,麦杰科技创始人 卢学东分享了<麦杰openPlant实时数据库系统及应用>主题演讲,本文为整理内容. 导读 工业互联网推 ...

  8. Android复习(三)清单文件中的元素——> provider、receiver、service

    <provider> 语法:   <provider android:authorities="list" android:directBootAware=[&q ...

  9. python数据结构学习第一章——栈

    在这片文章中,我们使用python3.8自制一个具有基本功能的栈结构,它的功能只有push,pop,peek这三个功能 ` #!/usr/bin/env python # * coding: utf- ...

  10. 一次生产 KubeSphere 日志无法正常采集事件解决记录

    作者:宇轩辞白,运维研发工程师,目前专注于云原生.Kubernetes.容器.Linux.运维自动化等领域. 前言 2023 年 11 月 7 号下午,研发同事反馈,项目线上日志平台某个服务无法查看近 ...