如何在角度材料设计中的工具提示中添加换行符

时间:2015-10-23 01:48:48

标签: angularjs tooltip angular-material

如何在工具提示中添加换行符 我已经实现了工具提示,但我无法在工具提示中添加多行或换行符。这是我的代码

http://codepen.io/apps4any/pen/RWQLyr

HTML

<div ng-controller="AppCtrl" ng-cloak="" class="tooltipdemoBasicUsage" ng-app="MyApp">
  <md-content layout-padding="">
    <md-button class="md-fab md-fab-top-right right" aria-label="Photos">
      <md-icon md-svg-src="img/icons/ic_photo_24px.svg" style="width: 24px; height: 24px;"></md-icon>
      <md-tooltip>
        List1<br>
        List2<br>
        List3<br>
        List4
      </md-tooltip>
    </md-button>
    <div style="margin-top: 150px;">
    </div>
  </md-content>
</div>

CSS:

.tooltipdemoBasicUsage md-toolbar .md-toolbar-tools .md-button, .tooltipdemoBasicUsage md-toolbar .md-toolbar-tools .md-button:hover {
  box-shadow: none;
  border: none;
  transform: none;
  -webkit-transform: none; }
.tooltipdemoBasicUsage .left {
  top: 70px !important;
  left: 56px !important; }
.tooltipdemoBasicUsage .right {
  top: 70px !important;
  right: 56px !important; }

JS

angular.module('MyApp')
.controller('AppCtrl', function($scope) {
  $scope.demo = {};
});

8 个答案:

答案 0 :(得分:41)

添加此CSS似乎适用于您的情况(使用<br> s):

md-tooltip .md-content {
    height: auto;
}

我不确定为什么Angular-Material将高度硬编码为22px。您需要检查此更改是否会破坏其他工具提示。

或者您只能通过提供一个类来专门应用于此用例,例如: tt-multiline,因此您可以在CSS中定位它:

md-tooltip.tt-multiline .md-content {
    height: auto;
}

编辑:从Angular-Material 1.1开始,一些类名已经改为以下划线开头。

在这种情况下使用

md-tooltip ._md-content {
    height: auto;
}

和特定班级

md-tooltip.tt-multiline ._md-content {
    height: auto;
}

答案 1 :(得分:10)

由于 angular-material version&gt; 1.1.2 ,您只需覆盖.md-tooltip类:
JsFiddle

.md-tooltip {
    height: auto;
}

<小时/> 如果要为特定工具提示设置样式,请将自定义类添加到md-tooltip元素:
jsFiddle

HTML

<md-tooltip class="tooltip-multiline">
    I'm a multiline <br/> tooltip
</md-tooltip>

CSS

.tooltip-multiline {
  height: auto;
}

在角质材料1.1.2,1.1.3和1.1.4版本中测试的两种情况

答案 2 :(得分:5)

您可以在此处查看md-tooltip(v0.11.4)的样式:https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.11.4/angular-material.css

我自己覆盖材料设计样式,以提供漂亮的多线工具提示:

md-tooltip {
  font-family: Roboto, 'Helvetica Neue', sans-serif;
  .md-background {
    border-radius: inherit;
  }
  .md-content {
    height: auto;
    width: 400px;
    max-width: 400px;
    padding: 8px;
    white-space: initial;
  }
}
@media screen and (min-width: 600px) {
  md-tooltip .md-content {
    font-size: 14px;
    height: auto;
    width: 300px;
    padding: 8px;
    max-width: 300px;
  }
}

答案 3 :(得分:5)

多数民众赞成我所做的。现在它会自动换行或放<br>  进去。将下面的max-with设置为您需要的内容。

md-tooltip .md-content {
    height: auto !important;
    max-width: 200px !important;
    font-size: 13px !important;
}

md-tooltip {
    height: auto !important;
    max-width: 200px !important;
    font-size: 13px !important;
    overflow: visible !important;
    white-space: normal !important;
}

md-tooltip ._md-content {
    height: auto !important;
    max-width: 200px !important;
    font-size: 13px !important;
}

答案 4 :(得分:3)

或者您可以在md工具提示的自定义类中使用white-space: pre-line;。 :)

答案 5 :(得分:1)

一段时间后,寻找解决方案从可变内容

.ts

public matTooltipContent: string = 'Line 1 comment\nLine 2 comment\nLine 3 comment'

.html

  <button mat-icon-button aria-hidden="false" class="material-icons-outlined"
      [matTooltip]="matTooltipContent"
      matTooltipClass="allow-cr"
      (click)="onInfoButtonClicked($event)">
    <mat-icon >help_outlined</mat-icon>
  </button>

.css

.allow-cr {
  white-space: pre;
}

See stackblitz example

答案 6 :(得分:0)

我正在使用angular_material 1.1.8,对我来说,单个答案不起作用,而对组合键则无效。

html

<md-tooltip class="tooltip-multiline">Years ago, when I was backpacking...</md-tooltip>

css

.tooltip-multiline {
    height: auto;
    white-space: pre-line; 
    max-width:300px;
    line-height: 14px; /*optional*/
    font-weight:200;/*optional*/
    letter-spacing: 0.5px; /*optional*/
    font-size:11px;/*optional*/     
}

希望有帮助。

答案 7 :(得分:0)

角度材料工具提示正在扭曲div中的所有内容,因此它可以正常工作

<md-tooltip class="tooltip-multiline" md-direction="left">
          This is tooltip
</md-tooltip>

.tooltip-multiline div{
  height: auto;
}