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 = ...
随机推荐
- SpringBoot——项目快速启动
SpringBoot项目快速启动 对SpringBoot项目打包(执行Maven构建指令package) 执行后会生成对应的项目 jar包,在文件夹找到该文件 在对应文件夹下即可执行 j ...
- 76.最小覆盖子串 Golang实现
题目描述: 给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" . 注意: 对于 t ...
- placement new --特殊的内存分配
placement new 是 C++ 中的一种特殊的内存分配技术,用来在指定的内存地址上直接构造对象.与普通的 new 运算符不同,placement new 并不分配新的内存,而是在已经分配好的内 ...
- form data 与request payload的区别以及php接收这些数据的方法
form data 与request payload的区别以及php接收这些数据的方法 以前与前端交互一直都是POST.GET的,PHP端就直接$_POST,$_GET来接收,从来没有出现过以外. 最 ...
- USB协议详解第9讲(USB描述符-HID描述符)
1.HID设备概述 USB设备中有一大类就是HID设备,即Human Interface Devices,人机接口设备.这类设备包括鼠标.键盘.游戏手柄等,主要用于人与计算机进行交互.HID设备可以作 ...
- 数据库周刊57丨Oracle 2021年度安全警报;MySQL 8.0.23发布;MySQL索引优化导致的死锁案例;巨杉数据库跨引擎事务实践;MongoDB企业级能力解析;OceanBase OBCP 实验指导手册……
摘要:墨天轮数据库周刊第57期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档. 热门资讯 1.Oracle 2021年度安全警报: Critical Patch Update 发布8个 ...
- centos7.9 安装 nodejs(包含安装fnm、更换yum源、升级 gcc、make、glibc、libstdc++)
1.安装fnm (1)压缩包fnm-linux.zip搞到服务器上,我放在root里. (2)解压.设置权限 unzip fnm-linux.zip chmod 777 fnm (3)设置环境变量,添 ...
- md转换成_post下直接使用的文件
md转换成_post下直接使用的文件 package org.example; import java.io.File; import java.io.IOException; import java ...
- 【磐维数据库】Oracle(透明网关)访问磐维数据库(PanWeiDB)
磐维数据库(PanWeiDB)是由中国移动基于中国本土开源数据库openGauss打造的自研数据库产品,主要面向ICT基础设施.它具有高性能.高可靠性.高安全性和高兼容性的特点,能够支持集中式.分布式 ...
- K-Means(聚类算法)【转载】
聚类##### 今天说聚类,但是必须要先理解聚类和分类的区别,很多业务人员在日常分析时候不是很严谨,混为一谈,其实二者有本质的区别. 分类其实是从特定的数据中挖掘模式,作出判断的过程.比如Gmail邮 ...