HTML5、CSS2.1でホームページを作成しています。

http://www.tagindex.com/html_tag/img/img_align.h …

このサイトを参考に画像の右中央に文字を配置したいのですが
HTML5ではalign属性が認められていません。

どのように対処すればよいのか教えていただけましたら幸いです。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>いろいろあるとは思いますが作る側はだいぶ配慮が求められるようになりましたね。


>あきらめようと思います。

 そうではなくて、HTML4.01の時代から「HTMLからプレゼンテーションに関わるものは非推奨で、将来廃止される」となっていました。
 きちんと文書構造にしたがってマークアップされていれば、デザインはHTMLのプレゼンテーション機能の制約を越えて自由に設定できます。
「画像の右中央に文字を配置したい」のでしたら、それは、ある文章を背景画像の右中央に配置したい」と考えます。

<p id="message">ようこそ、我が家へ</p>

でしたら、スタイルシートは

#message{
width:200px;margin:0 auto;
background:url(画像URL) no-repeat 50% 50% gray;
height:150px;
line-height:150px;
text-align:right;
}
で良いはずです。
    • good
    • 0

TAG index さんのサイトにあるコードを見るに、


こういうことでしょうか?

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>test</title>
<style>
#cen img { vertical-align:middle; }
</style>
<body>

<p id="cen">
<img src="rainbow.jpg" alt="写真" width="193" height="130">
右側の中央にテキストを表示します。
</p>

</body>
</html>

この回答への補足

やってみたのですが画像の右「下側」になってしましました・・・。
何か他に影響しているかもしれません・・・

補足日時:2011/12/04 22:31
    • good
    • 0

そんなサイトを見たらダメです。

きちんと仕様書を読みましょう。HTML4.01の仕様書には
【引用】____________ここから
IMG要素とOBJECT要素の、視覚的配置及びプレゼンテーションに関する属性は、推奨しないこととなった。スタイルシートを奨める。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[13.7 画像、オブジェクト、アプレットの視覚的プレゼンテーション( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より

と明記してあります。
 そのサイトは、HTMLK4.01strictではなく、transitinalについて書かれています。
【引用】____________ここから
HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。 HTML 4仕様が定める各DTDの詳細については バージョン情報の項を参照のこと。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Conformance: requirements and recommendations (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より
と、HTML4.01が勧告になった1999年以降、strictは非推奨で、
【引用】____________ここから
推奨しない
  推奨しない要素・属性とは、新しい枠組みができたことによって、陳腐化したものを
 指す。推奨しない要素は、リファレンスマニュアルの各所で定義し、推奨しないことを
 明記する。推奨しない要素は、HTMLの将来のバージョンでは廃止になる可能性がある。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Conformance: requirements and recommendations (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より

と予告どおり、HTML5では、すべてと言ってよいくらい廃止されています。

 今学ぶなら、HTML4.01strictをしっかり身につけなさい。そしたら、
★HTML5 における HTML4 からの変更点 ( http://standards.mitsue.co.jp/resources/w3c/TR/h … )
 を読むくらいで卒業です。

 画像を画面の右中央に表示する方法は、CSS3にもありません。当然ですが・・・

 そのような場合は、画像ごとに位置を指定するか、背景画像で指定するかになります。

この回答への補足

いろいろあるとは思いますが作る側はだいぶ配慮が求められるようになりましたね。
あきらめようと思います。

補足日時:2011/12/04 22:30
    • good
    • 0
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aと関連する良く見られている質問

Qimg の align 属性を css に変更したいが、位置がずれる

img タグで、align 属性 top, middle, bottom を使用して
文章中の図の位置を調整していました。
CSS での位置表示に変更しようと思い、
align="..." を class="..." に変更し、CSS で
img.top {vertical-align: top;}
img.middle {vertical-align: middle;}
img.bottom {vertical-align: bottom;}
と設定しましたが、alignで設定していたときと位置がずれます。

解決法について探しているのですが、以下のような説明しか見つからず、
わかりません。
■top 上端に合わせます。
■middle 中央に合わせます。
■bottom 下端に合わせます。
http://www.tagindex.com/stylesheet/img/vertical_align.html

解決法をお分かりの方、どうか教えてください。

Aベストアンサー

> 現状、以下の宣言で正しい位置に表示されているhtmlがあります。
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

上記を【A】、

> 宣言を
> <?xml version="1.0" encoding="UTF-8"" ?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

上記を【B】、とさせて頂きます(ちなみに"UTF-8""、とダブル・コーテーションが余計に一つついているのはコピペミスですよね)。
(しかし、比較対象がHTML4.01ですらなく3.2の事を仰っているとはさすがに想像しませんでしたが…)

> ベースとなる指定は一切ないと考えていただいて結構です。

【B】のCSSは以下のみとさせて頂きました。font-size、line-heightなどは一切指定しておりません。

img.top {
vertical-align: top;
}
img.middle {
vertical-align: middle;
}
img.bottom {
vertical-align: baseline;←bottomの替わりに使用しているのは、前回回答させて頂いた理由に依ります。
}

ご提供された情報でサンプルを作成し、IE6、Firefox2/3で表示結果を確認させて頂きました。
しかし私の環境では、「正しい位置に表示されている」という【A】の方がおかしな表示(IE、Firefox問わず)に見えているのですが…?
2番目の、ALIGN="MIDDLE"、を指定している画像の、続くテキストとの位置関係は、「中央」ではなくむしろ「上寄せ」になっている様に見えます。
一方の【B】では、続くテキストが画像のほぼ「中央」に揃っている様に見えます。

> このときに css で middle, bottom の指定をどうすればよいのかお聞きしたいのです。

上記の様に指定したものを検証する限り、実装結果は「正しい」としか言い様がないので…申し訳在りませんがこれ以上お答えできる事はなさそうです。【B】は仮に適当なfont-sizeを指定(例えばfont-size: 12px;)したとしても表示結果は意図した通りのものになりますので。

> これならば、css で元の状態と同じように表示できますか?

検証結果に従って言うなら、「同じ」にはなりません。また、ANo.4様もご指摘の通り、HTMLの拡張属性だったもの=CSSのプロパティ、というわけでもありません。それぞれ定められた仕様の元に、各ブラウザごとの解釈で実装しています。上記のCSSによる指定の挙動に納得が行かないのであれば、質問者様が望まれる結果を得られるDOCTYPE及びマークアップを選択されるのもやむを得ないでしょう。

> 現状、以下の宣言で正しい位置に表示されているhtmlがあります。
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

上記を【A】、

> 宣言を
> <?xml version="1.0" encoding="UTF-8"" ?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

上記を【B】、とさせて頂きます(ちなみに"UTF-8""、とダブル・コーテーションが余計に一つついているのはコピペミスですよね)。
(しかし、比較対象がHTML4.01ですらなく3.2の...続きを読む

Qdiv align="center"のalignは旧式の属性?

お世話になります。
expression webでコーディングしていると
align="center"のalignは現在w3cで旧式の属性として扱われています。
新しい属性仕様で構成することをお勧めします。

とエラーがでたのですが
新しい属性はなにをつかえばいいのでしょうか?
教えてください。お願いします。

Aベストアンサー

スタイルシート(CSS)を使います。
この場合では、<div>に幅widthを指定して、
margin-left: auto;
margin-right: auto;
とCSSで指定。
例:
<div style="width: 200px; background-color: #ff0000; margin-left: auto; margin-right: auto;">CSSでのセンタリング。ただし、DOCTYPE宣言で標準準拠モードにしていないと、IE6ではバグの為センタリング出来ません</div>

スタイルシートとDOCTYPE宣言については検索してみるとゴマンと出てきます。。。。

Qhtmlのimg要素のtitle属性のような挙動

画像をマウスオーバーした時テキストをポップアップさせたいのですが、img要素のtitle属性を使用するとポップアップまでに数秒かかります。
改行の入ったテキストを、即時ポップアップさせるやり方がありましたら教えて下さい。
宜しくお願いいたします。

Aベストアンサー

 あらかじめテキストを読み込ませておいてtext-indentで隠して、:hoverで表示させれば速いです。いわゆるスプライトをさせるということ。ただIMG要素は内容自体を持ちませんのでcontent(内容の追加が使えませんので<p>要素などに使用すると良いでしょう。

Qpublic_html及びsecure_htmlのパーミッション設定方法?

public_html及びsecure_htmlのパーミッション設定方法?
現在使用中のレンタルサーバ(Linux系:FreeBSD)においてインターネットに公開するデータを保存するデイレクトリはpublic_htmlフォルダやsecure_html(SSL用)フォルダですが、これらpublic_htmlフォルダやsecure_htmlフォルダのパーミッションは、通常、705でよいのでしょうか?また、通常、これらのフォルダのパーミッションにUIDやGIDを含めるべきですか?

現在は、public_html及びsecure_htmlのパーミッションは755+GID(デフォルト設定値)となっていますが、これでよいか分かりません。

よろしお願いします。

Aベストアンサー

これらのディレクトリは通常は、サーバ側のサービス元がデフォルトで
用意してくれるものなので勝手にいじらない方がいいでしょう。
もし、当初は存在していなかったまたは間違って削除してしまって
再作成したとかいうなら、デフォルトのままで問題ないと思います。
下層のディレクトリが表示できなかったら正常に表示できる
パーミッションを調べてください。

サーバなどによっても微妙に異なることがあるので基本的にはそういう
ことはこちらよりもサービス元のサポートに聞いた方がより正確で
正しい回答が得られると思います。

Q【AMP HTML】AMP HTMLってなんですか?HTML 4.0、4.1→HTML 5→AM

【AMP HTML】AMP HTMLってなんですか?

HTML 4.0、4.1→HTML 5→AMP HTML??

Aベストアンサー

AMP HTML(AMP(Accelerated Mobile Pages) HTML)とは、Googleがモバイル端末でのブラウザの表示速度を高速化する為に作成したHTML仕様です。
https://googleblog.blogspot.jp/2015/10/introducing-accelerated-mobile-pages.html
スマホやタブレット等のモバイル端末用のウェブサイトはリッチになりましたが、その分重く、表示に時間がかかるようになった事から高速表示が可能なAMP HTMLを作成しました。


このカテゴリの人気Q&Aランキング

おすすめ情報