![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
CSSのレイアウトについてのアドバイスをお願い出来ましたらと
思います。m(_ _)m
添付画像の様なレイアウトがしたく、いろいろやってみましたが、
何時間かかっても上手く行かなくて。。
A(画像)、(B ○の部分がテキストでリスト)、(C ○の部分が
画像を三段重ね)、D(画像)という様に、float: left;で配置して
いき、
Bの○のテキストはリストで左頭揃えにしながら、
Bのブロックごとは右寄せで右にパディングで余白を取る。
Cの○の画像は左頭揃えにしながら三段重ね、
Cのブロックごとは左寄せでパディングはゼロにしたいと
いう部分で上手く行かずに悩んでいます。。
元から書かれた物を直すという作業の上で、
戸惑っています。
自分では下記の様にやってみて途中やり直しを繰り返し
して混乱して頭が止まってしまいました。。
よろしければ、アドバイスの方をお願い致します。m(_ _)m
☆ HTML
<div id="header">
<!-- A-->
<h1><img src="hogehoge.gif" alt="" width="175" height="64" /></h1>
<!-- /A-->
<p class="g_navi"><a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a><br>
<a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a><br>
<a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a>
</p>
<ul class="s_navi">
<li>テキスト</li>
<li>テキスト</li>
<li>テキスト</li>
</ul>
<!--D-->
Dの部分は省略。
<!--/D-->
</div>
☆CSS
#header {
margin: 0 10px 0;
padding: 28px 0 0;
width: 950px;
height: 102px;
position: relative;
line-height: 1;
}
#header h1{
float: left;
}
#header .g_navi{
margin: 8px 0 0;
padding: 0 32px 0 0;
float: left;
width: 270px;
height: 70px;
text-align: right;
}
#header .s_navi{
margin: 8px 0 0;
padding: 0 0 0;
float: left;
width: 238px;
height: 70px;
line-height: 1;
font-size: 1px;
}
#header .s_navi li{
margin: 0 0 10px;
}
------- 以下D部分は略 ---------
![「助けてください。。 CSSのレイアウトに」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/0/1029809_5497d0510f8de/M.jpg)
No.2ベストアンサー
- 回答日時:
文書構造で不明な点
・ID/class名からサブメニューだと思いますが、その親メニューはどれです?
<ol>
<li>
<ol>
<li></li>
<li></li>
</ol>
</li>
</ol>
なはずですが??
★floatは、floatは出現した位置が基準になるなど、色々面倒くさくなるので使わないほうが良いでしょう。
★headerでメインナ情報はナビゲーションだと思いますので、それを基準にしたブロックとして考える。
★サイズは、標準ではpadding辺の内側ですが、IEが互換モードで動作するとboreder辺までがサイズになります。標準モードで起動するように<DOCTYPE>を記述します。
・さすがにXHTMLはここ数年使ってませんので、HTML4.01strict+CSS2.1のサンプルです。
・サイズはリキッド(480px~1000px)にしてあります。スマホからワイドディスプレイまでOK
・class名は、HTML5の新しい要素( http://standards.mitsue.co.jp/resources/w3c/TR/h … )とその用途を参考にしてあります。<div class="header"></div>⇒<header></header>のように、簡単に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 rel="START" href="../index.html">
_<style type="text/css">
<!--
html,body{margin:0;padding:0;background-color:gray;
}
h1,h2,h3,h4,p{margin:0;line-height:1.6em;}
div.header,div.section,div.footer{
width: 98%;
margin:0 auto;
min-width:480px;max-width:1000px;
background-color:white;
}
div.header{
position: relative;
background-color:yellow;
}
div.header h1,div.header div.aside{
position:absolute;
width:18%;
left:0;top:0;
margin:0;
}
div.header div.aside{
right:0;left:auto;
}
div.header h1 img{
display:block;
width:100%;
height:auto;
}
div.header div.nav{
margin: 0 18%;
width: 64%;
min-height:90px;
position:relative;
background-color:fuchsia;
}
div.header div.nav ol,div.header div.nav li,div.header div.nav ul{
display:block;list-style:none;
margin:0;padding:0;
}
div.header div.nav li a{margin:5px;}
div.header div.nav ol li ul li{text-align:right;}
div.header div.nav ol li ul{
position:absolute;
top:0;right:0;
height:100%;
width:50%;
}
div.header div.nav ol li:hover{
background-color:lime;
}
div.header div.nav ol li+li ul{
z-index:-10;
}
div.header div.nav ol li:hover ul{
z-index:10;
background-color:lime;
}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1><img src="./images/title.gif" alt="" width="175" height="64"></h1>
__<div class="nav">
___<ol>
____<li><a href="@"><img src="./images/hoge1.gif" alt="" width="42" height="10"></a></li>
____<li><a href="@"><img src="./images/hoge2.gif" alt="" width="42" height="10"></a>
_____<ul>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
_____</ul>
____</li>
____<li><a href="@"><img src="./images/hoge3.gif" alt="" width="42" height="10"></a>
_____<ul>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
_____</ul>
____</li>
___</ol>
__</div>
__<div class="aside">
___<p>Dの部分は省略</p>
__</div>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>・・・</p>
_</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>
No.1
- 回答日時:
HTML/CSS素人ですが。
。。わかりにくくなるかと思ったので、フレームのみ作りました。
各サイズやマージンなどはご自身で指定していっていただければと思います。
画像を三段にしているところも意味合い的にリストの方がいいと思ったのでリストにしてます。
imgのdisplayをblockにしたので、ulを使わず、単に<img~ /><img~ />...と並べても表示は同じになります。
--HTML---------------
<div id="header">
<h1><img src="hogehoge.gif" alt="" width="175" height="64" title="A" /></h1>
<div class="g_navi"><ul>
<li>Bテキスト</li>
<li>Bテキスト</li>
<li>Bテキスト</li>
</ul></div>
<div class="s_navi"><ul>
<li><a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a></li>
<li><a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a></li>
<li><a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a></li>
</ul></div>
<div class="D">D部分</div>
</div>
--CSS-----------------
/* リセットCSS */
p, h1,ul {
margin: 0;
padding: 0;
}
ul {
list-style-type: none;
}
img {
vertical-align: text-bottom; /*画像の下の隙間を消す*/
}
/* リセットCSSここまで */
#header {
overflow: hidden; /* float要素の高さを、親要素に認識させる */
background: cornflowerblue;
}
h1 {
float: left;
background: lightpink;
}
.g_navi {
float: left;
background: khaki;
}
.s_navi {
float: left;
background: palegreen;
}
.s_navi img {
display: block; /* 小さい画像をリストにした際の隙間を削除 */
}
.D {
float: left;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS imgとpを縦・横に中央揃えする 1 2023/01/17 11:30
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ドロップダウンメニューが隠れ...
-
リンク文字同士の間隔を開ける...
-
「・」(黒い点)を非表示にした...
-
リストマーカーをボックス内に...
-
HTMLで組織図を作成する方法
-
html <li>の中の文字一部に色を...
-
「olタグ」内に「hタグ要素」...
-
リストの数字のフォントサイズ...
-
なぜ?マウスオーバーで1pt位置...
-
Dreamweaverで、ul要素の下に写...
-
html/cssの、navを2段にする...
-
動きのあるサイトの作り方がし...
-
ulタグやliタグの中でbrタグ...
-
透明のボックスにリンクを貼りたい
-
float+IE8で形が崩れます。
-
ulとliで囲った文字の一部を変...
-
htmlの文字が縦書きになる
-
【ヒトの神秘】美男美女から何...
-
textareaの幅を画面と合わせたい
-
<h1>、<h2>と<p><div>の行間を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストマーカーをボックス内に...
-
liタグの中に<p>タグやら<dl>を...
-
<table>の高さ固定。情報増加時...
-
レスポンシブWebデザインでリン...
-
html/cssの、navを2段にする...
-
リストの数字のフォントサイズ...
-
divタグ内のコンテンツが重なっ...
-
<ul><li></li></ul>にするメリ...
-
HTMLで組織図を作成する方法
-
ulタグやliタグの中でbrタグ...
-
リンク文字同士の間隔を開ける...
-
<ul>~</ul>が二つ続くと間に改...
-
ulとliで囲った文字の一部を変...
-
番号付きリスト(<Ol><Li>・・...
-
display:table;を多段表示させたい
-
ボタンを横に並べて表示させる方法
-
html <li>の中の文字一部に色を...
-
CSS質問:大手サイトを見ると何...
-
html <ul></ul>の並びで一行空...
-
Tableの1セル内に画像・テキス...
おすすめ情報