- ベストアンサー
ol要素で思い通りに表示できない?
- Google ChromeとFirefoxで<ol>要素の番号と文字の間に空白ができるが、IEやOperaではできない。空白をなくす方法は?
- <ol>要素内のリストの文字の自動改行で、改行された2行目の文字が一行目の文字よりも左側に表示されてしまう。一行目と同じ位置で改行させる方法は?
- ホームページ作成中に遭遇した問題の2点。1つは<ol>要素で空白ができるかどうか、もう1つはリストの文字の自動改行の位置に関する問題。解決方法を教えてほしい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
CSSを何も指定しなくても、とりあえず、適当な余白で適当な行間で適当なフォントサイズで表示されますよね。 この「適当」はブラウザによって違います。 このため、CSSで、ちゃんとレイアウトをするためには、とりあえず、このデフォルトの指定をちゃんと自分でやってあげるのが基本です。 結構な量のCSSを指定する必要がありますが、次のページにあるreset.cssを最初に指定してください。少なくとも、ブラウザのデフォルト指定による差は吸収できます。自分の好みがあるなら、これをベースに修正して、何はともあれ最初に指定するようにすると良いでしょう。 http://developer.yahoo.com/yui/reset/ ダウンロードのリンクで落としたファイルのbuildフォルダーの中にresetフォルダーがあります。ここに入っています。
その他の回答 (2)
- tracer
- ベストアンサー率41% (255/621)
この質問内容は非常によく耳にすることですが、同時にとても深いお話です。 reset.cssについては一理ありますが、それ以外にも、どのブラウザで、どのバージョンで、ドキュメントスイッチは何を使っていて、htmlのバージョンが何か・・・とか面倒な話になります。それぞれに指定方法が異なるのです。 ひとまず、質問される前に検索サイトやリファレンスで調べられましたか? 私の一見したところ、Googleで「css ol」を検索すると、まんまの答えがたくさん出てきますよ。 調べた結果、わからない箇所だけを質問されたほうが、回答がつきやすいと思いますし、ご自身の学習にも役立つと思います。
お礼
お礼が遅れまして申し訳ございませんでした。 調べた上で質問させていただいたのですが、調べが足りなかったと反省しております。 もう一度しっかり調べなおしてみたいと思います。 ご回答ありがとうございました。
補足
お世話になっております。 list-style-positionをinsideに指定する事によってブラウザ間の差がなくなりました。 この度は色々と知恵をお貸しいただきありがとうございました。
ブラウザによって、デフォルトのマージンなどが異なるために そのようなことが常に発生済ます。 その対策としては、CSSのリセットを最初に入れて、 から、位置調整します。 基本的事項です。 /*すべてに適用すべきリセット*/ * { margin:0; padding:0; } /*位置調整*/ ol { padding:xxxpx; } ようにしていますか?
お礼
早速のご回答ありがとうございます。 reset.cssは本で読んだとおりに下記のように設定していました。 --------------------------------- @charset "utf-8"; html,body,div,h1,h2,h3,h4,h5,h6, p,address,ul,ol,li,dl,dt,dd, table,th,td,form { margin: 0; padding: 0; border: 0; } --------------------------------- 今回のご指摘どおりにするために上記内容を下記に変更を しましたが、表示に変化はありませんでした。 ---------------------------------------- /*すべてに適用すべきリセット*/ * { margin: 0; padding: 0; } /*位置調整*/ ol { margin: 0px; padding: 0px; } li { margin: 0px; padding: 0px; } ----------------------------------------- marginとpaddingをマイナスにしたり増やしたりしましたが変化はありませんでした。 何か他に原因があるのでしょうか?
お礼
早速のご回答をありがとうございます。 なるほど! 私は自分でreset.cssを作っていました。 このリンク先でダウンロードできるreset.cssは、様々なブラウザの差がなくなるように あらかじめ設定されているリセットのスタイルシートということですよね。 ありがとうございました。早速使ってみたいと思います!
補足
度々のコメントで申し訳ございません。 上記方法を試した所、表示が変わらなかったため再びお力を借りたく 再度コメントさせていただきました。 <実行した事> 上記ホームページからダウンロードし、resetフォルダにある 「reset.css」と「reset-min.css」の両方をアップロードし、 A.htmlファイル(上記画像のhtmlファイル)にて2つのcssファイルの アドレスを指定しました。 するとリストの番号がresetされて消えてしまったため、 A.htmlファイル専用のA.cssのliに「list-style-type: decimal;」を指定しました。 すると再びリストの番号は表示されたのですが、上記の画像と同じ位置に また表示されてしまいました。 他にどういった原因が考えられるのでしょうか?