CSS 工具提示 - 以特定宽度换行

标签 css sass

我有一个 CSS 工具提示,它可以打破每个单词。相反,我希望它仅在即将超过某个宽度时才打断一个词,但我不知道该怎么做。我也不能只设置一定的宽度,因为工具提示也可能包含一个短词,这样会太宽。

http://jsfiddle.net/o9s4dy0t/7/

这是我当前的 CSS 代码:

.tooltip {
    display: inline;
    position: relative;
}



.tooltip:after {
    background: #111;
    background: rgba(0,0,0,.8);
    border-radius: .5em;
    bottom: 1.35em;
    color: #fff;
    content: attr(title);
    display: block;
    padding: .3em 1em;
    position: absolute;
    text-shadow: 0 1px 0 #000;
    max-width:calc(100vw-(100vw/2));
    right:0;
    z-index: 98;
}

.tooltip:before {
    border: solid;
    border-color: #111 transparent;
    border-color: rgba(0,0,0,.8) transparent;
    border-width: .4em .4em 0 .4em;
    bottom: 1em;
    content: "";
    display: block;
    left: 0;
    position: absolute;
    z-index: 99;
}

顺便说一句,我正在使用 .scss 文件。

最佳答案

您需要将 :after 元素的显示设置为 table 或 inline-table,以便宽度计算按您的需要工作。

.tooltip {
    display: inline;
    position: relative;
}



.tooltip:after {
    background: #111;
    background: rgba(0,0,0,.8);
    border-radius: .5em;
    bottom: 1.35em;
    color: #fff;
    content: attr(title);
    display: table;
    padding: .3em 1em;
    position: absolute;
    text-shadow: 0 1px 0 #000;
    max-width:calc(100vw - (100vw/2));
    right:0;
    z-index: 98;
}

.tooltip:before {
    border: solid;
    border-color: #111 transparent;
    border-color: rgba(0,0,0,.8) transparent;
    border-width: .4em .4em 0 .4em;
    bottom: 1em;
    content: "";
    display: block;
    left: 0;
    position: absolute;
    z-index: 99;
}
<p>Test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test <a class="tooltip" title="aaaaa aaaaaa aaaaaaaa aaaaaaaaaa aaaa aaa aaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaa aaaaaaaa">TEST</a> test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test</p>

PS:虽然我不得不问你为什么要尝试实现自己的工具提示;这是一个很好的练习,但除此之外请考虑一些第三方选项。

关于CSS 工具提示 - 以特定宽度换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51496909/

相关文章:

javascript - 滚动控制页面内容

firefox - icoMoon 字体在 Firefox 上不显示

html - border-spacing 仅适用于内部边界

html - 在 Sass 文件中创建混合

css - compass 垂直节奏不起作用

html - 我如何调整导航栏 HTML 的缩放

javascript - 在运行时更改 jquery pageguide 的颜色

html - Bootstrap 模态高度和宽度不准确

html - 样式属性在设计时不适用于 AngularJS 绑定(bind)

html - Sass 对 @at-root 的使用