HTML 4.01にてCSS勉強を行っているのですが、position: absolute;で以下の点に困っています。
・「.contents_side_c」がセンターにこない
・「#wrapper」の高さが可変しない
3カラムのページを想定した練習で、左・真ん中(メイン)・右に3つのコンテンツがあり、#contentsの中のブロックは増えることを想定してhightを指定してません。
positionについて理解したいのですが、認識間違いがあれば教えていただけないでしょうか。
どうぞよろしくお願い致します。
・「.contents_side_c」がセンターにこない
css
1 width:428px; 2 background-color:#cd853f; 3 position: absolute; 4 left:0; 5 top:0; 6 margin:auto;
・「#wrapper」の高さが可変しない
↓#wrapper
css
1 width:820px; 2 margin:0 auto; 3 text-align:center; 4 background-color:#a9a9a9;
↓全体(html)
html
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 3 4 5<html lang="ja"> 6<head> 7<link href="css/reset.css" rel="stylesheet" type="text/css"> 8<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 9 10<title>練習3</title> 11 12<link rel="stylesheet" type="text/css" href="css/style.css"> 13</head> 14 15<body> 16 17<div id="wrapper"> 18 19 <div id="header"> 20 <h1>header</h1> 21 </div><!--------------------------- header終わり --> 22 23 <div id="menu"> 24 <p>menu</p> 25 </div><!--------------------------- menu終わり --> 26 27 <div id="contents"> 28 <div class="contents_side_c"> 29 <h2>contents_side_c</h2> 30 <ul> 31 <li>ここは</li> 32 <li>コンテンツの</li> 33 <li><span>センター</span></li> 34 <li>です</li> 35 <li>position:absolute;</li> 36 <li>でセンターに位置</li> 37 <li>させたいです</li> 38 </u/> 39 40 </div><!--------------------------- contents_side_c終わり --> 41 42 <div class="contents_side_l"> 43 <h3>contents_side_l</h3> 44 <ul> 45 <li>ここは</li> 46 <li>コンテンツの</li> 47 <li><span>左</span></li> 48 <li>です</li> 49 <li>position:absolute;</li> 50 <li>で左に位置</li> 51 <li>させたいです</li> 52 </u/> 53 </div><!--------------------------- contents_side_l終わり --> 54 55 <div class="contents_side_r"> 56 <h3>contents_side_r</h3> 57 <ul> 58 <li>ここは</li> 59 <li>コンテンツの</li> 60 <li><span>右</span></li> 61 <li>です</li> 62 <li>position:absolute;</li> 63 <li>で右に位置</li> 64 <li>させたいです</li> 65 </u/> 66 </div><!--------------------------- contents_side_r終わり --> 67 68 <div id="footer"> 69 <p>footer</p> 70 </div><!--------------------------- footer終わり --> 71 72 73</div><!--------------------------- wrapper終わり --> 74 75 76 77</body> 78</html> 79
↓全体(CSS)
css
1@charset "utf-8"; 2 3*{ 4 margin:0; 5 padding:0; 6} 7 8 9 10span{ 11 color:#ff0000; 12 font-weight:bold; 13} 14 15 16/* wrapper */ 17 18#wrapper{ 19 width:820px; 20 margin:0 auto; 21 text-align:center; 22 background-color:#a9a9a9; 23} 24 25 26/* header */ 27 28#header{ 29 width:800px; 30 height:126px; 31 margin:0 auto; 32 background-color:#b0c4de; 33 34} 35 36 37/* menu */ 38 39 40#menu{ 41 width:800px; 42 margin:0 auto; 43 background-color:#db7093; 44} 45 46 47 48/* contents */ 49 50#contents{ 51 width:764px; 52 margin:0 auto; 53 padding:12px 18px 0; 54 position: relative; 55} 56 57 58 59 60.contents_side_c{ 61 width:428px; 62 background-color:#cd853f; 63 position: absolute; 64 left:0; 65 top:0; 66 margin:auto; 67} 68 69.contents_side_c::before { 70 content:''; 71 display:block; 72 padding-top:100%; 73} 74 75 76 77 78.contents_side_l{ 79 width:155px; 80 margin:0 13px 0 0; 81 background-color:#7fff00; 82 position: absolute; 83 left:0; 84} 85 86 87 88 89.contents_side_r{ 90 width:155px; 91 background-color:#483d8b; 92 position: absolute; 93 right:0; 94 95} 96 97 98 99 100/* fotter */ 101 102#footer{ 103 width:800px; 104 height:38px; 105 background-color:#deb887; 106}
【positionについての知識】
・absoluteを使うと高さの領域が確保されないので、別で高さを用意しなければならない
<試し>
上記のcssの#wrapperにpadding-bottom: 100%;を追加
→#wrapperの高さはできたが#contentsの高さに合っていない
#footerに動きなし
・左右真ん中はtransform: translateでネガティブマージンを使って位置の調整ができる
→topが効かない
css
1.contents_side_c{ 2 width:428px; 3 background-color:#cd853f; 4 position: absolute; 5 top: 50%; 6 left: 50%; 7 transform: translate(-50%,-50%); 8}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/28 11:20 編集