簡體   English   中英

如何設置 angular2 材質滑動切換按鈕的樣式

[英]How to style the angular2 material slide-toggle button

我是 angular 2 和材料設計的新手。 我想知道如何將滑動切換按鈕的樣式設置得更小。

 <div class="example-section">
  <mat-slide-toggle class="line-toggle"
    <span class="font-size-12">Slide Me</span>
  </mat-slide-toggle>
</div>

css如下

  .example-section {
  display: flex;
  align-content: center;
  align-items: center;
  height: 18px;
  margin-top: -12px;
}
 .line-toggle{
  height: 10px;
  line-height: 8px;
 }

我想減小按鈕的大小並降低滑塊的高度。

我發現您可以在 css 中使用 /deep/ 但您還必須針對特定的類。

/deep/ .mat-slide-toggle-bar {
  height: 7px !important;
}
/deep/ .mat-slide-toggle-thumb {
  height: 10px !important;
  width: 10px !important;
}

要記住的另一件事是 viewEncapsulation 因為 deep 允許您打破這種約定,因為樣式是通過 Angular 設置的,它們是內聯應用的。

相關堆棧帖子: 如何覆蓋 angular 2 材質樣式?

相關 Angular 文檔: https : //angular.io/guide/component-styles#!#-deep-

@tallgeese117 的回答真的很有幫助。 我想在他們的答案中添加更多的代碼行,以便它以所需的大小顯示切換並看起來:

/deep/ .mat-slide-toggle-bar {
  height: 7px !important;
  width: 28px !important;
}

/deep/ .mat-slide-toggle-thumb {
  height: 10px !important;
  width: 10px !important;
}

/deep/ .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container {
    transform: translate3d(18px,0,0) !important;
}

/deep/ .mat-slide-toggle-thumb-container {
    width: 12px !important;
    height: 12px !important;
    top: -2px !important;
}

我使用了上面@tallgeese117 提供的解決方案。 但是在 VScode 中,CSS 文件顯示為紅色( \\deep\\ ),這很煩人。 我找不到忽略此 css lint 檢查的方法。 因此我嘗試了另一種選擇(動態更改 css )。 我把它貼在下面給別人:

    ngOnInit() {
        let eleArray = document.getElementsByClassName('mat-slide-toggle-content');
        for(let i = 0 ; i < eleArray.length; i++) {
          // @ts-ignore
          eleArray[i].style.cssText = 'font-size:6vw;';
        }
    }

正如其他人提到的,您需要設置 mat-slide-toggle(mat-slide-toggle-bar、mat-slide-toggle-thumb 等)的內部類的樣式。 但是, /deep/ 和 ::ng-deep 已棄用,因此您不應使用它們。 一種選擇是設置比組件上的默認樣式更具體的全局樣式。 因此,在全局樣式文件中,您可以執行以下操作:

mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-bar {
  height: 8px;
  width: 26px;
}

mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb {
  height: 14px;
  width: 14px;
}

//...etc

組合組件名稱和類名稱比 mat-slide-toggle 默認樣式更具特異性,因此它會覆蓋它。

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM