这个问题绝不是可怕的,但这是我遇到的一个问题,它想知道一些SO专家如何解决它 - 如果有解决方案的话。DIV内部的SPAN可以防止文本溢出:省略号
我有一个固定宽度的UI小部件,显示文件信息。我提供了通过点击它来编辑文件名的功能,并指出我应用:hover
样式来更改字体颜色的功能。最初我把文件名放在DIV
之内,但由于不同的文件名是不同的长度,我不能将DIV
设置为文件名的大小,并且对文本保持:hover
的效果。使用短文件名时,当光标位于DIV
的空白部分上时,:hover
效果仍会显示。这不是我想要的解决方案,我把文件名放在SPAN
(以及:hover
效果)。这解决了短文件名的问题,但防止长文件名用椭圆优雅溢出。
理想情况下,我想要一个解决方案实现两种效果 - 椭圆长文件名,并应用:hover
效果只有当悬停在实际的文字。我对CSS仍然很陌生,所以也许我只是错过了一个明显的答案。谢谢!
下面是该问题的示例页面:
(和jsfiddle)
编辑:我想我可以执行一些JavaScript魔术剪辑的时间越长的名字,但希望的是简单的CSS的解决方案。
<html>
<head>
<style>
div {
margin:10px;
width:200px;
max-width:200px;
font-size:1.2em;
overflow:hidden;
text-overflow:ellipsis;
}
div.a:hover, span:hover {
color:666;
cursor:pointer;
}
span {
display:inline-block;
}
</style>
</head>
<body>
<!-- This works well for long filenames -->
<div class="a">
ThisIsMyReallyReallyLongFilename.txt
</div>
<!-- ... but fails for the short names -->
<div class="a">
Shortname.txt
</div>
<!-- This fails to show ellipse for long filenames -->
<div>
<span>ThisIsMyReallyReallyLongFilename.txt</span>
</div>
<!-- ... but wraps the text nicely for short names -->
<div>
<span>Shortname.txt</span>
</div>
</body>
</html>
ARGH!我知道我错过了一些愚蠢的东西。我甚至不需要那个'display:inline-block'属性,它是我从未移除过的不同设计的剩余部分。 (*摇头羞辱*)感谢您指出它! :-)并感谢所有人的建议。 – randall 2012-04-19 17:20:11
欢迎您:) – Scriptor 2012-04-19 17:25:25
Whe!这节省了我的一天! – 2014-04-23 08:34:38