Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript css是否有类似于data-*的属性?_Javascript_Css - Fatal编程技术网

Javascript css是否有类似于data-*的属性?

Javascript css是否有类似于data-*的属性?,javascript,css,Javascript,Css,我想传递一个在样式表中设置的值,以便javascript/jQuery可以读取它?我曾想过创建一个不可见的元素并赋予它一个值,但随后我不得不在所有页面中包含该元素,这是非常粗糙的。我只是想知道是否还有其他选择 我有一个js resize脚本,用于根据面积(而不是高度或宽度)调整图像大小,因此我无法为其提供maxwidth或maxheight本身。如果你给它100,它使图像的面积=100^2。我想我可以将元素的maxWidth设置为我想要的数字的两倍,但我只是想知道是否有更经典的方法来实现它。为什

我想传递一个在样式表中设置的值,以便javascript/jQuery可以读取它?我曾想过创建一个不可见的元素并赋予它一个值,但随后我不得不在所有页面中包含该元素,这是非常粗糙的。我只是想知道是否还有其他选择


我有一个js resize脚本,用于根据面积(而不是高度或宽度)调整图像大小,因此我无法为其提供maxwidth或maxheight本身。如果你给它100,它使图像的面积=100^2。我想我可以将元素的maxWidth设置为我想要的数字的两倍,但我只是想知道是否有更经典的方法来实现它。

为什么不直接使用javascript查询实际的元素,并以这种方式读取其属性呢?那么你就根本不依赖CSS了


$('someDiv').getWidth()

据我所知,浏览器会丢弃它们不理解的属性,因此很遗憾,您不能只注入自己的数据-*。我认为您可能必须通过一个隐藏的元素来实现这一点,如下所示,它使用了属性:

# styles.css
.data {
  display: none;
  content: "my data variable"
}

# index.html
<span class="data"></span>


# javascript
myData = $(".data").css('content')

虽然不确定跨浏览器的工作情况如何,但也看看w3c规范,它说“内容”必须与:before或:after一起使用,所以不确定您是否会遇到验证问题。

这是可能的,但您能否详细解释原因?这个请求看起来很奇怪。我解释了我需要它的原因,但我可以对它进行一些扩展。如果使用
css
而不是
attr
,第一个示例就可以工作。整洁的我在w3c规范中找不到它。它是要做的规范吗。数据:在{content:“element

”}之后?这样内容就可以用javascript引用了?我正在尝试上面用jsfiddle编写的代码,而元素本身的内容在Chrome中似乎根本不起作用:(这是文档,。我想你需要这样做。数据:之后,不确定是否要将html标记放入其中。使用@Dennis(上图)中的JSFIDLE)您可以看到它的实际作用,jsfiddle.net/VjF3d/1。虽然如果您将jQuery选择器与:after…一起使用,它看起来会变得很奇怪,但我认为这是jQuery专家的一个问题。
# styles.css
img {
  content: "100"
}