如何将自定义 css 应用于 ionic 4 组件?

Posted

技术标签:

【中文标题】如何将自定义 css 应用于 ionic 4 组件?【英文标题】:How to apply custom css to ionic 4 components? 【发布时间】:2019-12-29 05:46:09 【问题描述】:

我经常遇到不知道要为离子组件更改什么 css 的问题。例如,我有一个使用 ionic 勾勒的按钮,我最初的猜测是用类似的东西覆盖它的轮廓/边框颜色。

border: 1.2px solid #697954; 

但这没有用,所以我基本上只需要浏览论坛帖子,直到我发现它改变了

--border-color

这似乎是一种非常低效的查找如何覆盖离子组件 css 变量的方法。

我在哪里可以找到确切的 css ionic 用于其组件的内容,这样我就可以轻松地覆盖它们而无需浏览论坛帖子?我在 github 上检查了 ionic core.css,但这并没有给我想要的信息。

知道我的边框颜色设置正确,但我需要更改 onclick 背景颜色和 onclick 文本颜色。我不想再翻遍论坛了。

【问题讨论】:

Ionic 4 custom styling Shadow DOM的可能重复 【参考方案1】:

从 Ionic 4 开始,组件视图被封装在一个 shadow dom 中,因此不能轻易地被 css 覆盖。每个组件都有自己的文档来说明如何覆盖常见的 CSS 属性,例如:https://ionicframework.com/docs/api/button#css-custom-properties

有许多指南可用于了解有关设置 shadow dom 样式的更多信息,例如:https://www.joshmorony.com/styling-a-shadow-dom-in-ionic-4/

可以在此处找到与应用于按钮的示例的类似讨论: Ionic 4 custom styling Shadow DOM

在某些情况下,Ionic 文档并不总是与组件可用的最新 CSS 变量保持同步。找出可用变量的可靠方法是在 Github 上查看组件 CSS 的主源代码。

例如,如果我想查看ion-range 组件可以使用哪些变量,我会查看range.md.scss file:

:host 
  --knob-border-radius: 50%;
  --knob-background: var(--bar-background-active);
  --knob-box-shadow: none;
  --knob-size: 18px;
  --bar-height: #$range-md-bar-height;
  --bar-background: #ion-color(primary, base, 0.26);
  --bar-background-active: #ion-color(primary, base);
  --bar-border-radius: 0;
  --height: #$range-md-slider-height;
  --pin-background: #ion-color(primary, base);
  --pin-color: #ion-color(primary, contrast);

  @include padding($range-md-padding-vertical, $range-md-padding-horizontal);

  font-size: $range-md-pin-font-size;

在这里我们可以看到主机组件的所有可用变量(在本例中为ion-range)。

【讨论】:

谢谢!这是对我的问题的非常彻底的回答。我害怕无法在文档中找到最新的东西,所以知道它都在 github 上会为我将来省去一些麻烦。

以上是关于如何将自定义 css 应用于 ionic 4 组件?的主要内容,如果未能解决你的问题,请参考以下文章

php 将自定义CSS应用于管理区域

php 将自定义CSS应用于管理区域

php 将自定义CSS应用于WordPress管理员

php Wordpress管理样式 - 将自定义CSS应用于管理区域

将自定义 css 添加到 React-Bootstrap 组件

如何将自定义按钮应用于 Android Studio 中的活动?