JavaScript 样式操作
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 样式操作的更多相关文章
- 前端(十二)—— JavaScript基础操作:if语句、for循环、while循环、for...in、for...of、异常处理、函数、事件、JS选择器、JS操作页面样式
JavaScript基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通 ...
- 深入学习jQuery样式操作
× 目录 [1]设置样式 [2]增加样式 [3]删除样式[4]切换样式[5]判断样式[6]样式操作 前面的话 使用javascript脚本化CSS是一个系列,包括行间样式.计算样式.CSS类.样式表. ...
- JQuery_元素样式操作
元素样式操作包括了直接设置CSS 样式.增加CSS 类别.类别切换.删除类别这几种操作方法.而在整个jQuery 使用频率上来看,CSS 样式的操作也是极高的,所以需要重点掌握. 一.css()方法 ...
- DOM样式操作
CSS 到 DOM的抽象 通过操作 CSS 对应的 DOM对象来更新CSS样式 换肤操作 如何获取实际的样式(不仅有行内,更有页面和外联样式表中定义的样式) 样式表分为三类: 外联,页面,行内 内部样 ...
- jQuery - 5.样式操作
样式操作 1.获取样式 attr("class"), 2.设置样式attr("class","myclass"), 3.追加样式addCla ...
- jQuery编程基础精华02(属性、表单过滤器,元素的each,表单选择器,子元素过滤器(*),追加方法,节点,样式操作)
属性.表单过滤器 属性过滤选择器: $("div[id]")选取有id属性的<div> $("div[title=test]")选取title属性为 ...
- JavaScript 节点操作Dom属性和方法(转)
JavaScript 节点操作Dom属性和方法 一些常用的dom属性和方法,列出来作为手册用. 属性: 1.Attributes 存储节点的属性列表(只读) 2.childNodes 存储 ...
- JavaScript动态操作style
1.易错:修改元素的样式不是设置class属性,而是className属性.class是JS的一个保留关键字. 2.易错:单独修改样式的属性使用"style.属性名"3.注意在cs ...
- jQuery初识之选择器、样式操作和筛选器(模态框和菜单示例)
一.jQuery 1.介绍 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架). jQuery设计的 ...
- 关于JavaScript的操作
一:js基础. 1. var是定义js变量的关键字. 如: var leng=5;定义一个变量为5 var length = 16; // Number 通过数字字面量赋值 var points = ...
随机推荐
- ASP.NET Core – Data Protection & Azure Storage + Azure Key Vault
前言 以前就写过很多篇了 Asp.net core 学习笔记 ( Data protection ) Asp.net core 学习笔记 Secret 和 Data Protect Azure key ...
- mongo 副本集rs 理解和使用小结
转载请注明出处: 在MongoDB中,rs(通常指的是"replica set"的缩写)是复制集(Replica Set)的标识符或在使用时的一种常见前缀,尤其是在命令行工具和脚本 ...
- Flutter Web 近期的重要更新
我们的发布重点优先关注在性能.开发者体验以及 Web 集成上 2021 年 3 月 Flutter Web 支持已进入稳定版,那么,下一步是什么? 我们对用户研究发现,有超过 10% 的 Flutte ...
- 29. GIL全局解释器锁、信号量、线程池进程池
1. GIL全局解释器锁 1.1 概念 '''In CPython, the global interpreter lock, or GIL, is a mutex that prevents mul ...
- USB协议详解第4讲(USB描述符-标准配置描述符)
1.USB描述符 USB描述符有设备描述符.标准配置描述符.接口描述符.端点描述符.字符串描述符,HID设备有HID描述符.报告描述符和物理描述符.今天主要是学习USB标准配置描述符的组成. 2.标准 ...
- Oracle数据库安装配置详细教程汇总(含11g、12c、18c、19c、21c)
不论你是数据库小白,还是久经沙场的技术专家,你接触和运维Oracle数据库的第一步可能都是安装配置.并且随着软硬件的升级.替换以及业务场景的变化,数据库安装也将是你常常会进行的操作之一. 这里先为大家 ...
- 墨天轮沙龙 | 麦杰科技卢学东:openPlant 实时数据库系统及应用
在8月24日举办的[墨天轮数据库沙龙第九期-工业实时数据库专场]中,麦杰科技创始人 卢学东分享了<麦杰openPlant实时数据库系统及应用>主题演讲,本文为整理内容. 导读 工业互联网推 ...
- Android复习(三)清单文件中的元素——> provider、receiver、service
<provider> 语法: <provider android:authorities="list" android:directBootAware=[&q ...
- python数据结构学习第一章——栈
在这片文章中,我们使用python3.8自制一个具有基本功能的栈结构,它的功能只有push,pop,peek这三个功能 ` #!/usr/bin/env python # * coding: utf- ...
- 一次生产 KubeSphere 日志无法正常采集事件解决记录
作者:宇轩辞白,运维研发工程师,目前专注于云原生.Kubernetes.容器.Linux.运维自动化等领域. 前言 2023 年 11 月 7 号下午,研发同事反馈,项目线上日志平台某个服务无法查看近 ...