2006年04月05日

ぶっとい線のかぶせ方 〜n歩進んでn歩下がる〜

例えばこんな風に、文に抹消線を引く事がたまにあります。
でもこれ、ちょっと見辛くないですか?
…抹消線がもっと太ければ良いのに。
あまつさえ、色まで付けられたなら…
──そう、━━━━━━━━例えばこんな風に

…まず初めに言いますと、今回も例によってスタイルシートを使います。動作確認はIE6です。…例えば、上記の例文のソースはこう書かれています。

そう、<nobr><span style="font-family:MS ゴシック,Osaka-等幅;"><span style="position:relative; color:red;"><span style="position:absolute;">━━━━━━━━</span></span>例えばこんな風に</span></nobr>

簡単に言うと、『例えばこんな風に』 を書いた後に、もう一度同じ位置から罫線の 『━━━━━━━━』 を上書きしているわけです。

color:red;の部分で、罫線の色を付けています。別の色を指定しても良いし、何も指定しなければ文と同じ色になります。

外側でフォント名を指定しているのは、等幅フォントを使う事で文と罫線の長さを同じにする為です。通常使われているプロポーショナルフォントだと、長さが違ってしまいますからね。文章全体を等幅にしている場合は要りません。

最外側の<nobr>タグも存外重要です。と言うのも、何故か罫線部分には自動改行が働いてくれないからです。

──そう、━━━━━━━━例えばこんな風に

…こんな風に(笑)。文は自動改行されるのに、罫線はされないのでこうなるわけです。なので、文も罫線も途中では改行されないように<nobr>で囲んでやればこうなります。

──そう、━━━━━━━━例えばこんな風に

英単語がインデントされるような感じですね。普通はこれで事足りると思いますが、対象の文があまりに長い場合はやはり不都合があるので、途中で改行しても良いポイントを指定してやります。

そう、<nobr><span style="font-family:MS ゴシック,Osaka-等幅;"><span style="position:relative; color:red;"><span style="position:absolute;">━━━</span></span>例えば<wbr><span style="position:relative; color:red;"><span style="position:absolute;">━━━━━</span></span>こんな風に</span></span></nobr>
──そう、━━━例えば━━━━━こんな風に

こうして細かく区切れば区切るほど見た目は自然になります。一字毎に指定してしまえば完璧です(その場合は</nobr></wbr>も不要)。…しかしこうなって来ると記述も大変だしソースもかなり見辛くなりますねぇ。クラス化してしまいましょう。

<html>
<head>
<style type="text/css">
<!--
.s1 {
font-family: MS ゴシック,Osaka-等幅;
}
.s2 {
position:relative;
color: red;
}
.s3 {
position:absolute;
}
-->
</style>

</head>
<body>

そう、<nobr><span class="s1"><span class="s2"><span class="s3">━━━</span></span>例えば<wbr><span class="s2"><span class="s3">━━━━━</span></span>こんな風に</span></nobr>

だいぶスッキリしましたね(^^

ちなみにスタイルシートで行間をあけているような場合は、罫線の縦位置がズレる場合があるようです。その場合、上記で言えばクラスs3の部分でtop:-0.2em;等のように縦位置の「ズレ」を指定して調整してやると良いでしょう。
posted by へこ at 23:42| Comment(0) | TrackBack(0) | HTML関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/16202399

この記事へのトラックバック