首页 > 其他分享 >Angular Material 18+ 高级教程 – 大杂烩

Angular Material 18+ 高级教程 – 大杂烩

时间:2024-06-04 23:15:27浏览次数:32  
标签:-- 18 button Material var icon Angular size

前言

本篇记入一些 Angular Material 的小东西。

 

Override Material Icon Button Size

参考:Stack Overflow – Change size of mat-icon-button

想 override Material styles 有好几招可以用。

第一招是 override CSS variables,这是最安全有效的方式,但是 Angular Material 不一定有提供。

第二招就是 ::ng-deep 或者全局 styles.scss。

我们来看一个具体例子

<button class="close-btn" mat-icon-button aria-label="Close">
  <mat-icon class="icon" fontIcon="close" />
</button>

上面这是一个 icon button。

默认 size 是 48px。

我们拆开来一个一个看,

首先 button 是 48px 然后带 padding 12px

所以里面扣到来 icon 是 24px

除了 button size 是 CSS variable 其它都是属性值,那我们一次换到完呗。

.close-btn {
  --size: 256px;
  --mdc-icon-button-state-layer-size: var(--size);

  padding: calc(var(--size) / 4);

  .icon {
    font-size: calc(var(--size) / 2);
    width: calc(var(--size) / 2);
    height: calc(var(--size) / 2);
  }
}

效果

虽然看上去是 ok 了,但其实还有一个落网之鱼

这个 element 的 class 没有 _ngcontent-ng-xxxx 所以我们要用 ::ng-deep 才能修改它。

.close-btn {
  --size: 256px;

  ::ng-deep .mat-mdc-button-touch-target {
    width: var(--size);
    height: var(--size);
  }
}

搞定,最后封装起来。

.close-btn {
  @include set-mat-icon-button-size(256px);
}

@mixin set-mat-icon-button-size($size) {
  --size: $size;

  ::ng-deep .mat-mdc-button-touch-target {
    width: var(--size);
    height: var(--size);
  }

  --mdc-icon-button-state-layer-size: var(--size);

  padding: calc(var(--size) / 4);

  mat-icon {
    --icon-size: calc(var(--size) / 2);
    font-size: var(--icon-size);
    width: var(--icon-size);
    height: var(--icon-size);
  }
}

 

 

 

目录

想查看目录,请移步 Angular 18+ 高级教程 – 目录

 

标签:--,18,button,Material,var,icon,Angular,size
From: https://www.cnblogs.com/keatkeat/p/18231947

相关文章

  • 286、基于51单片机的温度报警(8路,DS18B20,热电偶,LCD1602)
    完整资料或定制滴滴我(有偿)见文末。目录一、设计功能二、Proteus仿真三、原理图四、程序源码五、资料包括一、设计功能多路温度采集系统1、刺激4路DS18B20温度和4路热电偶温度2、自动循环显示每路温度值3、设置温度上下限,温度过限报警二、Proteus仿真......
  • iOS18新功能大爆料,打破常规,全面升级,这些变化不容错过!
    众所周知,苹果iOS操作系统近年来都没有发生重大变化,主要是添加小部件、锁屏编辑和手机屏幕编辑等功能,再加上bug偏多,以至于越来越多iPhone用户不愿意再升级系统了。这一点,从iOS17明显降低的安装率中就能看出一二,但最近有好消息传来,根据此前外界爆料,苹果正在计划为即将到来的......
  • 代码随想录算法训练营第四十六天|动态规划:完全背包理论基础、518.零钱兑换II、377. 组
    动态规划:完全背包理论基础文档讲解:代码随想录题目链接:52.携带研究材料(第七期模拟笔试)完全背包有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总......
  • iOS 18要来了!苹果预热WWDC24:6月11日凌晨1点见
    苹果最新通过官方公众号向大家发布了WWDC24邀请,将于北京时间6月11日凌晨1点正式开始,号称“猛料加载中”。据了解,本次大会苹果将发布新一代iOS18、iPadOS18、macOS15、tvOS18以及watchOS11、visionOS2操作系统。其中,最受消费者关注的还是iOS18。爆料称,iOS18可能会加入生......
  • 718-Maximum length of repeated subarry
    题目描述链接:https://leetcode.com/problems/maximum-length-of-repeated-subarray/description/Giventwointegerarrays nums1 and nums2,return themaximumlengthofasubarraythatappearsin both arrays.解释:给定两个数组nums1和nums2,求两个数组的最长公......
  • 通过GB/T28181国标协议实现视频监控平台间的级联对接
    随着近几年网络视频监控应用范围的扩大,越来越多的政府部门及跨区域行业单位对视频监控的需求已经不仅仅满足于本地的联网监控,更多正在探索在原有本地联网监控基础上,建设省级乃至全国范围内跨区域的监控联网,全面打造数据共享平台。Liveweb视频融合云平台具备视频监控直播、云端......
  • 脑部磁共振成像肿瘤分割方法(MATLAB 2018)
    近年脑肿瘤发病率呈上升趋势,约占全身肿瘤的5%,占儿童肿瘤的70%。CT、MRI等多种影像检查方法可用于检测脑肿瘤,其中MRI应用于脑肿瘤成像效果最佳。精准的脑肿瘤分割是病情诊断、手术规划及后期治疗的必备条件,既往研究者对脑部肿瘤分割算法进行了深入研究,并取得了很多成果。然而脑......
  • Java18新特性有哪些
    Java18于2022年3月22日正式发布,它带来了一些新特性和改进,主要包括以下几点:JEP400:UTF-8byDefault123:JDK将UTF-8设置为默认字符集,这使得依赖于默认字符集的API在所有实现、操作系统、区域设置和配置中保持一致。JEP408:SimpleWebServer123:引入了一个简......
  • 为Ubuntu18.04云服务器创建sudo用户
    目录1背景2问题3解决1背景  昨天购买了一个Ubuntu18.04的云服务器,登录进去只有root账号,新建一账号james,用james账号登录后,提示没有james主目录,进入/home目录一看,还真没有。既然没有那就创建一个。2问题登录james在/home创建目录james目录提示没权限:$mkd......
  • GB-T 18262-2024 人造板机械 通用技术条件
    GB-T18262-2024人造板机械通用技术条件概览编写背景随着人造板行业的快速发展,对人造板机械的质量和性能要求越来越高。为了规范人造板机械的生产和使用,提高产品的可靠性和安全性,GB-T18262-2024《人造板机械通用技术条件》应运而生。这一标准旨在为人造板机械的设计、制......