ionic5/angular11通过修改ShadowRoot样式更改ionic UI组件原样式

2023-11-15

通过浏览器调试可以找到需要更改的UI组件样式,找到其CSS class类名后,通过CSS无法直接修改样式,需要使用shadowRoot.appendChild();方法注入新的样式覆盖原来的样式达到修改原样式的目的。

一、编写HTML

<ion-header >
  <ion-toolbar>
    <ion-title>
      Tab 2
    </ion-title>
  </ion-toolbar>
</ion-header>

<ion-content >
  <ion-item>
    <ion-datetime #date displayFormat="MMMM" value="2012-12-15T13:47:20.789"></ion-datetime>
  </ion-item>
  <ion-button (click)="changeStyle()">点击变色</ion-button>
</ion-content>

二、编写CSS

.datetime-text{
    color:red !important;
}

三、编写TS代码

import { Component,ViewChild,Renderer2 } from '@angular/core';

@Component({
  selector: 'app-tab2',
  templateUrl: 'tab2.page.html',
  styleUrls: ['tab2.page.scss']
})
export class Tab2Page {
  @ViewChild("date") date:any;

  styleSheetDate:string = `
  .datetime-text{
    color:red !important;
}
`;
  constructor(private renderer2:Renderer2) {}
  //修改样式
  changeStyle(){
    this.injectStyleToShadowRoot(this.renderer2,this.date.el,this.styleSheetDate)
  }
  //向ShadowRoot注入样式表覆盖修改原样式
  //Renderer2:angular提供操作DOM的类
  //Element:指定需要操作的DOM
  //string:向ShadowRoot里注入的样式表
  injectStyleToShadowRoot(renderer: Renderer2, element: Element, styleSheet: string) {
      const style = renderer.createElement('style');
      style.innerHTML = styleSheet;
      element.shadowRoot.appendChild(style);
  }
}

四、运行代码

4.1、可以看到CSS样式并没有生效,通过浏览器调试找到CSS class类名没有错误。

 

4.2、通过点击按钮向ShadowRoot里注入新的样式表覆盖原来的样式,改变字体颜色为红色。

可以看到现在通过shadowRoot.appendChild()方法注入的样式生效了,浏览器调试查看样式,生成了一个<style>标签注入了新的样式表覆盖原样式。

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

ionic5/angular11通过修改ShadowRoot样式更改ionic UI组件原样式 的相关文章

  • Ionic 2 占位符文本样式

    我正在使用 Ionic 2 rc0 开发一个应用程序 并且整个应用程序中有几个仍然需要样式设置的输入字段
  • 如何使用material2工具栏、按钮和Angular-CLI路由器

    我有以下文件 html
  • CSS Overflow 属性在 iPad 中不起作用

    我正在为 iPad 设计一些 html 页面 在尝试像 yscroll auto 这样的 css 溢出属性时 iPad 中没有出现滚动条 内容也没有滚动 我在 ipad 模拟器和设备中尝试过 有没有其他方法可以实现这个属性 请帮帮我 提前致
  • iOS 11 浏览器图像错误

    在 iOS 11 中滚动页面时出现以下错误 在 Firefox Safari 和 Chrome 中 在 Android 设备中 不会发生该错误 这些是背景图像 我不知道这是否是导致错误的原因 图 2 显示了图像在 Android 中的用途和
  • 如何在 Angular 中实现使用 google 登录

    我正在尝试在我的角度应用程序中实现谷歌登录功能 我这里用了两个包 abacritt angularx social login and angular oauth2 oidc 我创建了一个名为的自定义提供程序google authentic
  • 角度 - 传递管道作为变量

    如何存储和使用变量中的管道信息 我已经搜索了很多 但找不到解决方案 我想要实现的是将任何有效的管道信息作为变量 小数 百分比 日期 自定义等 传递 下面是一个简单的例子 父组件 ts columnsDef value 0 35 pipeIn
  • 响应式网格布局框架[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Angular 2在实例化子组件之前解析根组件

    当我刷新网络应用程序时 我希望它在实例化任何组件或路由之前请求潜在的登录用户数据 如果找到用户的数据 我想将其注入到我的所有其他子组件所依赖的服务中 场景 假设我有 3 个组件 应用程序 ROOT 主页和关于 如果我将此代码放在 About
  • 在 Angular 材质表上调用 renderRows()

    我试图在更新表中使用的数据后刷新我的 Angular 表 文档说 您可以通过调用其 renderRows 方法来触发对表的渲染行的更新 但它不像普通的子组件 我可以使用 ViewChild MatSort sort MatSort 因为我不
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • jquery:当我在文档上附加一层时,如何重置文档滚动条?

    当我在文档上附加图层时 如何重置文档滚动条 例如 它就像 Facebook 页面 当您有一个很长的文档时 您需要向下滚动才能查看较旧的图像 帖子 当你点击照片时 滚动条发生了变化 从顶部开始 但文档页面根本不跳转 当关闭照片查看器图层时 滚
  • 更改离子搜索栏的占位符和清晰图标颜色不是全局的吗?

    我有两个离子搜索栏 我只需要更改其中之一的占位符和清除图标颜色
  • 由于绝对定位的抽屉,移动键盘可以向上推内容

    我正在制作一个带有 3 个抽屉的网站 元素绝对位于屏幕外 一个在左侧 一个在右侧 一个在底部 看看这里的网站 看看我在说什么https sjbuysse github io javascriting index html https sjb
  • 如何将元素浮动到水平居中元素的左侧或右侧?

    对于分页 我想使用元素的水平对齐方式 如下所示
  • JavaFX ScrollPane 样式

    我正在尝试在 JavaFX 中创建一个黑白 ScrollPane 我已经创建了一个 CSS 文件 它工作得很好 除了这个小方块 无论我尝试什么 我都无法将其变黑 这是我的 CSS 文件 scroll pane fx background c
  • 具有自定义设计的 ASP.NET 复选框

    有没有办法改变asp net复选框的ui样式 我试过这个 cabeceraCheckBoxNormal background url ig res Default images ig checkbox off gif no repeat c
  • 如何从 Angular 5 中的 URL 中删除哈希值?

    Angular 路由 在我的 app routing module ts 中 NgModule exports RouterModule imports RouterModule forRoot routes declarations 在i
  • 如何使用 javascript/ASP.NET/CSS 旋转和淡入淡出背景图像

    我需要随机淡入淡出背景图像 这将是一个定时函数 例如每 5 秒一次 我需要使用 ASP NET Javascript CSS 或全部三者来完成此操作 请大家帮帮我 谢谢 Cycle 一个 jQuery 插件 是一个非常灵活的图像旋转解决方案
  • :目标选择器不适用于选项标签

    我试图在这里帮助一位 StackOverflow 成员 我发现 CSS target选择器不适用于选项标签 我创建了一个示例来说明使用w3schools 教程 http www w3schools com cssref tryit asp
  • 保留以下文本的标题

    我正在使用 css 列计数功能将我的部分分成两列 在一个页面上 我在第一列的底部有一个 h3 标题 在下一列的顶部有一个 p 段落 我想保留该段落的前几句话的标题 我可以将其与整个段落一起包装在使用 inline block 样式的 div

随机推荐

  • 卷积神经网络的评价_金工研报:利用卷积神经网络进行多因子选股

    写在前面 下面这篇文章的内容主要来自华泰证券的研究报告 人工智能选股之卷积神经网络 文中首先通过对卷积神经网络 CNN 进行分析 然后通过将因子数据转换为二维图片的形式 并根据CNN原理给出了通过CNN运用于多因子选股的经验和方法 最后通过
  • map中取值转BigDecimal报错 java.lang.Integer cannot be cast to java.math.BigDecimal

    Map
  • Elasticsearch 中文分词&多词搜索&权重

    目录 中文分词器 一 安装中文分词器ik 二 使用中文分词器 多词搜索 权重 中文分词器 一 安装中文分词器ik 源码地址 https github com medcl elasticsearch analysis ik 根据提示 进行安装
  • HLS 流传输库hls::stream

    流传输数据是一种数据传输形式 其中数据样本从第一个样本开始按顺序发送 流传输不需要地址管理 Vivado HLS 提供了 C 模板类 hls stream lt gt 用于对流传输数据结构进行建模 使用 hls stream lt gt 类
  • 前端加密和解密

    Base64加密 加密 Base64 encode Base64 encode 解密 Base64 decode Base64 decode url携带参数加密 加密 encodeURLComponent encodeURLComponen
  • 【Unity】一个简单的无限列表

    1 根据InfiniteElem 的高度和总个数 计算出Content的长度 2 根据Content所在的滚动位置 计算出当前哪些InfiniteElem显示在列表中 3 循环是生成的几个InfiniteElem显示列表内容 实现无限列表
  • LeetCode-1827. 最少操作使数组递增【贪心,数组】

    LeetCode 1827 最少操作使数组递增 贪心 数组 题目描述 解题思路一 简单暴力 解题思路二 优化1 ans是操作数 mx是当前最大元素 mx无论如何会依次递增 解题思路三 优化2 遇到小的数就pre 1 否则变为num 题目描述
  • C# 文件上传

    获取POST 请求发送的文件 并保存到服务器 HttpPostedFile file System Web HttpContext Current Request Files file 获取上载文件名称 string FileName fi
  • SoapUI、Jmeter、Postman三种接口测试工具的比较分析

    前段时间忙于接口测试 也看了几款接口测试工具 简单从几个角度做了个比较 拿出来与诸位分享一下 本文从多个方面对接口测试的三款常用工具进行比较分析 以便于在特定的情况下选择最合适的工具 或者使用自己编写的工具 不同工具定位不同 我们只是主要从
  • C语言之贪心算法疯牛

    疯牛 时间限制 1000 ms 内存限制 65535 KB 难度 4 描述 农夫 John 建造了一座很长的畜栏 它包括N 2 lt N lt 100 000 个隔间 这些小隔间依次编号为x1 xN 0 lt xi lt 1 000 000
  • Vant--移动端组件库

    Vant 是一个轻量 可靠的移动端组件库 于 2017 年开源 目前 Vant 官方提供了 Vue 2 版本 Vue 3 版本和微信小程序版本 并由社区团队维护 React 版本和支付宝小程序版本 文章目录 目录 文章目录 前言 一 优势
  • 轻松玩转Windows系统自带远程桌面及如何处理“出现了内部错误““0x4““0x7“等错误提示

    现在网络上的第三方远程协助软件很多 包括向日葵 ToDesk等等 但是 如果你遇到只有内网的情况下 或者外网速很差很慢 比如学校 或者禁止连外网的单位等等 使用第三方远程协助就很卡 甚至成了摆设 这种情况下 我们就需要用到Windows系统
  • Vert.x Web模块(六)

    SockJS SockJS是一个客户端JavaScript库和协议 SockJS提供类似WebSocket的接口 此接口允许与SockJS服务器建立连接 而不论浏览器或者网络允许真实的WebSockets SockJS通过支持浏览器与服务间
  • MySQL的浮点型和定点型解析和案例演示

    小数型 1 概述 浮点型和定点型 1 浮点数类型包括单精度浮点数 float型 和双精度浮点数 double型 定点数类型就是decimal型 2 两者区别 1 浮点型 小数点移动 精度有限 而且会丢失精度 系统自动四舍五入 4个字节 最大
  • web项目怎么放到云服务器上,web项目怎么放到云服务器上

    web项目怎么放到云服务器上 内容精选 换一换 伸缩组是具有相同属性和应用场景的云服务器和伸缩策略的集合 是启停伸缩策略和进行伸缩活动的基本单位 您可以使用伸缩策略设定的条件自动增加 减少伸缩组中的实例数量 或维持伸缩组中固定的实例数量 创
  • 用MySQL语法建 一个学生表,包括学生姓名、性别、年龄、班级信息。

    1 创建表的SQL语句 create table student ID int primary key not null NAME varchar 50 sex int age int classNO in 转载于 https www cn
  • SqlServer Management Studio启用身份验证登录

    背景 一开始安装好SqlServer Management Studio时 默认只能用本地window身份验证登录 也就是除了SqlServer的电脑 别的都访问不了这个数据库 这是很不方便的 方案 1 打开SqlServer Manage
  • ubuntu安装无线网卡驱动

    摘要 在笔记本上安装ubuntu系统 安装好后是可以连接wifi的 而台式机安装ubuntu的话 特别是组装的台式机 是无法立即连wifi的 是需要安装无线网卡驱动的 如果你身边无法连网线 而又无法连接wifi 根本无法更新或者下载 所以
  • https证书申请 nginx ssl配置

    打算开发api要弄一个https的域名 于是我就搞了一个把过程记录下来 留给有用的人 分割线 我用的是阿里云的证书 现在有一个免费的不知道以后会不会一直有 就在阿里云服务里CA证书服务就可以找到 购买的时候选择自动生成证书 这样就不用自己制
  • ionic5/angular11通过修改ShadowRoot样式更改ionic UI组件原样式

    通过浏览器调试可以找到需要更改的UI组件样式 找到其CSS class类名后 通过CSS无法直接修改样式 需要使用shadowRoot appendChild 方法注入新的样式覆盖原来的样式达到修改原样式的目的 一 编写HTML