• ベストアンサー

Firefoxだとズレてしまう

<h1 class="text">タイトル</h1><p class="navi"><a href="#">↑上↑</a></p> h1.text { width:69%; float:left; font-size: 10pt; color:black; background-color:white; border-color:black; border-width:1px 0px 1px 5px; border-style:solid; padding:0px 0px 0px 4px;} .navi { width:29%; float:left; text-align:right; font-size: 10pt; color:black; background-color:white; border-color:black; border-width:1px 1px 1px 0px; border-style:solid; padding:0px 2px 0px 0px;} このようにしたいのですけど、firefoxで見ると表示がズレてしまうので困っています(Explorerでも、ちょっと思ったよりも短くなってしまうけれども、一応表示される)。何かよい方法はないでしょうか。

  • HTML
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • asadome
  • ベストアンサー率42% (3/7)
回答No.3

#2のasadomeです。 ああ、余計ややこしくしてしまったようで;^^ そこを直したい、というだけならh1.textと.naviだけに設定するのもアリかと思います。 でも、全体をリセットする癖がついていると、今回のような上下ズレや諸々のCSSバグがあまり起きなくなるので入れるようにはしています。 pの行間については、このリセットの後でp全体にline-heightを設定しています。ここら辺はHTMLでのpの使い方にもよりますが…。 一行だけの場合、行間を設定しても関係ないのでp全体に行間を設定してもいいんじゃないかな、と思いますが。 また、このリセットは必ず全部入れなくてはいけないということではなく、 ズレ回避させるだけであれば{margin:0;padding0;}の部分だけで十分だったりします。 必要ないリセット項目(strongの字体やpの行間など)があればそこだけ削除しても構わないですし。

checkitnow
質問者

お礼

リセットしたほうが、確かに、画面全体もしまって、いいかんじにフィットしたので リセットしたほうがよいのかな、と思ってきました。 line-heightは、main部分の全部にline-height120%か何かをあてはめています。ただ、<p>と打つと普通なら、<br>のように一行あいて改行されるのにリセットすると改行されなくて、h2のあとの改行はいらなくて、すぐ下にピタッと文章が来るようになって(少しすき間が空くくらい。でも改行のようにたくさんあかない)、その方が見やすくなってよかったのですが、今度は文中に<p>しても改行しなくなったので、あれれ、どうしようかと思ったのです。 <P>したら改行するように設定するか、<P>はリセットしないか、したらいいのですね。でもリセットしなければ今度はh2の下が空くのです。そこは空かないほうがキュッとしまっていいのです。だからh2など、見出しの下のすき間はあまりなくて、普段、<P>するときだけ空くように設定したいのです。 リセットせずにもー改行は<br>にしてもいいのだけど<br>はあまり使わないほうがいいと聞いたので悩むところですが、こうしたことは質問とだいぶズレてきたし(質問がFireFoxだとズレてしまうだけに)Pの使い方は人によって違うようなのでこの辺で締め切ったほうがいいのでしょうか。何度も回答ありがとうございました。

その他の回答 (2)

  • asadome
  • ベストアンサー率42% (3/7)
回答No.2

h1とpの上部マージンの差ですね。 CSSデザインの際には、各タグのmargin,paddingをゼロに設定してリセットをかけてからmargin,paddingを新たに設定すると上手くいきますよ。 CSSの先頭に、 h1,p{ margin:0; padding:0; } を追加するとよいです。 ※ホントはbody,div,dl,dt,dd,ul,ol,li,h1,h2,~といった風にブロックライン要素のタグ全部につけてやると後の設定がやりやすくなります。 Yahoo!のHTMLソースのスタイルシートを見てみると、同じようなものが入ってます。 これを追加したソースを、IE,firefox,opera,safariでそれぞれ試してみましたが問題なさそうです。

checkitnow
質問者

お礼

はい、全体的にリセットすると綺麗に表示されました。ありがとうございます。 strongなどもリセットされると太字にはならないのですね。なんか太字じゃないほうが綺麗でシンプルに見えてよく思えるという発見がありました。が、しかし、リセットすると、またリストなども、いろいろごちゃごちゃになって、また設定しなおさなくてはいけないのですね。 でも、なんというか、全体じゃなく、部分部分、リセットしてもいいのでしょうけど、全体にやっておいたほうがいいのでしょうか。頭がこんがらがってきました。 でも確かに、デザインも、大きさにズレがあったりしましたが、キュッとしまったように思えます。でもこれからまた一個一個手直ししていくのかと思うと、うーむ、なかんじですが、皆さんは、最初にリセットしているものなのでしょうか?また、リセットしておいたほうがやっぱりよいのでしょうか? ご回答どうもありがとうございます。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

ブラウザにより、各タグのデフォルトスタイルが違うためです。 <h1> と <p> と異なるタグを使わず、両方同じタグを使うか(この場合だと<span>がいいです)、デフォルトスタイルが影響を与えないように、全部の属性を指定するか。 この場合だと、最小限の変更としては、 .navi のほうに、margin-top: 0px; を追加すれば合うようです。 (safariやoperaなどはまた違うかも) 「デフォルトスタイル」で検索するといろいろ情報が得られるでしょう。

checkitnow
質問者

お礼

デフォルトスタイルをリセットっていうのを今まで知らなかったのでさっそくやってみると、確かに綺麗に表示されました。ありがとうございます。 けれども、当たり前ですが、リセットすると、他の部分が、たとえばpの行間が空かなくなったりしました(リストもちゃんと表示されません)。 何もしていない状態だと、今までh2の下が空くのがどうも嫌だったのでよかったですが、一つ目のpは、いいですが、二つ目以降pしても行間があいてくれないのでずっしり詰まってしまいます。 だとすると、pにいちいちclassを記して、二つ目以降、行間が空くように設定するものなのでしょうか。皆さんは、pはどのように設定、表示されてますか?

関連するQ&A

  • ホームページビルダーでスタイルシートを使ったのですが?

    今、ホームページビルダーで簡単な2カラム(右メニュー)のテンプレートを作っています。 質問ですが、メニューバー(サイドバー)に色を付けたくて、画像を使う事にしました。 <div class="main">に画像(background.gif)を入れ属性で繰り返す(垂直方向)にチェックをいれたのですが、IEやfirefoxでプレビューでは反映されていないです。 色々いじってみたのですがどうしても解りません。どこが間違っているのか教えていただけないでしょうか? よろしくお願いします。 HTML <body> <div class="box"> <div class="header"> <span class="site_name">ここにサイト名を入れる</span> <h1>ここにh1</h1> <div class="description_1">ここに簡単な説明文</div> </div> <div class="main"> <div class="contents">コンテンツ部分<br /> </div> <div class="menu"> メニュー部分 </div> </div> <div class="footer"> フッター部分 </div> </div> </body> スタイルシート * { margin:0; padding:0; } .box{ width : 750px; margin: 0 auto; border-left-width : 1px; border-left-style : solid; border-left-color : black; border-right-width : 1px; border-right-style : solid; border-right-color : black; border-bottom-width : 1px; border-bottom-style : solid; border-bottom-color : black; } .header { width : 726px; height : 96px; background-color : #b9b9ff; padding-top : 12px; padding-left : 12px; padding-right : 12px; padding-bottom : 12px; border-bottom-width : 2px; border-bottom-style : solid; border-bottom-color : black; } .main { width : 750px; background-image : url(file:///C:/Documents and Settings/※※※/img/background.gif); background-repeat : repeat-y; background-position : 0px 0px; margin-top : 0px; margin-bottom : 0px; margin-left : auto; margin-right : auto; background-color : #ffffff; } .menu { float: left; width : 180px; padding-top : 10px; padding-left : 10px; padding-right : 10px; padding-bottom : 10px; margin-left : auto; margin-right : auto; } .contents { float: left; width : 526px; padding-top : 12px; padding-left : 12px; padding-right : 12px; padding-bottom : 12px; } .footer { clear: both; width : 726px; height : 26px; background-color : #b9b9ff; padding-top : 12px; padding-left : 12px; padding-right : 12px; padding-bottom : 12px; text-align : center; } .menu ul { list-style: none; } .site_name{ font-size : 21px; font-weight : bold; margin-left : 12px; } h1{ font-size : 15px; margin-top : 12px; margin-left : 24px; } .description_1{ font-size : 12px; font-weight : normal; margin-left : 24px; }

  • floatについて

    ■ □ と並んでいた場合■にスタイルシートでfloat:leftとすると□が右にきますよね。( ■□となる) それで私はfloat:leftは『次に来る要素を自分の右に移動させる』と 解釈してました。 それで質問なのですが以下のタグの場合どうして最後に(.set1)にfloat:leftが必要なのでしょうか? 次に要素がきていないからあっても意味がないと思ったのですが、実際 はずしてみると間に幅ができてデザインが崩れてしまいます。 また全体の枠を見えるよう最初のdivに.wakuで設定したのですがfloat:leftがあるときには長い一本の線になってしまいます。 どうしてこうなるのでしょうか? <html> <head> <style type="text/css"> .waku{border-color:#cccccc;border-style:solid;border-width:3px;} .set1{border-color:#cccccc;border-style:solid;border-width:1px; width:150px;height:500px;background-color:white;color:#ffffff; margin:0 2.5;float:left;} .main{border-color:#cccccc;border-style:solid;border-width:1px; width:500px;height:500px;background-color:white;color:#ffffff; margin:0 2.5;font-weight:bold;float:left;} .set2{border-color:#cccccc;border-style:solid;border-width:1px; width:150px;height:500px;background-color:white;font-weight:bold; color:#ffffff;margin:0 2.5;float:left;} </style> <div class="waku" align="center"> <div class="set1"> <div>左1</div> <div>左2</div> </div> <div class="main">真ん中</div> <div class="set2">右</div> </div>

    • ベストアンサー
    • HTML
  • CSSでページ作成、Firefoxでうまく表示できません

    ご教授いただけますでしょうか。 CSSでページ作成を試みていますが、IEでは思ったとおりに表示されますが、Firefoxでは崩れてしまいます。 内容は、大枠の中に、ヘッダーと左右のフロート(左:メニュー、右:内容)のシンプルなデザインです。 以下、CSS部分です。 /* 大枠 */ #container { width: 800px; margin-right: auto; margin-left: auto; margin-top: 0px; margin-bottom: 0px; background-color: #FFFFFF; font-size: 13px; border-left: 1px #663333 solid; border-right: 1px #663333 solid; border-top: 1px #663333 solid; border-bottom: 1px #663333 solid; padding: 5px; text-align: left; } /* ヘッダー */ .header { width: auto; height: auto; background: url(img/header.jpg) repeat-x; margin: 0px; } /* メニュー */ .left { float:left; width:20%; background-color:#ffffff; padding: 5px; } /* 内容 */ .right { float:right; width:75%; background-color:yellow; padding: 5px; } ここからHTMLに書き込んだものです。 <div id="container"> <div class="header"> ヘッダー </div> <div class="left"> メニュー </div> <div class="right"> 内容 </div> </div> Firefoxでは、大枠にあたる container 部分が、ヘッダーしか囲まず、メニューと内容部分がその下に表示されます。 どこがおかしいか、ご指摘いただければ幸いです。 どうぞよろしくお願い申し上げます。

    • ベストアンサー
    • CSS
  • 【急ぎます!】ページ幅を解除と、メニューの色を変更するには

    http://flash.xtaro.com/sozai/tool/fcount/sample.htmここを参考にHPを作っています。 <!-- BODY { MARGIN-TOP: 3px; COLOR: #000000; BACKGROUND-COLOR: #e6eee6; TEXT-ALIGN: center ;} TABLE { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; WIDTH: 700px; BORDER-COLLAPSE: collapse; BORDER-RIGHT-WIDTH: 0px ;} TD { FONT-SIZE: 11pt; MARGIN: 0px; WIDTH: 140px; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #66cc99; TEXT-ALIGN: center ;} DIV { BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; BORDER-LEFT: #999999 1px solid; WIDTH: 700px; BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #ffffff ;} .menu { BORDER-RIGHT: #66cc99 0px solid; PADDING-RIGHT: 3px; BORDER-TOP: #66cc99 0px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #66cc99 0px solid; WIDTH: 100%; COLOR: #ffffff; PADDING-TOP: 3px; BORDER-BOTTOM: #66cc99 0px solid; BACKGROUND-COLOR: #339966; TEXT-DECORATION: none ;} .menu:hover { COLOR: #004411; BACKGROUND-COLOR: #bbffdd ;} .close { BORDER-RIGHT: #ff0000 1px solid; BORDER-TOP: #ff0000 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 11pt; BORDER-LEFT: #ff0000 1px solid; COLOR: #dd0000; BORDER-BOTTOM: #ff0000 1px solid; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none ;} .close:hover { COLOR: #ffffff; BACKGROUND-COLOR: #ff0000 ;} --> (1)メニュー1や2の色を変更するにはどうすればいい? (2)ページ背景色をhttp://www.kds.kddi.com/topics/index.htmlのようにグラデーションにするにはどうすればいい? (3)ページ幅を変更するにはどうすれいい?

    • ベストアンサー
    • HTML
  • CSSを消して表に色を付けたい!!!

    参考サイトのソースをそのまま使って編集してたら、表を挿入して、色を付けようとしたら「CSSが設定されているため・・・」と出て表に色がつけられません。 <!-- BODY { MARGIN-TOP: 3px; COLOR: #000000; BACKGROUND-COLOR: #e6eee6; TEXT-ALIGN: center ;} TABLE { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; WIDTH: 900px; BORDER-COLLAPSE: collapse; BORDER-RIGHT-WIDTH: 0px ;} TD { FONT-SIZE: 11pt; MARGIN: 0px; WIDTH: 140px; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #48D1CC; TEXT-ALIGN: center ;} DIV { BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; BORDER-LEFT: #999999 1px solid; WIDTH: 900px; BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #ffffff ;} .menu { BORDER-RIGHT: #66cc99 0px solid; PADDING-RIGHT: 3px; BORDER-TOP: #66cc99 0px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: #66cc99 0px solid; WIDTH: 100%; COLOR: #ffffff; PADDING-TOP: 3px; BORDER-BOTTOM: #66cc99 0px solid; BACKGROUND-COLOR: #1E90FF; TEXT-DECORATION: none ;} .menu:hover { COLOR: #004411; BACKGROUND-COLOR: #FFF8DC ;} .close { BORDER-RIGHT: #ff0000 1px solid; BORDER-TOP: #ff0000 1px solid; FONT-WEIGHT: bold; FONT-SIZE: 11pt; BORDER-LEFT: #ff0000 1px solid; COLOR: #dd0000; BORDER-BOTTOM: #ff0000 1px solid; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none ;} .close:hover { COLOR: #ffffff; BACKGROUND-COLOR: #ff0000 ;} --> 1.CSSを全て解除しなければいけないのですか? 2.メニューにカーソルをあてたら色が変わるようにしています。表に色をつけるようにするには、どこを削除すればいいのですか?

  • リスト表示がうまくいきません IEの問題なのか?

    メニュのナビを下記のHTML及びCSSで表現しています 私のパソコンでは問題なく表示しました OS:WinXP Chrome/firefox/IE8 先日友達のパソコンで見るとこのメニューナビが右に長いのです 「お問合わせ」の横にもメニューナビの背景色が続いています 友人のパソコンは OS:WinVista IE7 他の条件では検証してないのでわかりませんが… OS:WinVista が問題なのか? IE7 が問題なのか? 例えば問題であれば解決策はあるのでしょうか? アドバイスいただけないでしょうか? ---------------------------------------------------------- <div id="menu"> <ul class="menu_navi"> <li><a href="./index.php">ホーム</a></li> <li><a href="./tv.php">テレビ番組</a></li> <li><a href="./info.php">いろいろな情報</a></li> <li><a href="./mail.php">お問合わせ</a></li> </ul> </div> ---------------------------------------------------------- #menu { width: 100%; border-left: 1px solid white; overflow: hidden; } ul.menu_navi{ height: 50px; margin: 0px; position: relative; float: left; left: 50%; color: white; border-bottom: 5px solid black; background-color: red; } ul.menu_navi li{ float: left; position: relative; float: left; right: 50%; border-right: 1px solid white; display: block; } ul.menu_navi li a{ height: 40px; width: 239px; padding: 10px 0px 0px; color: white; border-bottom: 5px solid black; font-size: 18px; font-weight: bold; text-decoration: none; display: block; text-align: center; background-color: red; vertical-align: middle; line-height: 140%; } ul.menu_navi li a.nowthis{ border-bottom: 5px solid white!important; } ul.menu_navi li a:hover{ padding: 10px 0px 0px; border-bottom: 5px solid red; color: red; background-color: white; }

    • ベストアンサー
    • HTML
  • CSSでバックグラウントカラーの途切れを直したい

    CSS初心者です。 CSSでfloatを利用してプロックを左右に並べています。 その際、左のブロックにbackground-colorを指定していますが、右のブロックの情報が多かった場合に、background-colorが途中で終わってしまいます。 どのようにしたらよいでしょうか。 下記のCSSもおかいしところがあるかも・・・指摘をお願いします。 #page { width: 750px; margin-right: auto; margin-left: auto; text-align: left; border: 1px solid #666666; margin-bottom: 0px; } div.blocka{ float: left; background-color: #FFC556; width: 150px; margin:0px 0px 0px 0px; padding:5px ; border-right:1px solid #666666 ; } div.blockb { float: left; margin:0px 0px 0px 0px; padding:10px ; width: 550px; }

    • ベストアンサー
    • HTML
  • ホームページ作成

    ナビゲーションを作成中なのですが、教えてください。 CSSで作ってみたんですが一番右と左の白の線の1pxを消したいんですが なにかいい方法ありますか? CSSは #navi { list-style-type:none; width:750px; margin: 0; padding: 0; border-left-width: 1px; border-left-style: solid; border-left-color: #FFF; } ul#navi li { float:left; width:150px; font-family: "A-OTF 新ゴ Pr5 EL"; font-size: 14px; } ul#navi li a { display:block; padding-top:5px; padding-bottom:5px; text-align:center; text-decoration:none; color:#FFF; width:149px; border-right-width: 1px; border-right-style: solid; border-right-color: #FFF; background-image: url(../images/templete/navi2.gif); です。 よろしくお願いします。

  • CSSのリストタグでメニューを作ってますがレイアウトが崩れます

    CSSでリストタグを使ってメニューを作成してますが、Firefoxだとメニューの幅が広く表示され本文にかぶってしまいレイアウトが崩れてしまいます。ちなみにレイアウトは2段組です。 #menu{ text-align: left; width: 175px; float: left } #menu #text ul{ list-style-type: none; margin: 0; padding: 0; border-top: 1px solid white } #menu #text li{ background-image: url("../navi_yajirusi.gif"); background-repeat: no-repeat; background-position: left center; margin: 0; padding: 0; border-bottom: 1px solid white } #menu #text li a{ color: #fff; text-decoration: none; background-color: #1b328d; background-image: url("../navi_yajirusi.gif"); background-repeat: no-repeat; background-position: left center; display: block; padding: 10px 0 10px 10px; width: 175px } #menu #text li a:hover { color: #fff; background-color: #ff0; background-image: url("../navi_yajirusi.gif"); background-repeat: no-repeat; background-position: left center } どなたか詳しい方よろしくお願いいたします。

  • CSSで角丸テーブル

    CSSでDIV要素を使って入れ子し、角の丸いテーブルを作っているのですが、なぜか誤差が出てしまいます。 CSSのソースは次のようなものです。 table(2).gifは角丸テーブルの画像です 画像サイズ:横440px 縦11px .box-center-start { width: 440px; background: url(image/table.gif); background-repeat: no-repeat; } .box-center { width: 440px; background-color: white; margin: 20px 10px 20px 8px; float: left; } .box-center2 { width: 440px; background-color: white; padding: 0px 10px 10px 10px; border-right: 1px solid gray; border-bottom: 1px dashed gray; border-left: 1px solid gray; } .box-center3 { width: 440px; background-color: white; padding: 10px 10px 0px 10px; border-right: 1px solid gray; border-left: 1px solid gray; } .box-center-end { width: 440px; background: url(image/table2.gif); background-repeat: no-repeat; } このように記述し、HTMLに <DIV class="box-center"> <DIV class="box-center-start"></DIV> <DIV class="box-center2"> ~内容 </DIV> <DIV class="box-center3"> ~内容 </DIV> <DIV class="box-center-end"></DIV> と打ってもなぜか綺麗に表示されません。 クラス「box-center-start(end)」の下に、少し余白が入ってしまうのです。(10pxほどの) 何方か助言お願いしますm( _ _ )m