【发布时间】:2020-10-12 05:24:55
【问题描述】:
如何在 Ionic 框架中设置<ion-select> 组件的默认/占位符文本的样式?默认文本位于 shadow root 内,因此 HTML 元素有一个“select-placeholder”类,无法通过传统 CSS 访问。
framework.com/docs/api/select#css-custom-properties
ion-select 的文档提到使用自定义属性,但只有两个自定义属性:
--placeholder-color
--placeholder-opacity
两者都可以很好地更新颜色和不透明度,但我真的很想专门更新字体粗细和字体样式,并且没有自定义属性。
Ionic team mentions 表示如果没有自定义属性,“访问元素的影子根并在 JS 中自己应用样式”。但他们没有详细说明如何做到这一点。
具体来说,如何在未提供自定义属性的 Ionic 组件的影子根中添加样式?
【问题讨论】:
-
您能给您的
ion-select提供一个ID 并检查document.getElementById("the-id").shadowRoot.querySelector(".select-text").class返回的内容吗? -
它返回“未定义”,但如果我将“class”更改为“className”,它会返回该元素上的 2 个类:“select-text select-placeholder”
-
所以,根据你的建议,我尝试了这个: document.getElementById("mySelectBoxThing").shadowRoot.querySelector(".select-text").style.color = "hotpink" 这很有效。但想知道是否有更好的方法。
-
我使用 Ionic4 是因为它的价值。
标签: css ionic-framework ionic4 shadow-dom