重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【終了しました】教えて!gooアプリ版

スタイルシートに、
<style type="text/css">
<!--
fieldset { padding: 0.5em; margin: 0.5em; BORDER-BOTTOM: #999999 2px dotted; BORDER-LEFT: #999999 2px dotted; BORDER-RIGHT: #999999 2px dotted; BORDER-TOP: #999999 2px dotted;}
-->
</style>
と記述し、

<body>
<fieldset>
<legend>test</legend>
<table>
<tr>
<td>テスト</td>
</tr>
</table>
</fieldset>
</body>
とやっても、fieldset上の線がドットになりません。線の太さを1PXにするとなるのですが、どちらにせよlegendの”test”にも線がかぶってしまいます。
どうすればいいでしょうか??記述が間違っていればご指摘ください。
IE6を使っています。

A 回答 (4件)

スタイル指定なしで表示させてみてください。

IE6ではfieldsetが枠線で囲まれ、上の線上にlegendが重なるように表示されます。これがデフォルトのスタイルですので、重なるのが正解、です。

で、これをスタイルシートで枠線の種類を変えると、IEでは上の線がおかしくなります(#1の方の指摘通りバグでしょう)。

それはさておき、legendの外側に枠線を持っていきたい、ということのようなので、fieldsetの外側にdiv要素を定義し、このdiv要素に点線の枠線を与える、というのが(HTMLとしては美しくないですが)簡単です。

<style type="text/css">
<!--
div.Box1 { padding: 0.5em; margin: 0.5em; border:2px #999999 dotted;}
div.Box1 fieldset {border:none}
-->
</style>

<body>
<div class="Box1">
<fieldset>
<legend>test</legend>
<table>
<tr>
<td>テスト</td>
</tr>
</table>
</fieldset>
</div>
</body>

divに枠線を与えると同時に、div内のfieldsetからは枠線を除いています。
    • good
    • 0

CSS Level 1の仕様書をみてみました。



5.5.22 'border'
Value: <border-width> || <border-style> || <color>
Initial: not defined for shorthand properties
Applies to: all elements
Inherited: no
Percentage values: N/A

( http://www.w3.org/TR/REC-CSS1#border )

「border:2px dotted #999999;」のように直しても上の線がおかしいです。IEのバグと思われますので、これだけはどうしようもありません。

どうしてもやりたいのであればテーブルを組んで画像を使うといいです。

参考URL:http://www.w3.org/TR/REC-CSS1#border
    • good
    • 0

とほほのWWW入門によると、


width style colorの順番ですが、
仕様書によるとその順番でも良いのですか?
読んでないので分かりませんが、それが間違っているということはありませんか?
    • good
    • 0

IEのバグではないでしょうか。


Opera6.05(Win)では正常に表示されます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!