http://wayohoo.com/programming/css/how-to-center …
を参考にしたのですが、
「imgをdivで囲って画像を中央揃えする方法。」なら、画像を中央に表示できるのに、
「imgに埋め込んだclassを使って画像を中央揃えする方法。」だとできません。
【サンプル】
<style type="text/css">
img.line{
width:
700px;
margin-left: auto;
margin-right: auto;
}
div.center{
text-align: center;
}
</style>
</head>
<body>
<img class="line" src="http://test/line.jpg">
<div class="center"><img src="http://test/line.jpg" /></div>
</body>
のように2つの画像を表示させた場合、divタグのほうは、ちゃんと真ん中に表示されますが
img class="line" のほうはされません。
しかし、img class="line" の方でも、画像のサイズは調整できています。
margin-left: auto;
margin-right: auto;
の部分の何が間違ってるのでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
参考のページの
■imgに埋め込んだclassを使って画像を中央揃えする方法。
にも、
「imgをブロック要素にしてからmargin指定を書くことで中央揃えに出来ます。(display:block;をmarginより先に書くのがコツ。)」
と明記されていますが、どうして削除したのでしょう?(蛇足:理解はしていないが解説してますてきなページなのでそのサイトで学習するのはお勧めできません。)
ブロックレベル要素とインライン要素には、性質が大きく違いますので、これをきっかけに学ばれてはいかがでしょうか?
ちなみに、imgはインライン要素の中でも、インラインブロック要素というちょっと特殊な要素になります。
箱の中にビー玉を入れ、その箱を机の上に置くイメージをして下さい。
インライン要素への指定、text-align:centerや、left,rightはビー玉を箱のなかのどこに揃えるか(傾けるか)への指示です。箱の中でビー玉の数が多ければ左から右に上から下に詰まります。そしてその1列づつに対して右にするのか中央にするのか左にするのかの指示がtext-alignでの指定になります。インライン要素は通常高さや幅を持てません。画像タグを並べると文字のように並べられますよね。これが、インライン要素の特長で改行を含まない要素です。インライン要素は他にもa要素やstrong要素があります。
その箱の大きさを決めるのが、ブロックレベル要素へのwidthとheight となります。その箱の机に置く位置が、今回の場合はmarginとなります。左右ともautoなので中央というわけです。ちなみに、箱のwidthが決まっていなければ、中央とはなりません。width、marginの左右がautoのセットで、中央になります。箱の大きさが決まっていなければ何を基準に中央にすればいいのかわからないので当然ですよね。ブロック要素は通常前後に改行を含みます。見出しやp要素、箇条書き、表などもブロック要素です。
で、今回のimg要素は、インラインーブロック要素。外向きにはインラインで、内向きにはブロック要素となり、インライン要素の1つです。外部に対してはインラインなので画像を文字のように並べる事も可能ですし、内向きにはブロック要素なので、高さや幅を持て、paddingなども思った感じに効かせることが可能です。
上記を含めその他の特長は以下のページがまとまっているように思います。ブロックレベル要素とインライン要素はhtml+cssを理解するうえで重要な概念ですので、しっかり学ばれることをお勧めします。
ブロックレベル要素とインライン要素 - Web標準普及プロジェクト - もじら組
mozilla.gr.jp/standards/webtips0015.html
No.3
- 回答日時:
すみません。
http:の置換が完了していませんでした。★タブは_に置換してあるので戻す。
★http://はhttp://に置換してあるので戻す。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css">
<!--
html,body{margin:0;padding:0;}
h1,h2,h3,h4,h5,h6{margin:0;line-height:1.6em;}
p{text-indent:1em;}
div.header,div.section,div.footer{width:90%;min-width:470px;max-width:900px;margin:0 auto;padding:5px;}
div.section div.section{width:auto;min-width:0;margin-left:2em;}
div.section{position:relative;}
div.section p img.mainPhoto{display:block;width:80%;height:auto;margin:20px auto;}
div.section div.figure{width:90%;margin:10px auto;position:relative;text-align:center;border:solid 1px silver;}
div.section div.figure img{width:80%;height:auto;margin:5px auto;}
div.section div.figure p{width:80%;margin:0 auto;text-align:left;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
__<p>このページでは画像はWikiの物を使用しています。</p>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>本文はsection</p>
__<p><img src="http://upload.wikimedia.org/wikipedia/commons/d/d5/FujiSunriseKawaguchiko2025WP.jpg" width="400" height="300" alt="富士山" class="mainPhoto">は、山梨県(富士吉田市、南都留郡鳴沢村)と静岡県(富士宮市、裾野市、富士市、御殿場市、駿東郡小山町)に跨る活火山である。標高3,776 m、日本最高峰の独立峰で、その優美な風貌は日本国外でも日本の象徴として広く知られている。</p>
__<div class="section">
___<h3>項見出し</h3>
___<p>本文項記事</p>
___<div class="figure">
____<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/Mount_Fuji_from_Hotel_Mt_Fuji_1995-2-7.jpg/1024px-Mount_Fuji_from_Hotel_Mt_Fuji_1995-2-7.jpg" width="420" height="258" alt="冠雪した富士山を山中湖から眺める">
____<div class="figcaption">
_____<p>山中湖湖畔から見た富士山の雄姿</p>
____</div>
___</div>
___<p>sectionの階層でレベルが判断される</p>
___<ul>
____<li>HTMLには文書構造しか書かれていないためHTMLのメンテナンスも容易で、HTMLに手を加えることなくデザインは自由に多彩に変更できる。</li>
____<li>class名のheader,section,footer,figure,figcaptionはHTML5の新しい要素の使い道に合わせてあるため、そのままHTML5の要素に変更できます。
_____<ul>
______<li><div class="header"></div>→<header></header></li>
______<li><div class="section"></div>→<section></section></li>
______<li>・・・・・・・・・</li>
_____</ul>
____</li>
___</ul>
___
__</div>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2013-03-03</dd>
__</dl>
_</div>
</body>
</html>
No.2
- 回答日時:
とても酷いサイトを参考にされているようですね。
★そもそもデザインのためにHTMLを書いていたらデザイン変える時にどうするの(^^)
>imgをdivで囲ってdivにCSSを指定すると上手く中央揃えが可能です。
><div class="center"><img src="icon.jpg" /></div>
気が変わって左寄せにしようとなったらHTML書き直すか、div.center{text-lign:left;}
スタイルシートを利用する最大の目的『構造とプレゼンテーションの分離( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』を理解できていない。
まず、HTMLをきちんとマークアップします。その際はデザインではなく、あくまで文書構造をマークアップします。XHTMLは面倒くさいし、XMLが必要でない世界では、多分廃れていくと思いますからHTML4.01strictが良いでしょう。後方互換を考えないならHTML5
>しかし、img class="line" の方でも、画像のサイズは調整できています。
左右のマージンだけでなく画像サイズも調整したいと言うことでしたら、そのようにデザインしてみましょう。
★class名は文書構造を補完する物でlineとかcenter、leftのようにデザインを指定するものではない。HTMLもスタイルシートもメンテナンスが楽になります。
>「imgに埋め込んだclassを使って画像を中央揃えする方法。」だとできません。
サンプルのように簡単にできます。
ただし、そのためにclassを書くのではなく、HTMLの文書構造に従って・・classをつけるのでしたら、あくまでその画像の所属するクラスを書くと考えると良い。
★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# )
でチェック済みのHTML4.01strict + CSS2.1
★タブは_に置換してあるので戻す。
★http:// はhttp://に置換してあるので戻す
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css">
<!--
html,body{margin:0;padding:0;}
h1,h2,h3,h4,h5,h6{margin:0;line-height:1.6em;}
p{text-indent:1em;}
div.header,div.section,div.footer{width:90%;min-width:470px;max-width:900px;margin:0 auto;padding:5px;}
div.section div.section{width:auto;min-width:0;margin-left:2em;}
div.section{position:relative;}
div.section p img.mainPhoto{display:block;width:80%;height:auto;margin:20px auto;}
div.section div.figure{width:90%;margin:10px auto;position:relative;text-align:center;border:solid 1px silver;}
div.section div.figure img{width:80%;height:auto;margin:5px auto;}
div.section div.figure p{width:80%;margin:0 auto;text-align:left;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
__<p>このページでは画像はWikiの物を使用しています。</p>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>本文はsection</p>
__<p><img src="http://upload.wikimedia.org/wikipedia/commons/d/ … width="400" height="300" alt="富士山" class="mainPhoto">は、山梨県(富士吉田市、南都留郡鳴沢村)と静岡県(富士宮市、裾野市、富士市、御殿場市、駿東郡小山町)に跨る活火山である。標高3,776 m、日本最高峰の独立峰で、その優美な風貌は日本国外でも日本の象徴として広く知られている。</p>
__<div class="section">
___<h3>項見出し</h3>
___<p>本文項記事</p>
___<div class="figure">
____<img src="http://upload.wikimedia.org/wikipedia/commons/th … width="420" height="258" alt="冠雪した富士山を山中湖から眺める">
____<div class="figcaption">
_____<p>山中湖湖畔から見た富士山の雄姿</p>
____</div>
___</div>
___<p>sectionの階層でレベルが判断される</p>
___<ul>
____<li>HTMLには文書構造しか書かれていないためHTMLのメンテナンスも容易で、HTMLに手を加えることなくデザインは自由に多彩に変更できる。</li>
____<li>class名のheader,section,footer,figure,figcaptionはHTML5の新しい要素の使い道に合わせてあるため、そのままHTML5の要素に変更できます。
_____<ul>
______<li><div class="header"></div>→<header></header></li>
______<li><div class="section"></div>→<section></section></li>
______<li>・・・・・・・・・</li>
_____</ul>
____</li>
___</ul>
___
__</div>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2013-03-03</dd>
__</dl>
_</div>
</body>
</html>
No.1
- 回答日時:
display: block; を追加するとか。
img.line{
width:
700px;
margin-left: auto;
margin-right: auto;
display: block;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTML属性での「""」 「''」違い
-
複数のボタンを等間隔に、かつ...
-
div要素が重なってします
-
html の divとtable の役割
-
グラフィックス
-
divとpの使いわけ
-
画面を縮小するとカラムが落ち...
-
フッターがウインドウの一番下...
-
idとclassの指定方法
-
htmlの見出しタグ(<h1>)の次...
-
<div id="container">の使いか...
-
htmlのolやulなどlistにtitleや...
-
reuterのScraypingで不思議な現...
-
レスポンシブかつ、スマホ、携...
-
ホームページ作成会社を探して...
-
<BR> が多数連続しています。
-
リストで画像を右に表示したい
-
コンピューターの画像ブロック
-
特定範囲内のCSSの継承を断ち切...
-
<!-- #BeginLibraryItemとは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
HTML属性での「""」 「''」違い
-
div要素が重なってします
-
<div id="container">の使いか...
-
複数のボタンを等間隔に、かつ...
-
html の divとtable の役割
-
divとpの使いわけ
-
ヘッダーとフッターだけ背景を...
-
min-heightとheightの違いについて
-
セクションをdivで囲むと見出し...
-
画面を縮小するとカラムが落ち...
-
ヘッダーを左右に二分割する方...
-
1時間30分を簡単に表したいで...
-
スペースを使わず文字位置を揃...
-
CSSで、contentsがfooterに重な...
-
h1に自分自身へのリンクを張...
-
divの中に外部のHTMLを埋め込む
-
divを横に並べる方法
-
hタグの右横に画像を表示
-
h1のテキストサイズよりh2の方...
おすすめ情報