• ベストアンサー

CSS初心者です。各ブラウザに対応した記述の仕方をご教授ください!

CSSを独学で学んでいる初心者です。 floatを使ってブロックを並べて配置させたいのです。 IE6で見てみたところ、なんとか思ったとおりに表示されたのですが safari、Netscapeなど他のブラウザで見てみるとどうしてもくずれてしまって思ったとおりに表示されません。 http://homepage2.nifty.com/meary/renshu/renshu.html この、「mini_box1」と「mini_box2」を並べて表示させたいのです。 floatを使わなくても構いません、何か良い方法がありましたらご教授お願いします! もしくは私の記述で間違っているところなどもありましたら教えてくださるととても助かります。 ☆HTML☆ <div class="mini_box1"> <a href="#"> <p class="box_moji">mini_box1</p></a> </div> <div class="mini_box2"> <a href="#"> <p class="box_moji">mini_box2</p></a> </div> ☆CSS☆ .mini_box1 { width:330px; height:83px; margin:0px 0px 0px 0px; font-size:11px; border-color: #ccc; border-style: solid ; border-width: 1px; display: block; float: left; } .box_moji { word-break: break-all; } .mini_box2 { width:330px; height:83px; margin:0px 0px 0px 0px; font-size:11px; border-color: #ccc; border-style: solid ; border-width: 1px; display: block; }

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

  • ベストアンサー
  • xs200
  • ベストアンサー率47% (559/1173)
回答No.2

文法エラーがあります。 <a>~</a>内に<p>~</p>を書くことはできません。

nekome002
質問者

お礼

質問者です! お礼が遅くなりましてごめんなさい。 文法チェックありがとうございます!!(;ω;) 右側に何もこないのでこの場合はいらないのかと思ってました; ふんふんなるほど!

その他の回答 (2)

  • xs200
  • ベストアンサー率47% (559/1173)
回答No.3

追加。 .mini_box2にfloat:left;がありません。 横並びにするなら入れてください。 その後、clearを忘れずに。

nekome002
質問者

お礼

間違って↓にここのfloatに関するお礼をつけてしまいました… 続けての文法ミスの訂正ありがたいです!!! 勉強になりましたよー!! ご指摘いただいた2点を修正しました^^

  • koke29
  • ベストアンサー率58% (114/196)
回答No.1

方法としては、 ・ブラウザごとにCSSの記述を書き分ける ・どのブラウザでもそれなりに見えるように調整する(妥協する) くらいでしょうか ブラウザ毎にCSSを切り替える方法が載ってたサイトがあったので 参考に貼り付けておきますね 本気で取り組むなら「クロスブラウザ」のキーワードで検索してみると 色々参考になるサイトが出てきますよー あと、CSSレイアウトの勉強が一通り済んだ時に見て目からウロコが 飛び出たサイトも参考に http://adp.daa.jp/archives/000309.html まさにdiv厨と化していた自分の考え方が凄く変わったサイトです ※ 参考ですので、鵜呑みにする必要はありません。

参考URL:
http://www.designwalker.com/2006/12/css.html
nekome002
質問者

お礼

お答えありがとうございます~!* ゜ + 。・゜・。・ヽ(*^∀^)ノ お返事が送れてごめんなさい! CSSを切り替える方法って以外と簡単だったんですね。ふんふん! なるほど~ クロスブラウザという単語も初耳だったので本当にありがたいです。 そういった内容を知りたいのに今までうまくググれなかったので助かりました。 私も今現在まさにdiv厨(!>w<)と化してます。 コーディングってほんとーに色んなやり方があるんですね! まだちらりとしか見てないのですが時間があるときにじっっくり拝見します♪勉強になりますー

関連するQ&A

  • floatとclearを使ったレイアウト作成について

    http://www.ario-nishiarai.jp/ 上記のサイトのようなページ中央より下のレイアウトを作りたいと思い、下記のようにコーディングしました。 <html> <head> <title>Web</title> <style type="text/css"> .container {text-align:left;width:760px;margin:0px auto;background-color:#FFFFFF;} .content1 {width:760px; height:200; padding:0px; border:1px solid #999999;} .content2 {width:760px;padding:0px;border-right:1px solid #999999; border-bottom:1px solid #999999; border-left:1px solid #999999; margin:0;} .box1 {width:180px; float:left; border-top:1px solid #CCCCCC; border-left:1px solid #CCCCCC; border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC; margin-top:5px; margin-left:5px;} .box2 {width:180px; float:left; border-top:1px solid #CCCCCC; border-left:1px solid #CCCCCC; border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC; margin-top:5px; margin-left:5px;} .box3 {width:180px; float:left; border-top:1px solid #CCCCCC; border-left:1px solid #CCCCCC; border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC; margin-top:5px; margin-left:5px;} .box4 {width:180px; float:left; border-top:1px solid #CCCCCC; border-left:1px solid #CCCCCC; border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC; margin-top:5px; margin-left:5px; margin-bottom:10px;} .box5 {width:220px; float:right; border-top:1px solid #CCCCCC; border-left:1px solid #CCCCCC; border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC; margin-top:5px; margin-left:5px;} .box6 {width:220px; float:right; border-top:1px solid #CCCCCC; border-left:1px solid #CCCCCC; border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC; margin-top:5px; margin-left:5px;} .news {width:350px; height:200; overflow:auto; border-top:1px solid #CCCCCC; border-left:1px solid #CCCCCC; border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC; margin-top:5px; margin-left:5px;} .topics {width:350px; height:200; overflow:auto; border-top:1px solid #CCCCCC; border-left:1px solid #CCCCCC; border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC; margin-top:5px; margin-left:5px;}solid #CCCCCC; margin-top:5px; margin-left:5px;} </style> </head> <body> <div class="container"> <div class="content1"> 画像 </div> <div class="content2"> <!--左側--> <div class="box1"> タイトル<br /> メニュー </div> <div class="box2"> タイトル<br /> メニュー </div> <div class="box3"> タイトル<br /> メニュー </div> <div class="box4"> タイトル<br /> メニュー </div> <!--中央--> <div class="news"> あ </div> <div class="topics"> い </div> <!--右側--> <div class="box5"> う </div> <div class="box6"> え </div> </div> </div> </body> </html> box1、box2、box3、box4のボックスは左側に、news、topicsのボックスは中央に、box5、box6のボックスは右側にレイアウトしたいと思っています。 floatとclearを使って作成するのだと思うのですが、どうコーディングしたら良いのかわかりません。 どこをどう直したら良いかアドバイスいただけますようお願いします。

    • ベストアンサー
    • HTML
  • cssのfloatについて質問があります。

    cssのfloatについて質問があります。 floatがなかなか理解できずに悩んでおります。 下記のようなcssがあり、同じブロック要素でも table,pなどは右に回りこみ、divボックスはfloatを指定しないと floatボックスの下に入ってしまうのをなんか理解できません。 初歩的なことかもしれませんが、 どなたかアドバイスいただけると助かります。 宜しく尾根会い致します。 <html lang="ja"> <head> <title></title> <style type="text/css"> #con { width: 800px; border: solid 1px black; } .left { width: 300px; height: 300px; float: left; border: solid 1px blue; } .right { width: 200px; height: 200px; border: solid 1px red; } table { width: 100px; height: 100px; border: solid 1px green; } p { border: solid 1px yellow; } </style> </head> <body> <div id="con"> <div class="left"> </div> <table> <tr><td>TABLE</td></tr> </table> <p>ppppp</p> <div class="right"> </div> </div> </body> </html>

    • ベストアンサー
    • HTML
  • ボタンのコード css記述バグ?

    以下のボタンのコードに関してですが、ブラウザー上でマウスのポインターをボタンの上におくと、上のボタンと下のボタンとの距離が狭くなりボタンとボタンがくっついてしまいます。 本当は、マウスのポインターをボタンの上におくとボタンの距離を一定に保ちボーダーの幅だけかえたいのですが、どうすればよいでしょうか? 多分、以下のコードにバグがあると思うのですが、分かりません。 どなたか、お分かりの方がおられましたら、教えて下さい。 よろしくお願いします。 キャサリン 以下コード <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> <!-- .test a { display:block; text-decoration:none; background-color:#00FF00; color:#000000; font-size:12px; margin-top:0px; margin-bottom:20px; padding-top:10px; padding-bottom:10px; padding-left:5px; border-top:solid 2px #000000; border-bottom:solid 5px #000000; border-left:solid 2px #000000; border-right:solid 5px #000000; width:600px; } .test a:hover { border-top:solid 5px #000000; border-bottom:solid 2px #000000; border-left:solid 5px #000000; border-right:solid 2px #000000; } --> </style> </head> <body> <div class="test"> <a href="index.html">あいうえおかきくけこたちつてと</a> </div> <div class="test"> <a href="index.html">あいうえおかきくけこたちつてと</a> </div> <div class="test"> <a href="index.html">あいうえおかきくけこたちつてと</a> </div> </body> </html>

    • ベストアンサー
    • HTML
  • CSS 左右違う大きさのボックスでheightを合わせたい

    外部CSSでHPを作成しています。 基本的なことかと思いますが、調べてもどうしてもうまくいかないので 皆さまのお力をお貸しください。 左右にボックス(で良いのでしょうか?)を置き、その中にテキストを入れています。 それぞれ文字数が違うためheightのサイズがばらばらのため、現在指定していません。 固定すれば解決しそうですが、縦には数十個のボックスを並べているのでできません。 どのようにしたら文字数の少ないボックスを、文字数の多いボックスに合わせられるのでしょうか? また、テキストを何も入れていない状態で、左右のheightがずれているのはなぜなのでしょうか? どうぞご教授ください。 よろしくお願い致します。 /*CSSファイルの記述*/ .waku1{ border : solid 1px #999999; border-bottom: none; width :150px; float : left; background-color : #e8e8e8; line-height: 160%; } .waku2{ border : solid 1px #999999; border-left: none; border-bottom: none; width :335px; line-height: 160%; word-break: break-all; } .waku3{ border : none; border-bottom: solid #999999 1px; border-top: solid #999999 1px; width :150px; float : left; background-color : #e8e8e8; line-height: 160%; } .waku4{ border : none; border-bottom: solid #999999 1px; border-top: solid #999999 1px; border-left: none; border-bottom: none; width :335px; line-height: 160%; word-break: break-all; } .clear{ clear : left; } /*HTMLファイルの記述*/ <div class="waku1"></div> <div class="waku2"></div> <div class="clear"></div> <div class="waku1"></div> <div class="waku2"></div> <div class="clear"></div> <div class="waku1"></div> <div class="waku2"></div> <div class="clear"></div> <div class="waku3"></div> <div class="waku4"></div> <div class="clear"></div>

    • ベストアンサー
    • HTML
  • <div>この余白は・・・

    <div>で作ったボックスの中に、さらに<div>のボックスを二つ(box、box2)並べたいのですが、float:leftでboxを左に寄せると、次に回り込んで表示されるbox2との間にかなりの余白があります。 CSSでbox、box2にmarginは指定していないのですが、この余白は何なんでしょうか? また、このbox、box2をある程度間に余白を持たせた上でセンタリングしたいのですが、これもなぜかうまくいきません・・・。 ▼HTML <div class="out">  <div class="title">   <img src="img/title.jpg" width="700" height="75" border="0">  </div>  <div class="main">   <img src="img/main.jpg" width="700" height="375" border="0">  </div>  <div class="menu">   <img src="img/home_a.jpg" width="100" height="35" border="0">   <img src="img/first.jpg" width="100" height="35" border="0">   <img src="img/info.jpg" width="100" height="35" border="0">   <img src="img/order.jpg" width="100" height="35" border="0">   <img src="img/support.jpg" width="100" height="35" border="0">   <img src="img/link.jpg" width="100" height="35" border="0">   <img src="img/question.jpg" width="100" height="35" border="0">  </div>  <div class="area">   <div class="box">    <h5>AAAAAAAAA</h5>    <img src="img/kari.gif" width="250" height="100" border="0">   </div>   <div class="box2">    <h5>BBBBBBBBB</h5>    <img src="img/kari2.gif" width="250" height="100" border="0">   </div>  </div> </div> ▼CSS div.out{ width:700px; background-color:#ffffff; } div.main{ border-style:solid none solid none; border-width:10px; border-color:#666666; } div.menu{ margin-bottom:50px; } div.area{ text-align:center; padding:0.7em; border:solid; border-color:red; } div.box{ float:left; width:250px; border-style:none solid solid solid; border-width:1px; border-color:#99ccff; background-color:#99ccff; } div.box2{ width:250px; border-style:none solid solid solid; border-width:1px; border-color:#99ccff; background-color:#99ccff; } h5{ margin-bottom:0px; padding:0.5em; }  どなたか知恵をお貸しください。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • borderの範囲

    cssコーディングに関しての質問です。 現在以下のようなスタイルとHTMLを組んでいます。 ==css============ #style1 {  width:500px;  padding: 15px 0 0 15px;  border-left:1px solid #ccc;  border-top: 1px solid #ccc; } #style1 p {  margin:0;  padding:0; } .style2 {  float:right;  clear:both;  margin:0 0 20px 30px; } .style2 img{  margin:0;  padding:0; } ==html============ <body>  <div id="style1">   <div class="style2"><img src="sample.jpg" width="200" height="200"></div>   <div class="style2"><img src="sample.jpg" width="200" height="200"></div>   <p>サンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプル</p>  </div> </body> イメージをfloat:right;に指定し、 縦並びにしたいので、clear:both;を入れた所、 border-left:1px solid #ccc;のborderが文字までは表示されるのですが、 画像の延長上は無くなって表示されてしまいます。 右に画像を配置し borderを伸ばしたい時はどのようにすればよいのでしょうか? よろしくお願いします!

    • ベストアンサー
    • HTML
  • cssでのレイアウトの仕方

    次の2ファイルを作成しました。 ---index.html <html> <head> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="notice"> <dl> <dt>タイトル</dt> <dd class="noticeDesc"><p>→一覧</p></dd><br /> <dd class="noticeBox"> <ul> <li>リスト1</li> <li>リスト2</li> </ul> </dd> </dl> </div> </body> </html> ---index.htmlここまで ---style.css @charset "utf-8"; .notice { width: 210px; background-color: #ffff00; border-bottom-style: solid; height: 80px; } .notice dl { background-color: #00ffff; border-top-style: solid; } .notice dt { padding-top: 3px; padding-right: 5px; padding-bottom: 2px; padding-left: 5px; border-right-style: solid; border-left-style: solid; border-bottom-style: solid; } .notice .noticeBox { margin: 0px; padding: 0px; background-color: #00ffff; border-bottom-style: solid; } .notice .noticeDesc p { width: 60px; position: absolute; top: 3px; right: 5px; line-height: 1; } .notice dd { border-right-style: solid; border-left-style: solid; float: left; width: 204px; margin: 0px; padding: 0px; } ---style.cssここまで ここの掲示板は画像をUPしてもかなり劣化されてしまうのでどれだけ見えるかわかりませんが実際に表示したイメージも添付しました。 これで希望と違うところが2点あります。 ●「→一覧」というのは「タイトル」と同じ箱の中に右詰めで表示したい ●「タイトル」の箱の周りの枠と下の「リスト」が入った箱の隙間は開けたくない 何通りかのやり方があるんだとは思いますが、style.cssの方を修正する方法でどこをどう調整すればよいのか教えてください。 よろしくお願い致します。

    • ベストアンサー
    • CSS
  • ボーダースタイルがうまく表示できない

    #content { width:525px; } div.box { width:525px; margin-top: 20px; border-bottom:dotted 1px #ccc; } div.left { width:140px; float: left; font-weight: bold; margin-left: 5px; } div.right { width:380px; float: left; line-height: 20px; height: 20px; } <div id="content"> <div class="box"> <div class="left">Address</div> <div class="right">住所<br>東京都</div> </div> </div> クラス名boxというボックスのボトムにボーダー指定をしましたが、ボックスのズレ?によりボーダーがトップになっているように見えてしまいます。 どこが間違っておりますか? アドバイスを宜しくお願いします。

    • ベストアンサー
    • HTML
  • W3C における、width の解釈に関して

    今まで漠然と、CSS でデザインを行ってきました。この際きちんとした知識を得たいと思っています。 今まで float を利用して、経験則的に width で幅を決め段組みのデザインをしてきましたが、W3C 的に間違った解釈をしていないのかと思い始め、下記のサンプルソースを制作してみました。 疑問点は、float を利用してボックスを並べる際の、width の値に関しての考え方です。 W3C で言う標準モードを意識しています。また、IE6 の互換モード等は現時点では配慮していません。純粋に W3C の解釈を知りたいと思います。 -- サンプルソース -- <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>widthの検証</title> <style type="text/css"> <!-- body { background-color: #FEE; } #box { width: 300px; border: 1px solid #00F; margin: 0 auto; background-color: #FFF; } .block { float: left; width: 100px; margin: 0px; padding: 0px; border: 0px solid #F00; background-color: #FFE; } .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } --> </style> </head> <body> <div id="box" class="clearfix"> <div class="block"> <p>ボックス1</p> </div> <div class="block"> <p>ボックス2</p> </div> <div class="block"> <p>ボックス3</p> </div> </body> </html> -- サンプルソース -- 幅300pxのボックスを作り、その中に100pxのボックスを3個 float: left で並べています。上記のサンプルでは、クラスblockにて margin,padding,border を、0px にしていますが、margin,padding,border でどこか1カ所にでも、0以外の値を与えると3個目のボックスが落ちます。 上記挙動を踏まえて考えると、width の値は純粋にコンテンツのみの値と判断出来ます。 ただ、ネットを検索してみると、W3C 的には pading,border まで含めた値が、width の値だと解説されているページを見受けます。 検証した環境は Mac OS X の環境で、FireFox3.0 と、safari になります。width の値に関しては、単にブラウザの解釈の問題で有り、W3C 的には、width とは、padding,border まで含んだ値が正解なんでしょうか。 出来れば W3Cの原書もしくは、W3Cの和訳が有れば width のリファレンスへのリンクを教えて頂ければと思います。 和訳に関しては http://www.a2ztutorial.com/Style/CSS/ のページを見つけましたが、リファレンスを見つけられませんでした。

    • ベストアンサー
    • CSS
  • cssを使って枠の設定をしたく以下の記述をしましたが、一部うまくいかな

    cssを使って枠の設定をしたく以下の記述をしましたが、一部うまくいかないところがあり、質問をさせて頂きますのでどなた様かご指導のほどよろしくお願いいたします。 [css] <div id="main"> border: solid 2px #d3d3d3; margin-left:auto; margin-right:auto; width:780px; <div id="waku3"> width:200px; border: solid 3px #d3d3d3; background-color:red; <div id="waku7"> width:570px; border: solid 3px #d3d3d3; float:left; } 私としては780pxで作成した枠の中に、左側に200pxの枠を作成して、その右側に、570pxの枠を作成したかったのですが、何かがきっと問題なようで、うまくいきません。 どなた様か、ご指導のほどよろしくお願いいたします 感じとしては以下のような感じで御座います。 http://desktop10.web.fc2.com/ どなた様か、ご教示のほどよろしくお願いいたします。

    • ベストアンサー
    • HTML