• 締切済み

ol要素の番号とリスト項目の離れについて

最近HPを作り始めた素人です。 DWでol要素を使って順序つきの項目リストを作っております。 DWのデザインウィンドウとIEだとちゃんとリスト項目の行頭に番号が表示されるのですが、Google Chromeで閲覧すると番号とリスト項目が離れて表示されてしまいます。 (番号は左寄り、項目は中央です。) 例 <ol> <li>アメリカ</li> <li>フランス</li> <li>イギリス</li> </ol> IE        1. アメリカ        2. フランス        3. イギリス Chrome 1.                            アメリカ 2.                            フランス 3.                            イギリス 因みにこのol要素をdiv idで囲んでいてText-alignをcenterにしております。 単純な間違いだとは思うのですが、知識不足のため分かりません。 恐れ入りますが、どなたかご教授お願いいたします。                      

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

もしされたいことが、 <ol>  <li>あいうえお</li>  <li>かきくけこさし</li>  <li>すせそ</li> </ol> を |   1.あいうえお   | |  2.かきくけこさし  | |    3.すせそ    | とされたいのでしたら >list-itemの幅を指定してdisplay:inline-blockにしたら番号だけが消えてしまいました。  ではなくて、 ol{ counter-reset:counter;/* counterカウンターリセット */ width:20em;/* 幅きめ */ background-color:yellow; text-align:center;/* 中央 */ } ol li{ display:inline;/* inline */ margin:0 auto; background-color:aqua; } ol li:before{ content: counter(counter) ". ";/* 内容の追加 */ counter-increment: counter;/* カウンターの加算 */ } ol li:after{ content:"\A";/* 内容(改行コード)の追加 */ white-space:pre;/* 改行を有効に */ } になります。 分かりやすいように色付けしてます。

全文を見る
すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

text-alignが指定されると、その内容はwidthの中央に配置されます。  ここで、外見は同じになりますが、リストの左右のpadding,marginはブラウザによってデフォルトの指定が異なります。 ul______ |       |ulのpaddig li | ul______ |       |liのmargin li |  また、リストマークをどこに置くかも差があります。 項目(list-item)の内容の直前に置くもの  IE,firefox 項目(list-item)のブロックの直前に置くもの  Opera,Chrome,Safari  解決策としては、list-itemの幅を指定して、display:inline-blockとして、その内部ではtext-align:left;が良いでしょう。

akimotoj35
質問者

お礼

ご回答して頂き、ありがとうございます。 list-itemの幅を指定してdisplay:inline-blockにしたら番号だけが消えてしまいました。そこでdisplay:inline-blockはしないでlist-itemの幅だけを指定してみたら、数字がセンター寄りになりだいぶ見やすくなったのでこれでいこうと思います。 ブラウザーごとにリストマークを置く位置に差があるとは知らなかったので大変勉強になりました。 本当にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • リスト項目の要素

    CSSでリスト項目 li にmarginやpaddingを指定できるようですが、 リスト項目 li はブロックレベル要素とインライン要素の どちらになるんでしょうか?

    • 締切済み
    • CSS
  • 番号付きリスト(<Ol><Li>・・・</Ol>)の数字を全角に。

    番号付きリスト(<Ol><Li>・・・</Ol>)の数字を全角に。 お世話になっております。 番号付きリスト(<Ol><Li>・・・</Ol>)の数字を全角にしたいのですが、 そのようなことはできるのでしょうか。 ご教授ください。よろしくお願いします。

    • ベストアンサー
    • HTML
  • リストの番号と項目の間

    リストの番号と項目の間が空いているのがきになるのですが、 CSSなどで狭める方法はありますか。<OL><LI>タグのとき 120. 投稿カテゴリー で番号と「投」の字の間が開きすぎなのです。

    • ベストアンサー
    • HTML
  • リスト番号

    <ol> <li>あああ</li> <li>いいい</li> </ol> とすれば文頭に1.2....と番号が自動で割り振られますが、IE6で見たときに全部「1」になるんです。他のブラウザでは正しく表示されます。 なぜでしょうか? ※文法ミスはありませんでした(ネットで検証済み)。

    • ベストアンサー
    • HTML
  • olのタグの入れ子で、1-1等の番号を振りたいが

    お世話になります。 olを使用したリストの入れ子で、1-1、1-2などの番号を 振る方法はないでしょうか。 例で言いますと、 <ol> <li>A <ol> <li>AA</li> <li>AB</li> </ol> </li> </ol> …等とすると、 1.A 1-1.AA 1-2.AB のように表示させたいのですが、このように、 入れ子の数に対して、「1-3-1」とか『2-A-1-1』などの 番号を振る方法とは、ありますでしょうか。 もしあるのであればご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ol要素で思い通りに表示できないです。 

    ol要素で思い通りに表示できないです。  皆様はじめまして。こんにちわ。 ホームページを作っているのですが解決できない問題があり、解決方法を知りたく 投稿させていただきました。 下記の内容についてご存知の方のお力をお借りできればと思います。 質問は下記の2点です。 1.Google ChromeとFirefoxで画像の通り、右コンテンツの<ol>要素で、番号と文字との間に空白が出来ます。   IE、Operaでは空白はできません。空白をなくす方法があれば教えていただきたいです。 2.ol要素内のリストの文字なのですが、幅が足りない場合自動改行されますが、   改行された2行目の文字が一行目の文字よりも左側に表示されてしまいます。   これを画像にある赤い矢印の通りに一行目の文字と同じ位置で自動改行されるように   したいのですが方法がわかりません。方法があれば教えていただきたいです。 以上です。 ホームページの初心者なため、情報が足りなければ申し訳ございません。その場合必要に応じて情報を追加させていただければと思います。

    • ベストアンサー
    • HTML
  • UL OL タグのインデントについて

    UL OLタグでリストを作った時、通常下記のように表示ますが、 リスト  ・項目1  ・項目2  ・項目3 これを リスト ・項目1 ・項目2 ・項目3 のように<li>でくくったものをインデントさせないで表示することは可能でしょうか?

    • ベストアンサー
    • HTML
  • jQueryでリストを3項目ずつにしたい。

    いつもこちらでお世話になっています。 またjQuery関連で質問をさせて下さい。 下のようなリスト項目をfloatさせています。 <ul class="box"> <li>項目1</li> <li>項目2</li> <li>項目3</li> <li>項目4</li> </ul> レイアウトをcssで設定して 1行あたり3項目ずつの横並びにしたいと考えています。 4項目以上の場合は、 2行目に、あらたに3項目分のリストを表示したいです。 ※liの個数は動的に変化します。 ※cssの方は特に問題なく出来ています。 例えば上記の例のように4項目あった場合に 2行目が1項目分しかないため、2項目分の余白ができるので その足りない分のliの個数を算出し、liを追加したいと考えています。 $('ul.box').append('<li />'); を使うのだと思うのですが どのようにappendするliの個数を、算出したらよいのでしょうか? 詳しい方、初心者の私にどうかご教授下さい。 いつもながらに恐縮ですが、何卒、宜しくお願いいたします。

  • olタグ・liタグで一部のリストを横並びにした

    olタグ・liタグで一部のリストを横並びにしたい場合 olタグに display: inline; list-style-type: none; としても意味がないのでしょうか? <style type="text/css"> ol.test1{ display: inline; list-style-type: none; }</style> <ol class="test1"> <li><a href="#">階層1</a></li> <li><a href="#">階層2</a></li> <li><a href="#">階層3</a></li> </ol> としても横にはならずに番号が消えました。 なので li.test2{ display: inline; list-style-type: none; } として <ol> <li class="test2"><a href="#">階層1</a></li> <li class="test2"><a href="#">階層2</a></li> <li class="test2"><a href="#">階層3</a></li> </ol> としたのですが liの数だけスタイルシートを指定しないとダメなのでしょうか? <ol> <li class="test2"><a href="#">階層1</a></li> <li><a href="#">階層2</a></li> <li><a href="#">階層3</a></li> </ol> のように一つだけクラスに入れたら そこだけ番号が消えた上 横並びにはなりませんでした。

    • ベストアンサー
    • CSS
  • jQueryでリスト項目の表示・非表示を切りかえる

    jQueryに詳しい方教えてください。 下記のようなHTMLがあって、 jQueryを使って<li>要素の表示/非表示を切り替えたいのです。 ---------------- HTMLスクリプト <ul class="test">  <li>項目1</li>  <li>項目1</li>  <li>項目1</li> </ul> 切り替えるタイミングはxmlのデータ内にflagを立てています。 flagの値は取得できました。(確認済み) 仕様としては、flagの値が 0の時は→<li>要素の1つ目と2つ目を表示させる。 1の時は→<li>要素の3つ目のみを表示させる。 2の時は→<li>要素のすべてを表示させる。 ということをしたいのです。 ですが、なぜかうまくいきません。 以下のように書きました。 if(flag==0){  $(".test li:eq(2)").hide(); }else if(settlementflag==1){  $(".test li:eq(0)"), .test li:eq(1)").hide(); }else if(settlementflag==2){  //何もしない }; そもそもこうゆう書き方で合っているのしょうか? jQueryを勉強したてで、恥ずかしいばかりですが、 ご教授のほど宜しくお願いいたします。

    • ベストアンサー
    • AJAX