JavaScript基础(27)_内联样式的获取和修改、获取元素当前显示的样式

news2024/11/28 4:33:17

内联样式的获取和修改

获取元素的内联样式:

语法:元素.style.样式名
注意:通过style属性设置和读取的都是内联样式,无法读取样式表中的样式。

修改元素的内联样式:

语法:元素.style.样式名 = 样式值

比如:
box.style.width = "120px";
box.style.backgroundColor = "yellow";

注意:
1、如果CSS的样式名中含有-,这种名称在JS中是不合法的,会被认为是运算符-,因此,需要将这种样式名修改为驼峰命名法,去掉-,然后将-后的字母大写
2、内联样式有较高的优先级,所以通过JS修改的样式往往会立即显示,但是如果在样式中写了!important,则此时样式会有最高的优先级,即使通过JS也不能覆盖该样式,此时将会导致JS修改样式失效,所以尽量不要为样式添加!impoerant。

获取元素当前显示的样式

方案1:

对象方法:getComputedStyle(参数1,参数2);
参数1:要获取样式的元素
参数2:可以传递一个伪元素,一般都传null

比如:
var obj = getComputedStyle(box1,null);
alert(obj.width);
相当于:
alert(getComputedStyle(box1,null).width);

注意:
1、使用该方法时会返回一个对象,对象中封装了当前元素对应的样式,可以通过对象.样式名读取样式。如果获取的样式没有设置,则会获取到当前样式真实的值,而不是默认值。比如:没有设置width,它不会获取到auto,而是一个长度的具体值。
2、该方法是window对象的方法,和document一样可以直接使用。
3、该方法只读,不能修改元素样式的属性。
4、该方法在IE9以上及其他的浏览器都支持。

方案二:

语法:元素.currentStyle.样式名

注意:
1、如果当前元素没有设置样式,则获取它的默认值。比如:backgroundColor没有设置颜色,这显示默认值:transparent。
2、该属性只读,不能修改元素样式的属性。
3、currentStyle只有IE8及以下版本浏览器支持,IE9以上及其他的浏览器都不支持。

如何解决浏览器兼容性问题

定义一个函数,用来获取指定元素的当前的样式。
参数: obj    要获取样式的元素
      name    要获取的样式名

    function getStyle(obj, name) {
        if (window.getComputedStyle) {
            return getComputedStyle(obj, null)[name];
        }
        else {
            return obj.currentStyle[name];
        }
    }

示例:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>操作内联样式、获取当前样式</title>
</head>
<style>
    .box {
        width: 200px;
        height: 200px;
        background-color: blue;
    }
</style>
<script>
    window.onload = function () {
        var before_setStyle = document.getElementById("before_setStyle");
        var click_setStyle = document.getElementById("click_setStyle");
        var after_setStyle = document.getElementById("after_setStyle");
        var box = document.getElementsByClassName("box")[0];
        var boxStyle = getComputedStyle(box, null);

        function setStyle() {
            box.style.width = "120px";
            box.style.height = "100px";
            box.style.backgroundColor = "yellow";
        }

        before_setStyle.onclick = function () {
            alert(
                "设置样式前,图片宽度为:" + boxStyle.width + "\n" +
                "设置样式前,图片高度为:" + boxStyle.height + "\n" +
                "设置样式前,图片颜色为:" + boxStyle.backgroundColor + "\n"
            );
        }
        click_setStyle.onclick = function () {
            setStyle();
        }
        after_setStyle.onclick = function () {
            alert(
                "设置样式后,图片宽度为:" + boxStyle.width + "\n" +
                "设置样式后,图片高度为:" + boxStyle.height + "\n" +
                "设置样式后,图片颜色为:" + boxStyle.backgroundColor + "\n"
            );
        }
    }
</script>

<body>
    <div class="box" style="width:110px;height:90px;background:green"></div>
    <br>
    <button id="before_setStyle">设置样式前图片参数:</button>
    <br>
    <button id="click_setStyle">点击设置样式</button>
    <br>
    <button id="after_setStyle">设置样式后图片参数:</button>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1392800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apache JMeter 3.1压力测试监控服务器数据(cpu、内存、磁盘io等)

Apache JMeter 3.1压力测试 Apache JMeter 3.1压力测试监控cpu、内存情况1.下载Apache JMeter 3.11.1 添加线程组1.2 添加http请求1.3 增加http请求头设置1.4 添加csv配置1.5 添加测试结果监控配置 2. 监控插件下载3. 服务端插件下载并启动3.1 下载3.2 解压并启动3.3 增加服务器…

136基于matlab的自适应滤波算法的通信系统中微弱信号检测程序

基于matlab的自适应滤波算法的通信系统中微弱信号检测程序&#xff0c;周期信号加入随机噪声&#xff0c;进行滤波&#xff0c;输出滤波信号&#xff0c;程序已调通&#xff0c;可直接运行。 136 matlab自适应滤波算法LMS (xiaohongshu.com)

提高支撑座效率的重要性

自动化机械设备在运行过程中需要消耗大量的能源和资源&#xff0c;提高效率意味着更有效地利用这些资源&#xff0c;降低运行成本&#xff0c;而支撑座作为自动化机械设备中重要的传动元件&#xff0c;提高支撑座的效率对于自动化机械设备的可持续发展和企业的竞争力具有重要意…

2024华数杯国际赛A题B题思路及代码!

大家好&#xff0c;这里是本次华数杯国际数学建模竞赛的AB题思路代码讲解贴。 关于思路&#xff0c;可以移步我的视频讲解&#xff1a; 2024华数杯国际赛数学建模选题建议及初步思路&#xff01;_哔哩哔哩_bilibili 本篇主要讲解代码。 问题A&#xff1a;日本放射性废水 对…

Springboot+vue的智能家居系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的智能家居系统&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的智能家居系统&#xff0c;采用M&#xff08;model&a…

二叉树的概念|满二叉树与完全二叉树|二叉树的性质|二叉树的存储结构

前言 在数据结构中树的用途其实并不大&#xff0c;用得更多的其实是二叉树。所以在本章我们将详细讲解二叉树。 一、二叉树的概念及结构 1、概念 一颗二叉树是结点的一个有限集合&#xff0c;该集合&#xff1a; 或者为空或者由一个根节点加上两颗&#xff08;互不相交&…

云计算入门——Linux 命令行入门

云计算入门——Linux 命令行入门 前些天发现了一个人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;最重要的屌图甚多&#xff0c;忍不住分享一下给大家。点击跳转到网站。 介绍 如今&#xff0c;我们许多人都熟悉计算机&#xff08;台式机和笔记本电…

VMware workstation安装SUSE Linux Enterprise Server 12 SP5虚拟机并配置网络

VMware workstation安装SUSE Linux Enterprise Server 12 SP5虚拟机并配置网络 SUSE Linux Enterprise Server是企业级Linux系统&#xff0c;适合企业应用。该文档适用于在VMware workstation平台安装SUSE Linux Enterprise Server虚拟机。 1.安装准备 1.1安装平台 Windows…

嵌入式-Stm32-江科大基于标准库的GPIO的八种模式

文章目录 一&#xff1a;GPIO输入输出原理二&#xff1a;GPIO基本结构三&#xff1a;GPIO位结构四&#xff1a;GPIO的八种模式道友&#xff1a;相信别人&#xff0c;更要一百倍地相信自己。 &#xff08;推荐先看文章&#xff1a;《 嵌入式-32单片机-GPIO推挽输出和开漏输出》…

docker安装elk(Elasticsearch+logstash+kibana)

1. 安装Docker 如果您还没有安装Docker&#xff0c;请先安装Docker。您可以按照官方文档进行安装&#xff1a;https://docs.docker.com/engine/installation/ 安装 docker-ce [rootk8s-master ~]# yum install docker-ce -y [rootk8s-master ~]# systemctl start docker &am…

力扣● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

● 435. 无重叠区间 跟弓箭题一样的原理&#xff1a;先集体对左边界排序&#xff0c;然后从第1个区间开始&#xff0c;当下一个区间的左边界比该区间的右边界要小的时候&#xff0c;就得去掉这个区间&#xff08;count&#xff09;&#xff0c;然后应该①直接更新该区间的右边…

Java根据模板文件生成excel文件,同时将excel文件转换成图片

需求 需要将指定数据导出成表格样式的图片&#xff0c;如图 业务拆解 定义一个导出模板将得到的数据填入模板中&#xff0c;生成excel文件将ecxel文件转换成png格式的图片 代码实现 需要引入的依赖 <dependency><groupId>cn.hutool</groupId><artif…

架构篇04-复杂度来源:高性能

文章目录 单机复杂度集群的复杂度小结 从本篇开始&#xff0c;我们一起深入分析架构设计复杂度的 6 个来源&#xff0c;先来聊聊复杂度的来源之一高性能。 对性能孜孜不倦的追求是整个人类技术不断发展的根本驱动力。例如计算机&#xff0c;从电子管计算机到晶体管计算机再到集…

难道说 IT行业的下一个风口是鸿蒙开发吗?

按往年的习俗&#xff0c;在年底之季有很多HC都会缩减&#xff0c;尤其当下各种裁员的情况下&#xff0c;不管你是在哪个传统开发行业&#xff0c; 如&#xff1a;C/C、Java、前端、后端……等多少都会一股互联网寒流的影响。而今年却出现了一个怪现象&#xff0c;有个岗位在这…

AI客服发展现状与展望:期待技术进步带来更优质的服务体验

近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;越来越多的企业开始采用AI客服&#xff0c;以提高效率、降低成本。然而&#xff0c;一些用户反映AI客服存在回答不准确、难以理解个性化问题等问题&#xff0c;引发了对智能客服发展现状的关注。 在北京市民邹女士的…

网页设计(六)表格与表格页面布局

一、设计《TF43: 前端的发展与未来》日程表 《TF43: 前端的发展与未来》日程表 文字素材&#xff1a; 前端是互联网技术的重要一环&#xff0c;自上世纪80年代万维网技术创立以来&#xff0c;Web成就了大量成功的商业公司&#xff0c;也诞生了诸多优秀的技术解决方案。因其标…

SimMIM: a Simple Framework for Masked Image Modeling

论文名称&#xff1a;SimMIM: a Simple Framework for Masked Image Modeling 发表时间&#xff1a;CVPR2022 开源地址&#xff1a; 开源代码 作者及组织&#xff1a;Zhenda Xie, Zheng Zhang, Hu Han等&#xff0c;来自清华&#xff0c;微软亚洲研究院。 前言 本文提出一种新…

2024-01-17复盘和总结

今日复盘 今天是我失业的第一天&#xff0c;心里有点难受&#xff0c;但是没办法&#xff0c;生活需要继续。 1.做了什么&#xff1f; 今天早上9点出发&#xff0c;骑电动车去了闵行区的图书馆&#xff0c;在图书馆里优化了简历&#xff0c;把word版的简历变成了pdf版的简历…

import { ArrowRight } from “@element-plus/icons-vue“;

今天下午快被这个问题折磨疯了 虽然知道这个问题怎么产生的 但项目里那个碍眼的红线就是去不掉 后来才发现 这是插件的锅 我的心情 你知道我想要说什么的 想必能看到这篇文章的 也知道这个问题是怎么产生的 vue3ts使用的时候 默认是需要带上文件名的 但是引入el组件时 …

transbigdata笔记:轨迹切片

1 方法介绍 在transbigdata笔记&#xff1a;轨迹停止点和行程提取-CSDN博客中&#xff0c;已经可以把轨迹点拆分成停止点和行程点&#xff0c;但是行程点只有起止位置&#xff0c;不包含行程轨迹信息为了进一步分析车辆的行驶轨迹&#xff0c;需要从每次行程的时间段中提取轨迹…