この質問は決して悲しいことではありませんが、私は遭遇した問題です。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
あなたは大歓迎です:) – Scriptor
すごい!これは私の日を救った! –