css - 转换文本溢出 : ellipsis text to "floating" view of full text

标签 css angular-material

我有一个包含标签/输入控件对的 Angular/Material 侧面板。下面是将标签与 mat-slide-toggle 配对的示例:

<div class="flex justify-between items-center">
  <span class="mat-slide-toggle-content">
	{{ 'StringReference' | translate }}
  </span>
  <mat-slide-toggle [ngModel]="booleanValue" (ngModelChange)="handleModelChange($event)" name="aToggle" color="primary">
  </mat-slide-toggle>
</div>

由于一些标签文本可能很长,特别是在翻译版本中,我希望有一个“备份计划”来保持布局但仍然使标签文本易于访问。当标签太宽且文本溢出时,省略号工作正常:设置了省略号。

保持对整个 字符串的访问是我的问题。我想“工具提示化”标签文本,在悬停时将其 float 在相邻控件上方无需重新布局,显示整个字符串。当然,我可以更改文本溢出设置,并且通常会拉伸(stretch)标签以适合,但这会导致控件重新布局,这是我不喜欢的。因为我有数百个这样的标签,所以我不想要带有工具提示或类似内容的 HTML 或 JavaScript 解决方案。

任何可能有效的纯 CSS 想法?

最佳答案

这可能不是完美的答案,因为您的代码片段不会在此处呈现,但我想这只是一种侧面拉出的东西。这是您可以使用的潜在的纯 CSS 解决方案;我只是使用 bootstrap 列来显示截断和扩展:

概念:在事件状态下切换样式。

示例:https://stackblitz.com/edit/ellipsis-but-shown-on-active

繁琐的工作将在我为特定宽度的 col-4 建模的两个自定义类中进行:

.col-4-overflow {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}
.col-4-overflow:active {
    overflow: visible;
    text-overflow: inherit;
    background: cornsilk;
    position: relative;
    min-width: 66.66666666666666%;
    margin-right: -180px;
    z-index: 1;
}

我不知道,您也许能够找到一个更优雅的方法来替代事件状态的 margin-right 和 z-index 值。 :)

关于css - 转换文本溢出 : ellipsis text to "floating" view of full text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55170879/

相关文章:

css 菜单在空格后中断

html - 修改特定 div 中的 div 的属性

jquery - 在移动 View 中将 Bootstrap 选项卡切换为下拉列表

css - 兄弟跨度宽度混淆获取前一个兄弟的百分比

jquery - 如何让鼠标光标捕获鼠标?

javascript - Angular 形按钮定制类型

css - Angular 应用程序中 (S)CSS 规则的顺序

Angular 2 Material : Show full text for the list items

css - 如何在同一行对齐搜索图标和自动完成组件

Angular CLI 9 (Ivy) App build with local library (mono-repo) 失败