- 締切済み
legendの属性alignをCSSに変更する・・・
legendの属性alignをCSSに変更する場合 調べたら text-align ではなく float で左右が配置できることがわかりましたが、top や bottom に関しては無かったので教えてください。 それと、なぜ text-align ではなく float なのでしょうか?
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- quads
- ベストアンサー率35% (90/257)
そもそもalign属性の値もrightとleft以外をサポートしているブラウザはあるのでしょうか…。 legend要素の位置指定は不安定ですね…。
- steel_gray
- ベストアンサー率66% (1052/1578)
>MSのサイト(参考URL)では、ブロックエレメントと書いてありますね。 MSがblockといってましたか…。 スタイルを定義せずにJavascriptで実際にlegendに適用されているスタイルを覗き見てみるとdisplay:inlineになってました。(Firefoxも同じ) 試しにlegend{display:block}のスタイルを与えるとレンダリング結果が変わります。(いかにもinlineからblockになった、という変化でした。) (Firefoxでは変化なし) ただ、ブラウザ側はlegendに対してそれなりに特殊な処理をしているようなのでスタイルをどう定義しているかというのは調べても無意味だったかもしれません。 配置に関していろいろなスタイルを当てて試したけど無視されたりよくわからん結果になったり・・・。 とにかくやっぱりよくわからんです。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#3で >同じページでstyleとして、text-alignやfloatはありません と書いていますが、そのページでfloatはありました。 すみません。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
><legend>はブロックレベルですか?しインラインですか? MSのサイト(参考URL)では、ブロックエレメントと書いてありますね。 同じページでstyleとして、text-alignやfloatはありませんので、スタイルとしてはそのような指定はできない(少なくともIEでは)ということになりますね。 私の持ってる他の資料でも、legendのalignにあたるCSS属性は定義されていないとありますので、 #1でも言われているようにalignを使うのがいいと思います。 floatで配置できるというのは、多分ブロックとして扱うということなんだと思いますが、あるブラウザでその指定で動いたからといって、他でも動くとは限りません。(ああ、耳が痛い)
- steel_gray
- ベストアンサー率66% (1052/1578)
失礼しました。 legendはインラインのようですね。ちょっと出直してきます。 後学のために、floatで左右寄せできるとあったページのURLを教えて頂けるとありがたいです。
- steel_gray
- ベストアンサー率66% (1052/1578)
なぜtext-aignではないのか? text-alignはブロック要素内のインライン要素の配置を示すプロパティです。ブロック要素の配置を変える事には使用できません。(昔のブラウザや最新のブラウザの互換モードではブロック要素の配置も変わりますが)参考URL legendの位置決めについてはやや特殊でCSSでどのように扱うかははっきりとは決まっていないようなので現状ではCSSではなくalign属性を使用しておいたほうがよいかと思います。
補足
回答ありがとう。 なるほど、CSS では正確に取り決められたことではないのですね。 <form style="text-align: right">でも移動することなく <fieldset style="text-align: right">でも移動することなく なぜ、 <legend style="float: right">なのかがわかりません。 単独の要素<img>などは意味的にわかるのですが、<legend>文字</legend>なのにと・・・ <legend>はブロックレベルですか?しインラインですか?