
<img>タグにスタイルシートのclassは、直接設定できるのでしょうか?
例えば,以下のようにテーブルの中にexample.jpgという画像があるとします。
<table border="4" width="250">
<tr>
<td align="left">
<img src="example.jpg" width="100" height="100" borde="0">
</td>
</tr>
</table>
この場合、<td align="left">とあるのでexample.jpgはセルの中で左揃えになって表示されます。
質問1:
ここで、スタイルシート使用して、<td align="left">のまま、example.jpgをセルの中で中央揃えにして表示したいとします。また、スタイルシートを使用して、example.jpgの上下には10pxのマージンを設定します(ここでは、スタイルシートに関する質問のため、あえてhspaceは<img>タグに使用しません。)。スタイルシートの指定は、<head></head>内で行なうことにします。
この場合、以下のように<img>タグの中に直接classを設定できますか?できない場合は、その理由、正しいやり方等をお教え下さい。
<head>
<style type="text/css">
.abc{
text-align:center;
margin-top:10px;
margin-bottom:10px:
}
</style>
</head>
<table border="4" width="250">
<tr>
<td align="left">
<img class="abc" src="example.jpg" width="100" height="100" borde="0">
</td>
</tr>
</table>
やはり、<div></div>で<img>タグを囲んで、
<head>
<style type="text/css">
.abc{
text-align:center;
margin-top:10px;
margin-bottom:10px:
}
</style>
</head>
<table border="4" width="250">
<tr>
<td align="left">
<div class="abc">
<img src="example.jpg" width="100" height="100" borde="0">
</div>
</td>
</tr>
</table>
などとするしか方法がないのでしょうか?
質問2:
また、スタイルシートを使用せずに、上記のテーブルで<td align="left">のままexample.jpgを中央揃えにする方法はあるのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは
><img>タグの中に直接classを設定できますか?
できますが、text-align:center;は効きません
これはブロック要素にしか効かないのでインライン要素である<img>では使えません
理由はインライン要素の場合widthがその内容分しかないため動かそうと思っても横に自由がないからです
><div></div>で<img>タグを囲んで
text-align:center;を使うのであればこういった方法しかないと思います
>方法がないのでしょうか?
<img>を強制的にブロック要素にして中央表示することはできます
img {
display:block;
width:100px;
height:100px;
border:none;
margin:10px auto;
}
>スタイルシートを使用せずに、上記のテーブルで<td align="left">のままexample.jpgを中央揃えにする方法はあるのでしょうか?
<div align="center">
<img >
</div>
とか
<center>
<img>
</center>
とすればできますが、align属性、<center>は非推奨になっています
この回答への補足
leap_dayさん
ご回答ありがとうございました。
><img>を強制的にブロック要素にして中央表示することはできます
>img {
>display:block;
>width:100px;
>height:100px;
>border:none;
>margin:10px auto;
>}
上記の場合、以下のようにスタイルシートにtext-align:center;を含める必要はないのでしょうか?
img {
text-align:center;
display:block;
width:100px;
height:100px;
border:none;
margin:10px auto;
}
No.3
- 回答日時:
こんにちは
margin:10px auto;で
margin:(上下のmargin) (左右のmargin); という風に設定しているので要らないといえば要らないですけど・・・
margin:auto;が効かないときのためにtext-align:center;でも中央表示できるように入れてるのですが、自分の試した中では効かなかったことあまりないので試したこと無いブラウザでmargin:auto;が効かないものもあるかもしれませんね(--;)
ですのでmargin:auto;が効かなかった時用に保険として入れておいたほうがいいかもしれませんね(^^)
※ページ頭につけるDTD宣言(<!DOCTYPE ~>をつけていないとIEではmarginは効かないことはありますけど)
この回答への補足
leap_dayさん
ご回答、ありがとうございました。
下記URLでもお聞きしていますが、
http://oshiete1.goo.ne.jp/qa3808740.html
<td align="left"></td>内の<img>
タグをセンタリングするには、やはり、<div></div>で<img>タグを囲んで、
<head>
<style type="text/css">
.abc{
text-align:center;
margin-top:10px;
margin-bottom:10px:
}
</style>
</head>
<table border="4" width="250">
<tr>
<td align="left">
<div class="abc">
<img src="example.jpg" width="100" height="100" borde="0">
</div>
</td>
</tr>
</table>
などとするほうが、下記の<img>タグをdisplay:block;でブロックレベル要素化する方法よりもよいのでしょうか?
<html>
<head>
<style type="text/css">
.abc{
display:block;
text-align:center;
margin:auto;
width:100px;
height:100px;
border:0px;
}
</style>
</head>
<body>
<table border="4" width="250">
<tr>
<td align="left">
<img class="abc" src="example.jpg">
</td>
</tr>
</table>
</body>
</html>
どのように思われます?
何かお勧めの方法があれば、お教え下さい。
ちなみにyambejp(回答者さん)さんは、<div></div>で<img>タグをくくる方が良いでしょうということでした。
No.2
- 回答日時:
ieのためにtext-align:center;をしておくのもよくやりますね。
<html>
<head>
<style type="text/css">
.abc{
display:block;
text-align:center;
margin:auto;
width:100px;
height:100px;
border:0px;
}
</style>
</head>
<body>
<table border="4" width="250">
<tr>
<td align="left">
<img class="abc" src="example.jpg">
</td>
</tr>
</table>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tableタグとformタグの組み合わせ
-
テーブル内に棒グラフを作る方法
-
センタリングしたページの印刷
-
ブラウザの文字サイズを変える...
-
FLASHの上にテーブルを重ねるには
-
テーブルが左右上下中央表示に...
-
html でのテキスト結合について
-
HTMLに詳しい方に質問です。。
-
FireFoxで背景が表示されない。
-
ブラウザによってテーブルのセ...
-
ie8のcssでcol要素のwidthがき...
-
IEでテーブル内のテキストが...
-
表の作成をスタイルシートで
-
HTMLのTableの段組について
-
[css]tableのtr、10行ごとに背...
-
作成したメールフォームの内容...
-
ドキュメントタグについて
-
Tableタグで作成した表の縮小
-
【C#】Listを使った自作プロパ...
-
HP作成で教えて下さい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
html でのテキスト結合について
-
tableタグとformタグの組み合わせ
-
Firefoxを使ってるのですがズー...
-
同じクラス名はつけないほうが...
-
テーブルの一部分のセルだけに...
-
divで囲んだ文字が消える
-
Tableタグ内のspan styleが適応...
-
<img>タグにCSSのclass設定可能?
-
cssで、テーブルのtdの中の文字...
-
vbscriptで時計を作りたい
-
td要素内のdiv要素をセンタリン...
-
Tableタグで作成した表の縮小
-
XHTMLに関する質問 順序が逆に...
-
trとtrの間
-
formのinputなどの幅100%指定
-
firefoxで「height: 100%;」と...
-
画像を並べて配置したい
-
表とリスト(ulとtable)の違い...
-
CSSで空けた文頭の全角スペース...
-
Visual Studio で CLR 開発でデ...
おすすめ情報