Firefox1やIE6がdisplay:noneで消した箇所に含まれる文字列もコピペできることを利用しています(Opera8.5では無理)。
pre要素で整形したテキストをspanで囲み、display:noneで消します。□は全角スペース。
<pre> ■■■■■■■■■■■■■■ ■□□□□テキスト□□□□■ ■■■■■■■■■■■■■■ </pre>
<pre> ■■■■■■■■■■■■■■ ■□<span>□□□テキスト□□□□</span>■ ■■■■■■■■■■■■■■ </pre>
span {display:none;}
消した分のスペースを確保するために、全角スペース1個を適当なインライン要素で囲み、letter-spacingやword-spacingを使って文字間隔を広げます。
ここではb要素を使いました(because it doesn't have semantical meaning and it's shorter than span
)。
<pre> ■■■■■■■■■■■■■■ ■<b>□</b><span>□□□テキスト□□□□</span>■ ■■■■■■■■■■■■■■ </pre>
pre {
font-size:1em;
font-family:monospace;/*等幅のフォント*/
}
b {
font-weight:normal;
letter-spacing:11em;/*Fxはletter-spacingで全角スペースの間隔が調整される*/
word-spacing:11em; /*IEはword-spacingで全角スペースの間隔が調整される*/
}
<pre> ■■■■■■■■■■■■■■ ■<span>□□□□テキスト□□□□</span>■ ■■■■■■■■■■■■■■ </pre>
span {visibility:hidden;}
これだと消した箇所が範囲選択で反転されません。(これもOperaではテキストをコピペできません。)
HTML的によろしくないうえに、ブラウザの実装に依存しまくりです。
隠しテキストは何でもよかったんですが、AA大辞典(仮)から拾ってきました(ニコパチ)。
ニコパチは人気曲がたくさん入っていて、割りと安いのでオススメです。
G)、∧_ ∧ ヽ(≧∀< ) ニコパチ! \ ○) `l⌒人 (_) J2006年2月22日 みりばーる