在“材料设计”选项卡的底部添加三角形墨迹棒

时间:2018-11-30 09:15:37

标签: html css angular angular-material mat-tab

我想为Angular material tab更改mat-ink-bar的样式。

我想归档这样的设计:Jsfiddle example

问题是mat-ink-bar已经absolute定位了,我无法显示我的::after元素。有什么办法可以存档吗?

这是我在stackblitz上尝试过的操作:Mat tab on stackblitz

我的风格位于style.css内部。如果使用开发工具,则底部的三角形将被隐藏。我无法使用z-index来显示它。任何帮助将不胜感激。

此处是代码:

css

.c-tab .mat-ink-bar {
  height: 5px;
}

.c-tab .mat-ink-bar::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    margin: 0 auto;
    width: 0;
    height: 0;
    border-top: solid 50px #3f51b5;
    border-left: solid 50px transparent;
    border-right: solid 50px transparent;
}

html

<mat-tab-group class="c-tab">
  <mat-tab label="First"> Content 1 </mat-tab>
  <mat-tab label="Second"> Content 2 </mat-tab>
  <mat-tab label="Third"> Content 3 </mat-tab>
</mat-tab-group>

应如下所示: enter image description here

3 个答案:

答案 0 :(得分:3)

在CSS之后进行更新将解决您的问题。

.mat-tab-label {
  position: relative;
}
.mat-tab-header,
.mat-tab-label-container,
.mat-ripple {
  overflow: inherit !important;
}
.mat-ink-bar:after {
  content: "";
  position: absolute;
  top: 48px;
  right: 0;
  left: 0;
  margin: 0 auto;
  width: 0;
  height: 0;
  border-top: solid 20px #673ab7;
  border-left: solid 20px transparent;
  border-right: solid 20px transparent;
}

结帐stackblitz

答案 1 :(得分:0)

您缺少display:block元素的::after。因此,块属性不适用。 另外,您正在使用::aftertopleftright来扩展bottom的宽度以匹配其父项。

位于左上角或右下角,而不是两个都位于

答案 2 :(得分:0)

<div ng-repeat="(k,v) in data">
  <dyna-select label=k field=v></dyna-select>
</div>

尝试这个^^ ...

从理论上讲,这就是您所需要的: 更新 https://jsfiddle.net/Rakowu/e42wng0m/4/