
CSSとHTMLは以下の様に幅などを注意して書いたつもりで、微妙にそれぞれの幅などを調整しても、三番目だけが、なぜか下にずれちゃいます。何か勘違いしているようにも思いますが、原因を教えてください。
単に二個だとうまく行くんですけどね。
よろしくお願いします。
HTML
<div id="mainR1">
<div id="box1" >
box1
</div>
<div id="box2" >
box2
</div>
<div id="box3" >
box3
</div>
</div>
CSS
#mainR1 {
float: left;
width: 480;
background-color: #ffffff;
border: dotted 1px #9d9d9d;
}
#box1{
float: left;
width: 138;
height: 138;
background-color: #ffcfff;
border: dotted 1px #9d9d9d;
-moz-box-ordinal-group: 1;
-webkit-box-ordinal-group: 1;
}
#box2{
margin-left: 160;
width: 138;
height: 138;
background-color: #ffffff;
border: dotted 1px #9d9d9d;
-moz-box-ordinal-group: 2;
-webkit-box-ordinal-group: 2;
}
#box3{
float: right;
width: 138;
height: 138;
background-color: #ffcfff;
border: dotted 1px #9d9d9d;
-moz-box-ordinal-group: 3;
-webkit-box-ordinal-group: 3;
}

No.3
- 回答日時:
3番目の……の原因は2番目がfloatしていないからです。
それと、cssは単位が省略不可です。width:480pxなどと書きましょう。簡単に説明します。原則として文書は普通、左から右に、上から下に解釈し置いていきます。ブロックレベル要素であるboxnは、ブロックレベル要素であるdivであるため(前後に改行を含む塊)、そのままの解釈にまかせると左から右には流れず、上から下に置いていきます。
masarun53406 さんのソースでは、親要素があり、初めての子要素#box1はfloat:leftしていますので、floatつまり、浮動化します。本来の流れからは切り離されて左に寄ります。
次にbox2はfloat:leftがないと次のボックスは原則どおり下に来るのですが、前の要素が本来の流れから外れているため、box2がbox1のあった場所に入ります。但し、box1が左にいるため、その場所をよけます(水が氷に場所を譲るような感じ)。
masarun53406さんのソースでは、box2はfloatしていませんので、box3は本来の流れ通り、box2の下に来ます。
#1さんの改良案では、#2もfloatしているので、隣に来るわけです。
蛇足ですが、親要素の範囲ないで横に並べたいだけなら、
#mainR1>div{/*ここでひとまとめに*/
float: left;
width: 138px;
height: 138px;
border: dotted 1px #9d9d9d;
margin-right:10px;
margin-left:10px;
}
/*以下は別々の指定に*/
#box1{
background-color: #ffcfff;
-moz-box-ordinal-group: 1;
-webkit-box-ordinal-group: 1;
}
#box2{
background-color: #ffffff;
-moz-box-ordinal-group: 2;
-webkit-box-ordinal-group: 2;
}
#box3{
background-color: #ffcfff;
-moz-box-ordinal-group: 3;
-webkit-box-ordinal-group: 3;
}
とすればOKです。floatはその他解除など、込み入ってくるのでしっかり理解しないとつまづきの原因になります。
http://webdesignrecipes.com/css-visual-formating …
http://www.kanzaki.com/book/css/3-2.html
等、参考に詳しく学ばれることをお勧めします。
No.2
- 回答日時:
本当に基本的な事ですが、とっても重要な事です。
★HTMLはデザインに関することは一切書いてはなりません。HTMLには文書構造しか書きません。デザインはスタイルシートで行いますが、その時にHTMLの文書構造を利用しますが、HTMLではデザインのために書かれているわけではないことが大前提です。
・構造とプレゼンテーションの分離( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
は1999年のHTML4.01の勧告以来、強く叫ばれている事です。
具体的なHTMLとスタイルシートを書いてみます。質問と添付図では文書構造が分かりませんので想像です。(誰--検索エンジンや後任の人--が見ても分かるように)
★その上で、リストの項目をdisplay:blockでblockにして、float:leftで並べてある。
★スクリーンではリストで表示される。
★HTML4.01strict + CSS2.1
★タブは_に置換してあるので戻す。
★HTMLには、デザインに関することは何も書いてないので、簡単にかつ自由にデザインできる。
先で全くデザインを変更することも容易
[HTML]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css" media="screen">
<!--
div.section{ /* 本文(section) */
background-color:lime;padding-bottom:10px;
}
div.plan{/* planブロック */
width:440px;margin:0 auto;
background-color:white;
}
div.plan:after{
content:"";display:block;clear:left;
}
div.plan ol,div.plan ol li{/* planブロック内のリスト */
list-style:none;display:block;
margin:0;padding:0;
}
div.plan ol.header li{/* plan内のheaderクラスのol */
border:solid gray 1px;
width:180px;
float:left;
margin:5px;padding:5px;
}
div.plan ol.header{font-size:0.9em;}
div.plan ol.header li p{margin:0 0.5em 0 3em;;font-size:1.1em;}
div.plan ol.menue{clear:left;}
div.plan ol.menue>li{
width:138px;height:138px;margin:2px;
float:left;
background-color: #ffcfff;
border:dotted 1px #9d9d9d;
}
/* 以下ひとコマごとに色分けCSS3を使うともっと簡単 */
div.plan ol.menue>li+li{background-color:silver;}
div.plan ol.menue>li+li+li{background-color:#ffcfff;}
div.plan ol.menue>li+li+li+li{background-color:silver;}
div.plan ol.menue>li+li+li+li+li{background-color:#ffcfff;}
div.plan ol.menue ol{margin:5px;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
__<p>このページでは・・・・</p>
_</div>
_<div class="section">
__<h2>計画書</h2>
__<div class="plan">
___<ol class="header">
____<li>年月日
_____<p>平成25年8月1日</p>
____</li>
____<li>担当者
_____<p>山田太郎</p>
____</li>
___</ol>
___<ol class="menue">
____<li>
_____<ol>
______<li>8月1日</li>
______<li>全体会議</li>
_____</ol>
____</li>
____<li>
_____<ol>
______<li>8月2日</li>
______<li>試験</li>
_____</ol>
____</li>
____<li>
_____<ol>
______<li>8月3日</li>
______<li>実技試験</li>
_____</ol>
____</li>
____<li>
_____<ol>
______<li>8月4日</li>
______<li>増減可能</li>
_____</ol>
____</li>
___</ol>
__</div>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2012-08-10</dd>
__</dl>
__<address>© ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS <!DOCTYPE html> <html> <head> <meta charset="utf-8 2 2023/01/05 01:04
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
divタグ内のコンテンツが重なっ...
-
html/cssの、navを2段にする...
-
ページを開いているときのリン...
-
1画像内に複数リンクを設定!...
-
(HP作成)メニューバーのプル...
-
ulタグやliタグの中でbrタグ...
-
Googleのイメージ検索のように...
-
<li>で改行する横並びのメニュー
-
アコーディオンメニューがかく...
-
HTMLもしくはCSSのULでリンクを...
-
リストマーカーをボックス内に...
-
li 長さ指定
-
htmlの<ol>タグで、数字などを...
-
ナビゲーションバーの表示につ...
-
CSSでリストを横並びにし、行頭...
-
ポップアップメニューを表のよ...
-
複数行にまたがる括弧を表示し...
-
リストを2つに分割して、それぞ...
-
テンソル解析(絶対微分学)は...
-
htmlの文字が縦書きになる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
html/cssの、navを2段にする...
-
リストマーカーをボックス内に...
-
liタグの中に<p>タグやら<dl>を...
-
ulタグやliタグの中でbrタグ...
-
複数行にまたがる括弧を表示し...
-
html <ul></ul>の並びで一行空...
-
ulとliで囲った文字の一部を変...
-
HTMLで組織図を作成する方法
-
list-style-type部分だけ大きく...
-
htmlの<ol>タグで、数字などを...
-
テーブル内のプルダウンの下に...
-
html <li>の中の文字一部に色を...
-
<ul><li></li></ul>にするメリ...
-
番号付きリスト(<Ol><Li>・・...
-
divタグ内のコンテンツが重なっ...
-
リストの数字のフォントサイズ...
-
レスポンシブWebデザインでリン...
-
背景色を行ごとに変えるには?
-
Dreamweaverで、ul要素の下に写...
-
ページを開いているときのリン...
おすすめ情報