divを使ってレイアウトを組んでいて、最初はなんの問題もなく、綺麗に左と右に分かれていました。
しかし、いつの間にかずれていて、なんとか戻そうといろいろいじっていたら、たまには右側に戻るんですけど、位置がだいぶ下にいったり、全くわけも分からなくなってしまいました。
どこをどう直したらいいのでしょうか?
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>柴又帝釈天 参道ガイド</title>
<link href="1.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="a-box">
<p>
<img src="img/header/rogo.png" width="232" height="39" id="rogo">
<img src="img/header/rennrakusaki.png" width="608" height="74" id="rennraku">
</p>
</div>
<div id="def-box">
<div id="d-box">
<div id="d1-box">
<div id="d2-box">
<img src="img/def-box/home-button-1.png" width="428" height="50">
<div id="d3-box">
<div class="ibe1">
<div class="ibe1-1">2016/4/2-3</div>
<div class="ibe1-2">第26回柴又さくらまつり</div>
</div>
<img src="img/def-box/home-line.png" width="359" id="homeline">
<div class="ibe2">
<div class="ibe2-1">2015/7/21</div>
<div class="ibe2-2">9回葛飾納涼花火大会</div>
</div>
<img src="img/def-box/home-line.png" width="359" id="homeline">
<div class="ibe3">
<div class="ibe3-1">2015/8/28-30</div>
<div class="ibe3-2">第32回寅さんまつり</div>
</div>
<img src="img/def-box/home-line.png" width="359" id="homeline">
<div class="ibe4">
<div class="ibe4-1">2015/9/10-13</div>
<div class="ibe4-2">柴又宵まつり2015</div>
</div>
</div>
</div>
</div>
</div>
<div id="e-box">
ここを右側に配置したい<br>ここを右側に配置したい<br>ここを右側に配置したい<br>ここを右側に配置したい<br>ここを右側に配置したい
<br>ここを右側に配置したい<br>ここを右側に配置したい<br>ここを右側に配置したい<br>ここを右側に配置したい<br>
</div>
</div>
</body>
</html>
ここからがcssです
@charset "UTF-8";
* {
padding : 0px ;
margin : 0px ;
}
body{
background-color:#ffffff;
}
#a-box {
height: 90px;
width: 100%;
margin-bottom: 0px;
background-image:url(img/header/header_haikei.png) ;
background-color: #ffffff;
}
#rogo{
float:left;
margin: 30px 0px 0px 130px;
}
#rennraku{
float:right;
margin: 0px 80px 0px 0px;
}
/*#b-box{
height: 10px;
width: 100%;
margin:0px auto;
background-image:url(img/header/header_haikei.png) ;
}*/
#def-box {
width : 850px;
margin:10px auto;
margin-top: 0;
}
/*最新イベントここから*/
#d-box {
float: left;
width: 550px;
height: 250px;
background-color: #ffffff;
}
#d1-box{
width: 550px;
height:400px;
margin-top: 10px;
margin-left:10px;
background-color: #ffffff;
}
#d2-box{
width: 550px;
height: 50px;
}
#d3-box{
width: 424px;
border: 2px solid #E2E2E2;
margin-top: -8px;
}
div.ibe1{
margin-top: 18px;
}
div.ibe1-1 {
text-align: left;
float: left;
margin-left: 30px;
}
div.ibe1-2 {
text-align: right;
margin-right: 30px;
}
div.ibe2{
margin-top: 16px;
}
div.ibe2-1 {
text-align: left;
float: left;
margin-left: 30px;
}
div.ibe2-2 {
text-align: right;
margin-right: 30px;
}
div.ibe3{
margin-top: 16px;
}
div.ibe3-1 {
text-align: left;
float: left;
margin-left: 30px;
}
div.ibe3-2 {
text-align: right;
margin-right: 30px;
}
div.ibe4{
margin-top: 16px;
margin-bottom: 22px;
}
div.ibe4-1 {
text-align: left;
float: left;
margin-left: 30px;
}
div.ibe4-2 {
text-align: right;
margin-right: 30px;
}
#homeline{
margin-left: 30px;
}
/*最新イベントここまで*/
#e-box {
float: right;
width: 250px;
height: 250px;
background-color: #321232;
}
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.2,No.3です。
本気で勉強する気なら・・、いくつか気が付いたことを
1) divは使わない。使うとしてもこんな感じ
<header>
・・・
<div id="abstract">
このページの要約
</div>
要約を示す要素はHTMLにはない。sectionもasideも適切ではない。そこでidやclassを併用して文書構造を
2) セレクタは文書構造を基にして
section section ul{
sectionの子孫のsectionの子孫のul要素
と書けば、section ulには適用されない。
そもそもスタイルシート読むだけで、「sectionの子孫のsectionの子孫のul要素」とわかるので、いちいちHTML見てdiv.ibe4-2はどこだっけと探さなくてよい。
ナビゲーションリストを様々にデザインしてみよう。( http://www.ichiya.com/WebService/Howto/sample/HT … )
をIEかfirefoxで訪問して、メニュー[表示]→[スタイルシート] に進みいろいろなスタイルを選択したり、印刷プレビュー見たりしてごらんなさい。文書構造とプレゼンテーションを分離する価値がわかるかと・・
★<br>も基本的には使いません。
★小さいことですが、rogoではなくlogo
No.3
- 回答日時:
スタイルシートもたったこれだけ。
・スマホなど小さなディスプレイでは元の位置になる。ウィンドウを縮めてごらんください。
・印刷用スタイルシート、携帯用スタイルシートは指定していない。
印刷プレビューでは素の状態で印刷される。
*テキストを画像に置き換えて表現する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
ことは極力避けましょう。
このページを視覚障碍者がスクリーンリーダーで読もうとしたときに困る。
ちなみに、サンプルをスクリーンリーダーで読んでごらんなさい。
ipad/iphoneだと、[機能]→[アクセシビリティ]→[スピーチ]で「画面の読み上げ」を有効にすると使える。
二本指で画面上から下にスワイプすると本文を読んでくれる
・HTMLの文書構造に基づいてセレクタをきちんと書けば、無用で煩雑なdivもclassもidもいらなくなる。
Selectors( https://momdo.github.io/css2/selector.html )
★タブは (全角スペース2個)に置換してあるので戻してください。
<style media="screen">
<!--
html,body{margin:0;padding:0;}
h2,h3{margin:0;line-height:1.6em;}
p{margin:0;line-height:1.6em;text-indent:1em;}
header,section,body{width:90%;margin:0 auto;max-width:1000px;}
header{min-height:50px;border:red dotted 0px;border-bottom-width:3px;}
header h1{
width:232px;height:38px;
text-indent:-20em;
overflow:hidden;
background-image:url(img/header/rogo.png);
}
header ul{
margin:0;paddig:0;
position:absolute;
top:10px;right:10px;
}
header ul li{
list-style-type:none;
margin:0;padding:0;
display:inline-block;
min-width:10em;
font-weight:bold;
}
header ul li p{
font-size:0.8em;
}
section{position:relative;}/* 以下の位置の基準になる */
section section{/* section 子孫のsection */
margin:0 340px 20px 50px;
border:solid 1px black;
border-radius:20px;
width:auto;
}
section h2{display:none;}
section section h3{
background-color:black;color:white;
border-radius:20px 20px 0 0;
text-align:center;
}
section section dl{
margin:0;padding:0 10px;
line-height:2em;
}
section section dl dt{
width:8em;
float:left;
}
section section dl dd{
border-bottom:dashed 1px gray;
}
section.Event.old h3{
background-color:gray;
}
section aside{
font-size:0.9em;
padding:0.5em 1em;
width:300px;
position:absolute;/* 絶対配置親の(relativeな)sectionが基準 */
top:0;right:0;/* 上と右の位置 */
background-color:yellow;
height:100%;/* 高さもsectionに合わせる */
overflow:auto;/* もしはみ出たらスクロール */
}
-->
</style>
<!-- 幅の狭い画面用 -->
<style media="screen and (max-width: 640px)">
<!--
header h1{width:auto;background-repeat:no-repeat}
header ul{position:static;}
section section{
margin:0 10px 20px 10px;
border:solid 1px black;
border-radius:20px;
width:auto;
}
section aside{
position:static;
height:auto;
width:auto;
}
-->
</style>
ORUKA1951さんが教えてくれたhtmlとcssでもう一度作り直したいと思います!何から何まで本当にありがとうございました!
No.2
- 回答日時:
今のうちに、ちゃんとしたHTML/CSSを身に着けることを強くお勧めします。
根本的な部分で間違っている。そのHTML,CSSじゃメンテナンスもままならない。
<!doctype html>
と書かれているのでHTML5ですが、HTML5ではdivは基本的に使いません。HTML5で最も重要な部分です。
【引用】____________ここから
NOTE:Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable. Use of more appropriate elements instead of the div element leads to better accessibility for readers and easier maintainability for authors.
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[4.4 Grouping content — HTML5( https://www.w3.org/TR/html5/grouping-content.htm … )]より
訳すと______________ここから
注意: 著者には、他により適切な要素がない時の最後の最後の手段としてdiv要素を使用することが強く推奨されます。div要素の代わりにより適切な要素を使用することで、読者のためのより良いアクセシビリティを著者のためにはメンテナンス性の向上につながります。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで
これはHTML5の最大の目的の一つ
・文書内に埋め込まれた「意味」が不明確
↓【解決】
・文書内に埋め込まれた「意味」を明確にする
( http://www.atmarkit.co.jp/ait/articles/1008/30/n … )の中ほど
HTMLはたったこれだけでよい。
☆ divは極力使わない。メンテナンス大変だよ。
☆classやidは、文書構造を補完するために書くもので、デザインのために書くのではない。
『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するため( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』
☆ デザインにかかわることはHTMLには一切書かない。デザインを後で変えようとしたときに困る。
☆ floatはボックスの配置には使わない。
本文中で使いた時、clearしたいときに困るし、デザイン崩れる最大の要因。
★タブは (全角スペース2個)に置換してあるので戻してください。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>柴又帝釈天 参道ガイド</title>
<meta name="description" content="">
<meta name="author" content="ORUKA">
<style media="screen">
<!--
-->
</style>
</head>
<body>
<header>
<h1>柴又帝釈天</h1>
<ul id="renrakusaki">
<li>帝釈天**寺
<p>〒125-**** 東京都葛飾区******</p>
<p>電話</p>
</li>
<li>営業時間
<p>・・・・・・・</p>
<p>・・・・・・</p>
</li>
</ul>
</header>
<section>
<h2>本文</h2>
<section class="Event new">
<h3>最新イベント</h3>
<dl>
<dt>2016/4/2-3</dt>
<dd>第26回柴又さくらまつり</dd>
<dt>2015/9/10-13</dt>
<dd>柴又宵まつり2015</dd>
<dt>2015/8/28-30</dt>
<dd>第32回寅さんまつり</dd>
<dt>2015/7/21</dt>
<dd>9回葛飾納涼花火大会</dd>
</dl>
</section>
<section class="Event old">
<h3>古いイベント</h3>
<dl>
<dt>2015/6/3</dt>
<dd>なんたらかんたら</dd>
<dt>2015/5/30</dt>
<dd>・・・・・大会</dd>
<dt>2015/2/30</dt>
<dd>☆☆☆☆☆☆☆☆☆</dd>
<dt>2015/5/13</dt>
<dd>☆☆☆☆☆☆</dd>
</dl>
</section>
<aside>
<p>ここを右側に配置したい</p>
<p>
ここを右側に配置したい。ここを右側に配置したい。ここを右側に配置したい。ここを右側に配置したい。ここを右側に配置したい
</p>
<p>
ここを右側に配置したい。ここを右側に配置したい。ここを右側に配置したい
</p>
</aside>
</section>
<footer>
<h3>A nice footer</h3>
</footer>
</body>
5月から授業で本格的に始まるのでそこでしっかり学びたいと思います!的確なご指摘ありがとうございました!これから頑張って覚えていきます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
border-style:solidで文字がずれる
-
widthやheightの数値に単位(px...
-
インラインフレーム内の表示位...
-
CSS、width100%でもできる余白
-
CSS:animation開始位置の設定
-
Media Queries 4 で 非推奨とな...
-
CSS テキストフィールドの文字...
-
余分な縦スクロールバーが出て...
-
div要素の左寄せ、中央寄せ、右...
-
スタイルシートで背景の繰り返...
-
safariだけ、cssが効きません!
-
CSS3で角丸写真にシャドーを付...
-
CSSで3分割した背景画像を配置...
-
マウスオーバー時に画像と一緒...
-
初心者html・CSS ウィンドウを...
-
スクロールボックスを中央に配...
-
ライトボックスでスクロールバー
-
CSS(0の単位)について
-
divで囲まれたpaddingの指定を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
css初心者 フレックスボックス...
-
表示倍率を変えるとレイアウト...
-
CSSがなぜかfont-sizeだけ効か...
-
CSS、width100%でもできる余白
-
W3Cのソースコードの検証サービ...
-
CSS:animation開始位置の設定
-
CSSで指定した背景画像にリンク...
-
<div>と<div>の間の10px程の...
-
余分な縦スクロールバーが出て...
-
CSSでボックスのheightが0になる
-
【CSS】ヘッダーの高さが不明の...
-
スクロールボックスを中央に配...
-
li 黒丸含んで移動する方法
-
border-style:solidで文字がずれる
-
【HTML&CSS】フッター下部の余...
-
Media Queries 4 で 非推奨とな...
-
初心者html・CSS ウィンドウを...
おすすめ情報