[css] 写的css样式是否能被js所读到?如果可以如何读取?

haizhilin2013
2021-01-28 04:37:44 星期四
css
                    
                        
写的css样式是否能被js所读到?如果可以如何读取?
Comments per page
< Page 1 / 1 >
crush2020 2021-01-28 02:24:43

可以用js读取到
1.获取内联样式
// 获得元素,任意一种方式都可以(id,class,标签名)
var dv = document.getElementById("dv");
// 拿到获取元素的style属性
console.log(dv.style.width); // 100px

2.对于外联样式表或者头部的style标签内的样式表里的样式内容,用上面的方法无法获得,用getComputedStyle(element,pseudoElement)方法获得。
element为需要获得属性的元素,pseudoElement该元素的伪类,不需要写为null
// 获取元素
var dv2 = document.getElementById("dv2");
// 使用方法
console.log(getComputedStyle(dv2,null).backgroundColor); //rgb(0, 134, 179)

xujs0813 2021-01-28 03:18:09

element.style

  1. 获取内联样式(感觉没啥大用)
  2. 可读可写。因此可为元素设置新属性(很好)

element.currentStyle

  1. 兼容性差,IE支持,(pass 吧)
  2. 可获取元素当前样式

window. getComputedStyle(element, null)

  1. 可获取元素当前样式(很强)
  2. 兼容性好

element.getBoundClientRect()

  1. 获取元素相对视窗的位置信息(强)
  2. 兼容性好
my-csl 2021-01-28 12:46:51

获取内联样式的话直接获取dom元素即可,然后直接用dom可过去内联样式和设置内联样式

window. getComputedStyle(element, null)方法,可以获取元素当前样式,第一个参数为需要获取样式的dom元素,第二个参数是否要获取伪类,不需要则设置为null

element.currentStyle这是ie的写法

排行榜
今日答题答题排行
    未答的题
    更多>
      【关注作者公众号】 以面试驱动学习--前端剑解
      【公众号推荐】 不折腾的前端和咸鱼有什么区别

      学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布前端知识点(死磕自己,愉悦大家)。希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。在这千变万化,类库层出不穷的前端,建议大家不要等到找工作时,才狂刷题,提倡每日学习!欢迎大家关注3+1开源项目!希望大家每人去学习与思考!(不要为了谁而来,要为自己而努力!

      【关注官方公众号】 每天4:30-5:00推送
      【公众号推荐】 一起折腾前端算法
      【微信学习群】 备注3+1