使用 Javascript 更改 CSS 值

2024-02-02

使用 javascript 设置内联 CSS 值很容易。如果我想改变宽度并且我有这样的html:

<div style="width: 10px"></div>

我需要做的就是:

document.getElementById('id').style.width = value;

它将更改内联样式表值。通常这不是问题,因为内联样式会覆盖样式表。例子:

<style>
   #tId {
      width: 50%;
   }
</style>

<div id="tId"></div>

使用这个 JavaScript:

document.getElementById('tId').style.width = "30%";

我得到以下信息:

<style>
   #tId {
      width: 50%;
   }
</style>

<div id="tId" style="width: 30%";></div>

这是一个问题,因为我不仅不想更改内联值,如果我在设置宽度之前查找宽度,当我有:

<div id="tId"></div>

返回的值是 Null,所以如果我有 Javascript 需要知道某些东西的宽度来执行某些逻辑(我将宽度增加 1%,而不是特定值),当我期望字符串“50%”时返回 Null “真的不起作用。

所以我的问题是:我的 CSS 样式中的值不是内联的,如何获取这些值?给定 id,如何修改样式而不是内联值?


好吧,听起来您想更改全局 CSS,以便立即有效地更改特定样式的所有元素。我最近从一个人那里学会了如何自己做这件事肖恩·奥尔森教程 http://www.shawnolson.net/a/503/altering-css-class-attributes-with-javascript.html。可以直接参考他的代码here http://www.shawnolson.net/scripts/public_smo_scripts.js.

总结如下:

您可以检索样式表 https://developer.mozilla.org/En/DOM/Stylesheet via document.styleSheets。这实际上会返回页面中所有样式表的数组,但您可以通过document.styleSheets[styleIndex].href财产。找到要编辑的样式表后,您需要获取规则数组。这在 IE 中称为“规则”,在大多数其他浏览器中称为“cssRules”。讲述什么的方式CSSRule https://developer.mozilla.org/en/DOM/cssRule#CSSStyleRule你现在是在selectorText财产。工作代码看起来像这样:

var cssRuleCode = document.all ? 'rules' : 'cssRules'; //account for IE and FF
var rule = document.styleSheets[styleIndex][cssRuleCode][ruleIndex];
var selector = rule.selectorText;  //maybe '#tId'
var value = rule.value;            //both selectorText and value are settable.

让我知道这对你来说是如何工作的,如果你发现任何错误,请发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Javascript 更改 CSS 值 的相关文章

随机推荐

  • 使用 python 正则表达式仅替换字符的单个实例

    我正在尝试更换单身 带有其他内容的字符 并且想要忽略多个 连续的字符 我不太明白如何 我尝试使用前瞻 s a b c d re sub z s 这给了我 za zb zc zd 当我想要的是 za b c zd 我究竟做错了什么 注意 如果
  • 是否可以使用WCF与Windows内核模式软件进行通信?

    WCF 支持一些互操作性绑定 这些绑定是否允许与内核模式 sw 通信 AFAIK 内核模式 sw 可以打开命名管道 在Local System安全上下文 这些命名管道可以与 WCF 互操作吗 是的 您应该能够使用 WCF 中的命名管道绑定来
  • 如何从 C# 应用程序调用带有 void 指针的 C++ 函数?

    我有一个动态库 dll 用 C 编写 导出我想在 C 应用程序中使用的函数 int SendText void pControl char sText 鉴于它需要一个指向 void 的指针 我该怎么办 for void 你可以使用IntPt
  • 如何添加在 OSX 上按预期工作的菜单项分隔符?

    On Windows平台 与VCL 当我们想要添加一个分隔器在菜单中 我们添加一个TMenuItem with a Caption With 火猴 我们添加一个TMenuItem with a Text 它在 Windows 平台上按预期工
  • QtCreator Build 不会更新设计表单中的 UI 更改

    我的 Qt 项目使用影子构建 当我更改 MainWindow 表单 ui 文件 时 我构建了项目 但我的程序没有更新 GUI 如果我重建所有 GUI 将被更新 但重建速度非常非常慢 我尝试创建一个新项目 带有一些标签的空 QMainWind
  • MKMapView:获取注释图钉上的点击事件

    我正在使用一个MKMapView包含几个MKAnnotation pins 在地图上方我显示了UITableView的详细信息MKAnnotation pins 我的问题 当我选择一个引脚时 我想选择相应的表格单元格 为此 如果选择了引脚
  • show() 接受 1 个位置参数,但给出了 2 个

    我对我一直在处理的代码得到了一些很好的反馈 并且我已经得到了在 google collab 上运行的所有内容 但是当我在 Visual studio 上运行完全相同的代码时 我得到的错误是这样的 发生异常 类型错误 show 接受 1 个位
  • 一个好的 Java 排序列表

    我正在寻找一个好的java排序列表 谷歌搜索给了我一些关于使用 TreeSet TreeMap 的提示 但这些组件缺少一件事 随机访问集合中的元素 例如 我想访问排序集中的第 n 个元素 但对于 TreeSet 我必须迭代其他 n 1 个元
  • tkinter 小部件 ipad(x/y) 的工作方式与 pad(x,y) 不同

    我可以自定义外部填充所有四个侧面tkinter 小部件的使用 widget grid 0 0 padx left pad right pad pady top pad bottom pad 但是 当我更换padx and pady with
  • 对所有数组元素进行类型检查

    是否有任何简单的方法可以检查数组的所有元素是否都是特定类型的实例 而无需循环所有元素 或者至少有一种从数组中获取 X 类型的所有元素的简单方法 s array abd 10 10 1 s array map gettype s t arra
  • 函数的右值引用和返回值

    我是 c 11 的新手 在阅读时有以下问题C 11 常见问题解答 http www stroustrup com C 11FAQ html rval 假设我们有一个函数f 返回类型的值X 那么我们有以下几种方式来存储它的返回值 X a f
  • 无法更改 Google Cardboard 相机的 FOV

    我正在使用 Google Card Board Unity SDK 开发 Android 狙击手游戏 现在需要调整相机的 FOV 这导致我与 CardBoard cs 中名为 mockFieldOfView 的变量进行交互 在 Unity
  • Vue-cli 3:“命令失败:npm install --loglevel 错误”

    每次我尝试创建一个新项目 vue create my project 我收到此错误 错误 命令失败 npm install loglevel 错误 我使用的是 PC Windows 10 Vue cli 3 2 1 Node 8 11 3
  • 如何将 ReadonlyArray 转换为 any[]?

    一些本机角度函数返回 ReadonlyArray 一些本机角度回调传递 ReadonlyArrays 由于我的打字稿代码可能以多种方式调用 因此我不想要求传递给我的函数的所有数组都是 ReadonlyArrays 因此我需要将 Readon
  • 在 Android 中使用新 Material Design 主题的颜色

    我正在设计 Android 应用程序 并决定尝试新的 Material 主题 我在网上找到了新主题的所有可用配色方案 但无法找到包含调色板中所有颜色的相应 xml 文件 有谁知道我在哪里可以找到这个 以便我可以在我的风格中使用这些颜色 这是
  • 无法将脚本名称识别为 cmdlet、函数等;在简单的脚本中也找不到位置参数

    我正在尝试做我的第一个剧本 要简单地让 PowerShell 提取在记事本中输入的脚本并保存为标题为 test 的 ps1 文件 也尝试过脚本 但知道名称与它无关 Write Host Hello World 在 PowerShell 中我
  • ImageView和设置位置

    我有 imageView 活动 我如何在我的活动中设置此 imageView 的位置 我知道如何在 xml 文件中执行此操作 但我想在活动中执行此操作 因为我有 onTouch 方法 可以在其中获取单击的坐标 并且我想在此坐标中绘制此图像
  • 编辑链接列表中的节点

    我正在创建一个学生列表 链接列表 可以添加 查看和编辑学生信息 我有两个字段 即学生姓名和学生成绩 我在列表中添加新学生 其方式是根据学生的成绩降序排列 我已经完成了添加和查看部分 问题出在编辑部分 因为我需要编辑信息 然后我需要再次对其进
  • 将数据表放入shinyjs模式中

    我将 Shiny 与 Shiny Semantic 库一起使用 以使应用程序看起来不错 使用 showModal modalDialog 的标准 Shiny 弹出消息不适用于 Semantic UI 因此我求助于shinyjs 来使用一些
  • 使用 Javascript 更改 CSS 值

    使用 javascript 设置内联 CSS 值很容易 如果我想改变宽度并且我有这样的html div style width 10px div 我需要做的就是 document getElementById id style width