【发布时间】:2019-07-02 05:02:52
【问题描述】:
我正在创建自定义 html 标签/元素,然后将通过 JavaScript/jQuery 动态添加这些标签/元素。我的最终目标是创建一个像<xt-vertical-layout height="30px" width="50px"></xt-vertical-layout> 这样的自定义元素,其中高度和宽度将设置渲染大小。我已经想出了如何创建自定义元素并拥有可以保存数据的自定义属性,但我似乎找不到修改渲染的方法。需要明确的是,我没有遇到 CSS 高度和宽度不起作用的问题。我的问题是,我可能有数百个大小不一的元素,这些元素在文档加载后被注入到 DOM 之前是未知的。
我最初研究了带有属性选择器的 CSS,但它似乎无法将属性的值向下传递到 CSS 规则中。同样,我研究了 CSS 的 attr() 函数,但似乎这只适用于 content。我发现了一些关于 CSS4 中所有属性都允许使用此功能的文档,尽管然后我读到一些内容说 CSS4 将不会被发布,而是 CSS 将开始按模块更新,所以似乎这还没有成为当前标准.
我们将不胜感激任何可以阐明这个主题的信息。我觉得有一些方法可以做到这一点,但不太确定如何。不过要明确一点,我不希望使用 JavaScript/jQuery 解析标记并使用 $().css() 或类似的东西修改该元素,因为这会修改实际标记。我的愿望是保持标记不变,属性修改渲染,类似于<img/> 标签的工作方式。
编辑:
我不介意在自定义元素的构造函数中使用 JS/jQuery 执行此操作,如果它可以在不修改内联 style 属性的情况下完成,并且保持标记不变。
【问题讨论】:
-
除非你考虑内联样式,否则我认为你不能用 CSS 做到这一点。我猜你有义务做一些 JS
-
如
style="height:30px"? -
是的,在这种情况下这很简单,但你有内联样式,如果你想稍后应用另一个 CSS,你必须处理特殊性问题
-
还有,你说的那个JS,是指修改内联样式属性,还是在自定义元素的构造函数中?如果这是第二个,我会喜欢(实际上更喜欢)那个。
-
用 JS 可以做很多事情。第一个想法是更改样式属性,但我们可以做其他事情,例如使用随机类/ID 为该元素生成唯一的 CSS
标签: javascript html css