在文本悬停框中格式化文本

时间:2015-06-27 19:11:03

标签: html css

当您将鼠标悬停在某些文本上时,我使用了一些显示文本框的代码。问题是文本框中显示的文本来自它所在的<a>标记的属性,我无法对其进行格式化。我想在文本框中创建一个列表,但我只能将它作为一个文本墙。

HTML:

<a data-text="Could use this text instead of title" title="1. ~~~~ List item (/br)~~~~ 
                                    2. ~~~~ List item ~~~~ 
                                    3. ~~~~ List item ~~~~ 
                                    4. ~~~~ List item ~~~~ 
                                    5. ~~~~ List item ~~~~ " class="tooltip">Hover over this text</a>   

CSS:

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

.tooltip:hover:after{
    background: #333;
    background: rgba(0,0,0,.8);
    border-radius: 5px;
    bottom: 26px;
    color: #fff;
    content: attr(title);
    left: 100%;
    padding: 5px 15px;
    position: absolute;
    z-index: 98;
    width: 220px;
}

content: attr(title);

.tooltip:hover:before{
    border: solid;
    border-color: #333 transparent;
    border-width: 6px 6px 0 6px;
    bottom: 20px;
    content: "";
    left: 50%;
    position: absolute;
    z-index: 99;
}

查看此演示:http://jsfiddle.net/h3tqwust/1/

如何格式化文本(有换行符)?

1 个答案:

答案 0 :(得分:4)

以下是一种简单的格式化方法,使用alias date=/usr/linux/bin/date来保留white-space: pre伪元素中的空白区域,并确保:after属性的格式正确。

但是,由于解析插入内容的方式,title等HTML标记无法正常工作。

如果您需要更复杂的样式,那么您需要一个jQuery / JavaScript辅助解决方案。

&#13;
&#13;
<b>
&#13;
.tooltip{
    display: inline;
    position: relative;
}

.tooltip:hover:after{
    background: #333;
    background: rgba(0,0,0,.8);
    border-radius: 0px 5px 5px 5px;
    top: 15px;
    color: #fff;
    content: attr(title);
    left: 100%;
    padding: 5px 15px;
    position: absolute;
    z-index: 98;
    width: 220px;
    white-space: pre;
}
&#13;
&#13;
&#13;