次のようなものが必要です:
これを CSS で実現するにはどうすればよいでしょうか。背景画像を使用する方法があることは知っていますが、画像なしで CSS のみでこれを実現できますか。
ベストアンサー1
疑似要素を使用してこれを行うハッキーな方法があります:before
。境界線を付け:before
、CSS 変換を使用して回転させます。この方法では、DOM に余分な要素が追加されず、取り消し線の追加/削除はクラスの追加/削除と同じくらい簡単です。
注意点
- これはIE8までしか動作しません。IE7サポートしていません
:before
ただし、ブラウザによっては、するサポートします:before
が、CSS 変換はサポートしません。 - 回転角度は固定です。テキストが長い場合、線がテキストの角に触れなくなります。この点に注意してください。
CS
.strikethrough {
position: relative;
}
.strikethrough:before {
position: absolute;
content: "";
left: 0;
top: 50%;
right: 0;
border-top: 1px solid;
border-color: inherit;
-webkit-transform:rotate(-5deg);
-moz-transform:rotate(-5deg);
-ms-transform:rotate(-5deg);
-o-transform:rotate(-5deg);
transform:rotate(-5deg);
}
html
<span class="strikethrough">Deleted text</span>