アプリ版:「スタンプのみでお礼する」機能のリリースについて

phpファイルにおいてHTMLで<small>タグの文章だけ右寄せしたかったのでtext-allign: right;としたのですが、右によりません。

なぜこんな風になるのでしょうか?

できればこういった事態になった場合、HTMLに詳しい人の調べ方も教えてほしいです。
(ググる等、初歩的なことは調べてから質問しているつもりです。)

A 回答 (2件)

<small>要素は、非置換インライン要素に分類されます。

smallのサイズは文字数のままですので、文字幅いっぱいの幅の中では「どうあがいても、右にも左にも寄れません。
 smallで囲んだ部分を、デザイン上別の場所に表示したい場合・・・たとえば、header内のh1要素におけるsmallを下に表示したいとかの場合・・
<body>
 <div class="header">
  <h1><small>私の</small>著書紹介</h1>
  ・・・・
というHTMLに対して、
div.header h1{margin-top:30px;position:relative;}
div.header h1 small{
display:block;width:10em;position:absolute;top:-25px;left:10px;background-color:yellow;text-align:right;}
詳しくは、
テキスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )

でも、通常はこんな無理はしません。そもそも、HTMLが文書構造にしたがって正しくマークアップされているとは思えません。

 smallは、「小さいフォントで表示する(HTML4.01)」要素でしたが、
15.2.1 フォントスタイル要素: TT、I、B、 BIG、 SMALL、 STRIKE、S、及びU要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )

この様なプレゼンテーションのためだけの要素は、HTMLの趣旨に反するため、HTML5では、
「small 要素は、補足事項などの細字部分を表すようになりました。」
3.3. 変更された要素 ( http://standards.mitsue.co.jp/resources/w3c/TR/h … )

 HTML自体をまず見直してください。
    • good
    • 0
この回答へのお礼

大変詳しくありがとうございます。
インライン要素の何たるかが少しわかりました。

お礼日時:2011/09/14 18:53

smallはインライン要素だからです。

ブロック要素のタグなら、おそらく意図したような動きになると思います。
なので、display:block;を入れるとかやってしまう方法もないわけではありませんが、本来の使い方をしていないということで、仕様書に基づいた書き方とは言えないでしょう。

> できればこういった事態になった場合、HTMLに詳しい人の調べ方も教えてほしいです。
何でこうなるの?と思ったところで、大体HTMLの仕様書を読んで解決します。自分は。。。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
私も今日divで区切って無理やり解決(というか無視?)しました。
仕様書ですか・・・やっぱ大事なんですね。

お礼日時:2011/09/14 18:50

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