以前はJSを使用して動的に実行していましたが、いくつかのパフォーマンスの問題が発生していました。そのため、代替オプションを用意する必要があります。
現在、テキストオーバーフロースタイルを使用して、タブ名の長いテキストを切り捨てています。
しかし、誰かがそれを解決できる場合、小さな問題があります
現在、これは私のテキストの切り捨てがどのように見えるかです
このテキストは切り捨てられました...
ここでは、3つのドット(...)が黒で表示されていますが、これを赤に変更します。
これを達成する方法はありますか?
ここで動作します:
コード(HTMLおよびCSS):
<div class="overme">
how much wood can a woodchuck chuck if a woodchuck could chuck wood?
</div>
CSS:
.overme {
width: 300px;
overflow:hidden;
white-space:nowrap;
text-overflow: Ellipsis;
color: red;
}
末尾のドット/省略記号は、その基本的なCSSを使用して赤で色付けされています。
ドットを赤で表示したいだけだと思いますか?残念ながら、これは単純なcssでは不可能です。しかし、カスタムEllipsisスタイルの作成を管理するチュートリアルが見つかりました。これは必要な場合にのみ表示されます。
https://www.mobify.com/dev/multiline-Ellipsis-in-pure-css/
これは非常に素晴らしいハックであり、言葉で説明するのは簡単ではありません。たぶん私が作ったこのjsfiddleはあなたを助けることができます:
overflow: hidden;
の.wrap
を削除して、何が起こっているのかを確認してください。主なアイデアは、.end
divは、テキストがオーバーフローしているときは.left-side
の左下に移動し、オーバーフローしていないときは.text
の右下に移動することです。次に、.Ellipsis
divは相対.end
内に絶対位置で配置されるため、右に配置すると、テキストがオーバーフローしているときに表示され、テキストがオーバーフローしていないときにオーバーフローします。おかしいですね。
とにかく、ここに生のコードがあります:
HTML:
<div class="wrap">
<div class="left-side"></div>
<div class="text">
This is a short story, it
doesn't need to be ellipsed.
</div>
<div class="end">
end
<div class="Ellipsis">...</div>
</div>
</div>
<br>
<br>
<br>
<br>
<div class="wrap">
<div class="left-side"></div>
<div class="text">
This is a long story. You won't be able to
read the end of this story because it will
be to long for the box I'm in. The story is
not too interesting though so it's good you
don't waste your time on this.
</div>
<div class="end">
end
<div class="Ellipsis">...</div>
</div>
</div>
CSS:
.wrap {
height: 100px;
width: 234px;
border: solid 1px #000;
overflow: hidden;
}
.left-side {
float: left;
width: 32px;
height: 100px;
background: #F00;
}
.text {
float: right;
border: solid 1px #0F0;
width: 200px;
}
.end {
position: relative;
float: right;
width: 30px;
border: solid 1px #00F;
}
.Ellipsis {
position: absolute;
top: -25px;
left: 198px;
background: white;
font-weight: bold;
color: #F0F;
}
もちろん、これを実装するときは、すべての境界線と「終了」テキストを削除する必要があります。これはわかりやすい例になりました。また、おそらくラップにposition: absolute;
を与えてからmargin-left: -32px
を与えたいと思うでしょう。ここで、幅は.left-side
の幅なので、テキストの左側にマージンがありません側。
がんばろう!