读取CSS属性 (el.style.property读取不到的问题)

CSS多属性声明规则:分号、冒号与花括号的语法契约 CSS声明块是浏览器样式引擎解析和执行的基本单元,其本质是由花括号界定、分号终结、冒号绑定的键值对集合。理解这一结构不仅关乎语法正确性,更直接影响样式稳定性、层叠行为与渲染性能。分号缺失会导致后续声明静默失效,冒号误用会破坏属性值类型校验,而花括号边界错误则引发整块样式丢失。在响应式开发、动画控制及主题化实践中,多属性协同必须遵循声明独立性、简写重置逻辑与继承机制等底层原理。本文聚焦CSS rule的核心语法契约,结合真实调试案例,解析multiple properties如何安全、高效地共存于同一decl 阅读详情
分两种情况讨论:

1、使用内联样式,即直接把CSS写在HTML元素的style属性中

<div id="d1" style="width:100px;height:200px;">              
</div> 


通过以下js代码可以获取width等属性,

alert(document.getElementById('d1').style.width);//100px  


在firefox,ie,opera,safari,chrome上都可以取得到宽度和高度值。

2、使用嵌入、链入或引入样式表(非内联样式),这时候通过element.style.width是获取不到的。

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>b.html</title>	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <style type="text/css">
    	#d2 {
    		width:400px;
			height:200px;
			border:5px solid gray;
			padding:5px;
    	}
    </style>    
	<script>
		window.onload=function(){
			
			//2、使用嵌入、链入或引入样式表(非内联样式)
			
			//ie:通过currentStyle			
			alert(document.getElementById('d2').currentStyle.width);//400px ie
			
			//ff,safari,opera,chrome:通过window.getComputedStyle
			var el=document.getElementById('d2');
			alert(window.getComputedStyle(el,null).style.width);//400px safari,opera,chrome
		}
	</script>
  </head>
  
  <body>		
		<div id="d2"></div>
  </body>
</html>


最后封装到一个方法中,

function getRealStyle(el,cssName)
{				
	var len=arguments.length, sty, f, fv;
					
	'currentStyle' in el ? sty=el.currentStyle : 'getComputedStyle' in window 
						 ? sty=window.getComputedStyle(el,null) : null;
						 				
	if(cssName==="opacity" && document.all){
		f = el.filters;
	    f && f.length>0 && f.alpha ? fv=f.alpha.opacity/100 : fv=1;           		
		return fv;
	}	
	cssName==="float" ? document.all ? cssName='styleFloat' : cssName='cssFloat' : cssName;	
	sty = (len==2) ? sty[cssName] : sty;								
	return sty;
}	


如果只想获取元素的style对象,则只传第一个参数,第二个参数是获取该对象style属性为styName的值。

 

参考 :currentStyle对象参考 http://topic.youkuaiyun.com/u/20070530/11/ba52d8be-1c9d-4e01-b036-cc29bd98278a.html
CSS placeholder兼容性原理与工程化实践指南 placeholder是HTML表单中用于提示用户输入内容的临时文本,其本质并非普通文本节点,而是由浏览器引擎动态注入的伪元素。由于WebKit、Gecko、Blink和Trident四大渲染引擎对::placeholder的实现存在根本性差异,导致CSS属性支持度、层叠行为和继承规则高度不一致。这种碎片化不仅引发颜色、字体、透明度等基础样式失效,更在深色模式切换、动态主题计算及跨端小程序中触发隐蔽渲染异常。通过CSS自定义属性、PostCSS自动化前缀注入、Design Token驱动配置及运行时视觉回归 阅读详情

相关推荐

大屏适配新解法:用 CSS transform scale 替代 rem

大屏适配本质是保障视觉一致性,而非像素级等比缩放。传统 rem 方案依赖根字体动态计算,易引发布局抖动、嵌套错乱与性能瓶颈;而基于 CSS transform: scale 的方案通过全局画布缩放,实现 O(1) 复杂度的无损适配。其核心原理是依据视口与设计稿宽高的最小比值确定缩放因子,并锁定 top left 为变换原点,兼顾内容完整性与可读性。该技术显著提升 Vue3 大屏项目开发效率与运行时稳定性,适用于指挥中心、智慧园区等对实时性与显示精度要求严苛的工业级场景。

weixin_34204722的博客 471

DOM操作核心原理:属性、特性与样式的三层关系

DOM(文档对象模型)是浏览器将HTML解析为可编程JavaScript对象的核心机制。理解其底层原理,关键在于厘清属性(attributes)、特性(properties)和样式(styles)三者的本质差异与协同逻辑:属性对应HTML源码的静态文本,特性反映JS运行时的动态状态,而样式则需区分内联设置、CSS规则层叠与浏览器最终计算值。这种分层设计决定了为何setAttribute('value')无法更新输入框内容,而element.value可以;也解释了classList为何比className赋

weixin_30394981的博客 428

DOM本质解析:从HTML到JS对象树的完整映射

DOM(文档对象模型)是浏览器将HTML源码解析为内存中可操作JavaScript对象的核心机制,其本质是HTML文本到结构化JS对象树的运行时映射。它遵循词法分析→语法分析→DOM树构建三阶段原理,生成包含Element、Text、Comment等节点类型的动态数据结构。这一机制赋予前端对网页元素进行增删改查、事件绑定与样式控制的技术能力,广泛应用于交互开发、动态内容渲染、表单验证及Web组件实现。理解DOM节点关系、访问路径与生命周期,是解决null报错、事件委托失效、动态内容更新异常等高频工程问题的基

weixin_33743661的博客 530

HTML DOM style属性操作

dom.style.property:通过元素的style属性间接操作css样式 一,修改颜色 title.style.color:修改节点的颜色 <body> <h1 id="title">修改颜色</h1> </body> <script> let title = document.getElementById("...

JayYuen的博客 3983

从零开发浏览器插件:为DeepSeek Harness打造Galgame风格界面

浏览器插件开发是前端工程中的重要实践,它通过内容脚本、DOM操作和样式注入等技术,实现对网页界面的无侵入式定制。这项技术的核心价值在于能够在不修改原网站代码的前提下,为用户提供个性化的视觉与交互体验,广泛应用于主题美化、功能增强等场景。本文以DeepSeek Harness的Galgame风格改造为例,详细解析了如何利用Chrome Extension的manifest配置、MutationObserver监听和CSS样式注入等关键技术,实现从界面换肤到交互增强的完整流程。通过这个案例,开发者可以掌握插件开

weixin_30813225的博客 311

ADS入门学习笔记——低噪声放大器(2)

1、输入匹配网络; 2、输出匹配网络;

weixin_42126696的博客 4990

js获取html元素宽度的思考

<br /> <br />分两种情况讨论:<br />1、使用内联样式,即直接把CSS写在HTML元素的style属性中<br /><div id="d1" style="width:100px;height:200px;"> </div> <br /> <br />通过以下js代码可以获取width等属性,<br />alert(document.getElementById('d1').style.width);//100px <br /> <br />在firefox,ie,opera,saf

zhouruitao的专栏 8546

PyTorch版Unet训练后别只看loss:手把手教你计算并可视化多类别语义分割的mIoU(附完整代码)

本文详细介绍了在PyTorch中使用Unet模型进行多类别语义分割后,如何计算和可视化mIoU(mean Intersection over Union)以全面评估模型性能。通过完整的代码示例和实用技巧,帮助开发者从loss优化转向更精准的区域分割评估,特别适用于医学图像分析等关键场景。

weixin_30906185的博客 435

property和attribute,以及获取设置属性

在这里插个眼,说实话,没太明白 区别和相同 一般的内联属性为property和attribute共有,但自定义属性(内联样式中)为attribute所有。 attribute中的class在property中叫做className(在取值和赋值时注意) 取值和赋值(设值)的区别: 3.1.attribute的取值和赋值:getAttribute(‘属性名’,‘属性值’),setAttribute(‘属性名’,‘属性值’) 3.2.property的取值和赋值分别为:变量=对象.属性;对象.属性=属性值(不

m0_53438035的博客 684

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。

qq_30713721的博客 3471

强化学习入门8—深入理解DDPG

本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG。DDPG是google DeepMind团队提出的一种用于输出确定性动作的算法,它解决了Actor-Critic 神经网络每次参数更新前后都存在相关性,导致神经网络只能片面的看待问题这一缺点。同时也解决了DQN不能用于连续性动作的缺点。

小菜羊的博客 4314

vue-loader TypeError: Cannot read properties of undefined (reading ‘styles‘)问题解决

这是由于webpack和vue-loader版本不兼容造成,可以尝试把vue-loader版本降到16以下,vue-loader

My_Soul_的博客 6002

【Unity3D】关于unity中spriteAtlas的打包方案及使用时内存状态的多组对照实验

unity项目中使用精灵(Sprite)为了降低性能消耗,我们可以使用精灵图集(Sprite Atlas)技术,它能够将多个纹理合并成一个大纹理

云渊寒烬 5100

css - 如何修改element.style样式

问题: 我们在写前面 web页面样式的时候,会发现有些时候,我们怎么修改style里面的值,页面上的样式都不会修改,当你用工具查看时,会发现里面会有element.style的值,这个值还找不到是在哪里出现的,还修改不了。 原因: 其实element.style是一种内联样式,很多情况下是在一些JavaScript代码里写死的,这种方法相当不好。但是有些时候,我们在使用第三方js文件时,会遇到。 解决办法: 那么我们如何去修改它呢,在源代码中 用!important 语法优先权来实现我们想要的效果

weixin_42365757的博客 3100

Dify 本地插件安装失败?别慌,这篇教程手把手教你解决(解决 the plugin you want to install has a bad signature 报错的问题)

🤯dify安装本地插件报错 PluginDaemonBadRequestError: plugin verification has been enabled, and the plugin you want to install has a bad signature。的解决方案!

XiaoqiangClub的博客 3984

【图像去噪】基础知识之加噪 | 给图像加噪的若干种方式,包括加高斯白噪声(AWGN)、泊松-高斯噪声、模拟真实噪声(SIDD、DND)等

本文介绍给干净图像加噪的若干种方式,新手入门必看!。根据noise类型不同,产生不同的Noisy,Noisy一般是模型输入。【图像去噪】基础知识之图像流 | 图像从输入到输出的前世今生,包括类型变化、维度变化、数值变化等。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1099

jQuery属性与样式操作核心原理:attr、prop、data、css四大API详解

DOM操作是前端开发的底层基石,理解HTML属性(Attribute)与JavaScript属性(Property)的本质差异,是掌握动态交互的关键前提。jQuery通过.attr()、.prop()、.data()和.css()四套API,分别抽象了结构标记、状态控制、临时数据挂载与样式干预等核心能力。其中,.prop()精准映射布尔控件状态(如checked、disabled),.attr()维护HTML源码一致性,.data()提供类型安全的私有存储,.css()则覆盖内联样式、计算值读取与批量设置三

chuji3953的博客 482

RT-Thread必考面试题及参考答案

RT-Thread的设备驱动模型遵循层次化的结构,设计简洁且易于扩展。它主要由设备注册、设备操作和设备控制三部分组成。设备驱动模型允许开发者为不同的硬件设备编写驱动程序,这些驱动程序可以被RT-Thread内核统一管理和调度。在RT-Thread中,设备被抽象成一系列标准的接口,包括打开、关闭、读取、写入、控制等操作,这些操作封装在结构体中。设备驱动程序需要实现这些接口,然后通过调用函数注册设备,使其对系统可见。这种模型不仅简化了驱动开发,还提高了代码的可移植性和可维护性。

大模型大数据攻城狮的专栏 1823

jQuery属性与样式操作原理:attr()、prop()、css()、addClass()核心区别

在Web前端开发中,DOM元素的属性(Attribute)与属性(Property)存在本质差异:前者是HTML源码中的字符串快照,后者是运行时的JavaScript对象状态。理解这一区分是掌握jQuery操作逻辑的基础。jQuery通过attr()管理初始化配置与标记,prop()控制交互状态(如disabled、checked),css()提供内联样式的强干预能力,而addClass()系列则实现声明式、可复用的CSS类名管理。这种分层设计兼顾了浏览器兼容性、性能优化与工程可维护性,尤其适用于遗留系统维

diedangxiang4092的博客 408

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

JavaScript DOM操作三要素:属性、类名与样式的精准控制

DOM(文档对象模型)是前端开发的核心基础,它将HTML结构映射为可编程的JavaScript对象。理解HTML attributes(属性)、DOM properties(属性状态)和computed styles(计算样式)三层差异,是实现稳定交互的前提。attributes用于声明元数据(如data-*、aria-*),properties反映实时状态(如value、checked),而classList和style.property则分别承担样式开关与动态内联样式的原子化操作。掌握这些机制不仅能避免

weixin_30500473的博客 414

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jQuery属性与样式操作:attr/prop区别及DOM状态控制原理

在前端开发中,DOM元素的属性(attribute)与特性(property)是两个易被混淆的基础概念——前者是HTML源码中的字符串声明,后者是JavaScript运行时的类型化状态。理解这一区别,是掌握表单控制、无障碍适配、动态主题切换等工程实践的前提。jQuery通过attr()和prop()方法显式分离这两层抽象,为开发者提供可预测的DOM操作路径。其样式操作体系(css()、addClass()、show()/hide())则进一步封装了内联样式、CSS类名与语义化显隐的协同逻辑。本文结合真实业务

diedangxiang4092的博客 387

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

jQuery attr与prop区别:DOM属性操作核心指南

在Web前端开发中,HTML元素属性与DOM属性是理解浏览器渲染机制的基础概念。attr方法操作的是HTML源码中的字符串属性,而prop方法访问的是JavaScript对象的实时状态属性,二者在类型、生命周期和语义上存在本质差异。掌握这一区分对解决表单状态同步、动态资源加载、无障碍支持等工程问题具有关键价值。尤其在维护jQuery遗留系统时,混淆attr与prop极易引发checked状态失效、src更新不刷新、class覆盖等典型故障。本文结合真实兼容性案例,系统解析属性操作的技术原理与最佳实践。

dejz8829的专栏 537

原生Web动画交互实战:用HTML/CSS/JS打造高性能动态体验

在Web前端开发中,动画与交互是提升用户体验的关键技术。其核心原理在于通过CSS的transition、transform和@keyframes等原生属性,结合JavaScript的事件监听与状态管理,实现视觉元素的动态变化。这种技术方案的价值在于零依赖、高性能和完全可控,能够有效引导用户注意力、增强操作反馈。在应用场景上,广泛用于页面过渡、数据可视化、表单验证和组件微交互等。本文聚焦于Animated interactive HTML的实现,通过一个交互式图片画廊的完整构建过程,详细拆解了如何利用原生We

abxlep7702的博客 491

10个高性能JavaScript动效实战:CSS硬件加速+无障碍优化

网页动效是提升用户体验与转化率的关键技术能力,其本质是通过视觉反馈强化用户操作意图、降低认知负荷。核心原理在于合理运用浏览器渲染机制——仅对transform和opacity等可硬件加速的属性做动画,避免触发重排重绘;结合IntersectionObserver、requestAnimationFrame等现代API实现高性能驱动。技术价值体现在首屏停留时长提升38%、CTA点击率上升22%等可量化指标,同时兼顾prefers-reduced-motion降级与ARIA规范,保障无障碍可用性。典型应用场景包

天下无双 360

企业级页面淡入方案:opacity与visibility协同控制详解

页面淡入是前端动效中最基础也最易被低估的交互模式,其本质是浏览器渲染流水线中Composite阶段对opacity等可合成属性的高效利用。理解opacity仅控制视觉透明度、而visibility才真正移除语义与交互影响,是实现无障碍、防误点、零布局抖动的关键。结合requestAnimationFrame精准触发、transitionend事件可靠监听及SSR内联样式预置,可构建兼容Vue/React路由、通过Lighthouse动画评分≥95分的生产级方案。本文聚焦opacity与visibility协

weixin_34133829的博客 344

CSS锥形渐变conic-gradient原理与实战:色轮、进度条、仪表盘

锥形渐变(conic-gradient)是CSS中基于极坐标系的高级渐变类型,区别于线性渐变和径向渐变,它以角度(deg/turn)和中心点(at)为控制维度,实现360°连续色彩过渡。其核心原理是为每个像素计算相对于指定原点的极角θ,并依此插值颜色停止点,因而天然适配色轮、环形进度条、HSL调色器等角度敏感型UI组件。技术价值在于减少JavaScript坐标计算、规避Canvas/D3依赖、提升渲染性能与可访问性;典型应用场景包括纯CSS圆形进度条、可拖拽色轮控件、雷达图刻度生成、液态玻璃高光模拟及动态仪

weixin_34021089的博客 448
上一篇: js卷轴滚动 鼠标拖动滚动。例子
下一篇: 浅谈Css盒模型在FF和IE中的区别
lisatisfy
博客等级 码龄17年 17粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值