Nak*_*kib 12 html css ellipsis css3
我name在侧边栏中有一个标签,如果长文本跟随三点(lorem ipsum ...),则应该显示单行和截断,并且应该在悬停时显示全文.
我能够使用css实现这一点但我的问题是当显示全文时它与它下面的文本重叠.(附图)
HTML
<p class="name">
Lorem ipsum lorem ipsum lorem ipsum
</p>
Run Code Online (Sandbox Code Playgroud)
CSS
.name{
color: #0079c1;
height: 2em;
line-height: 1em;
font-size: 20px;
font-weight: 400;
text-overflow: ellipsis;
margin-bottom: 12px;
cursor: pointer;
word-break: break-all;
overflow:hidden;
white-space: nowrap;
}
.name:hover{
overflow: visible;
white-space: normal;
}
Run Code Online (Sandbox Code Playgroud)
这是一个JSFiddle
Mi-*_*ity 25
你可以添加height:auto到hover状态,它会工作得很好:
.name{
width:120px;
color: #0079c1;
height: 2em;
line-height: 1em;
font-size: 20px;
font-weight: 400;
text-overflow: ellipsis;
margin-bottom: 12px;
cursor: pointer;
word-break: break-all;
overflow:hidden;
white-space: nowrap;
}
.name:hover{
overflow: visible;
white-space: normal;
height:auto; /* just added this line */
}Run Code Online (Sandbox Code Playgroud)
<p class="name">
Lorem ipsum lorem ipsum lorem ipsum ipsum lorem ipsum
</p>
<span>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem voluptate deserunt consequatur velit, alias ullam fuga aspernatur, ut doloremque eos fugiat quo a accusamus minus distinctio quasi, recusandae excepturi molestiae.
</span>Run Code Online (Sandbox Code Playgroud)
小智 20
面对表格中一些长电子邮件地址的类似问题,我创建了这个解决方案,其中全部内容显示在工具提示样式的伪元素中.
body{
background:#eee;
}
.box{
background:#fff;
box-shadow: 0 25px 30px 0 rgba(0,0,0,0.15);
border:rgba(0,0,0,0.3);
width:10rem;
margin:2rem auto;
padding:2rem;
}
.ellipsis {
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
transition: all .2s linear;
white-space: nowrap;
padding:.5rem 1rem;
}
.ellipsis:focus, .ellipsis:hover {
color:transparent;
}
.ellipsis:focus:after,.ellipsis:hover:after{
content:attr(data-text);
overflow: visible;
text-overflow: inherit;
background: #fff;
position: absolute;
left:auto;
top:auto;
width: auto;
max-width: 20rem;
border: 1px solid #eaebec;
padding: 0 .5rem;
box-shadow: 0 2px 4px 0 rgba(0,0,0,.28);
white-space: normal;
word-wrap: break-word;
display:block;
color:black;
margin-top:-1.25rem;
}Run Code Online (Sandbox Code Playgroud)
<div class="box">
<p class='ellipsis' data-text='f6cd8edc-60c2-11e7-9919-ef706e78474f'>f6cd8edc-60c2-11e7-9919-ef706e78474f</p>
<p class='ellipsis' data-text='Mauris ac eros odio. Etiam imperdiet vitae dolor eu feugiat. Pellentesque at ante dignissim, tincidunt ipsum quis, rutrum ante. Donec ac lorem nisl. Cras fringilla ex ut rutrum imperdiet. Fusce accumsan id est vel lacinia. Cras nec ligula eu velit mattis mollis. Nunc venenatis neque nibh, id dapibus orci aliquet id. Ut dictum mollis eros sed imperdiet. Phasellus quis enim nec felis sagittis varius. Ut et rutrum quam. Morbi id interdum felis. Mauris id dignissim odio.'>Mauris ac eros odio. Etiam imperdiet vitae dolor eu feugiat. Pellentesque at ante dignissim, tincidunt ipsum quis, rutrum ante. Donec ac lorem nisl. Cras fringilla ex ut rutrum imperdiet. Fusce accumsan id est vel lacinia. Cras nec ligula eu velit mattis mollis. Nunc venenatis neque nibh, id dapibus orci aliquet id. Ut dictum mollis eros sed imperdiet. Phasellus quis enim nec felis sagittis varius. Ut et rutrum quam. Morbi id interdum felis. Mauris id dignissim odio.</p>
</div>Run Code Online (Sandbox Code Playgroud)
https://codepen.io/natalitique/pen/gRdmre
需要使用包含完整内容的数据属性.
这段代码可以工作,而且由于titleHTML 属性,默认情况下文本将在悬停时显示
.truncated {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
/* Optional: set a fixed max-width or width to the element if needed */
max-width: 200px; /* max-width: 100%; also works */
}Run Code Online (Sandbox Code Playgroud)
<div class="truncated" title="This is a long text that will be truncated, but showed on hover">
This is a long text that will be truncated, but shown on hover
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37634 次 |
| 最近记录: |