• ベストアンサー

CSSとHTMLの編集について教えてください。

お店を作っているのですが、幅の修正が巧くいきません。 (1)商品リストでは各商品に枠は無いので、いちおう黒枠で示したのが大体の商品テーブルだと思うのですが、画像から右端まで間隔があいてしまっています。これを枠いっぱいまできちんと表示させる方法を教えてください。 (2)枠の縦寸法が、各商品バラバラになってしまっています。これを統一する方法を教えてください。 (3)2行目の商品との間隔が広すぎます。これを狭める方法を教えてください。 (4)商品名と「NEW」の位置を入れ替える方法を教えてください。 (5)商品名(4が完成した後はこの位置にNEWがきている)と商品画像との間隔を狭める方法を教えてください。 CSS部分は以下の通りです。 ↓ http://oshietekudasai.web.fc2.com/

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

スタイルシートのみです。 html,body{margin:0;padding:0;} div.header,div.section,div.footer{ _width:90%;margin:0 auto; _max-width:900px;min-width:640px; } div.section{position:relative;} div.section:after{content:"";display:block;width:100%;clear:left;} div.section div{margin:0;} #merchandise{width:80%;margin-left:20%;} #merchandise ol,merchandise ol li{ _display:block;list-style:none;margin:0;padding:0; } #merchandise ol li{ _width:220px;height:360px;overflow:hidden;float:left; _border:solid 1px gray;position:relative;margin:5px; _text-align:center;padding-top:5px; } #merchandise ol li ol li{ _width:100%;height:auto;border:none; _position:static;margin:0;margin:5px; } #merchandise ol li ol li+li{ _width:200px;text-align:left;text-indent:1em;margin-top:20px; _height:70px;line-height:18px;padding:2px 5px; } #merchandise ol li ol li+li+li{ _text-align:right;text-indent:0;position:absolute; _bottom:5px;right:5px;border:none;height:auto; } #merchandise ol li ol li+li:hover{ _position:relatve;height:106px;z-index:100;overflow:auto; _background-color:white;border:solid 1px black; _box-shadow:3px 3px 3px 2px rgba(0,0,0,4); } #merchandise ol li ol li+li+li:hover{height:auto;border:none;box-shadow:none;} #merchandise ol li ol li+li:hover+li{z-index:-10;} #merchandise ol li.new{padding-top:220px;text-align:right;height:145px;z-index:20;} #merchandise ol li.new ol{position:relative;top:-216px;height:360;z-index:-10;} #merchandise ol li.new ol li+li+li{ _text-align:right;position:absolute;bottom:-340px; } #merchandise ol li.new:before{ _content:"NEW";color:red;position:absolute;top:0px; _left:0;border:solid 2px red;padding:2px;z-index:10; } div.section div.tableContent{ _position:absolute;left:0;top:0;width:20%;height:100%; _background-color:rgb(220,220,255); } div.section h2{line-height:2em;background-color:aqua;margin-bottom:10px;}

oshietekun1go
質問者

お礼

感激です。本当にありがとうございます。 図々しくて申し訳ありませんが、お時間があればもう少しお付き合いください。 http://www.victoriassecret.com/clothing/pants 極論すると、上記リンクのようなページをつくりたいですが、もうお察しの通り当方ド素人です。 もしできたらカテゴリ数や画像量など減らした省略バージョンを書いてくださいませんか・・・。 自分なりに手探りで徐々にわかってきつつあるのですが、やはり超えられない壁がありましてにっちもさっちにもいかないのです。甘えた考えではありますが、お許しください。可能であればお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

 たぶん、オーサリングツールのテンプレートを使用されているのだと思います。スタイルシートがあれだけ複雑でややこしいということは、HTMLもとても酷いものです。HTMLを見ながら修正しないとなりませんが、とてもじゃないけど、相当な技量があっても無理難題ではないかと。  このような複雑なデザインをされる場合は、テキストエディタのほうが楽です。HTMLが下記サンプルのように極めてシンプルになりますから、デザインの自由度が上がります。===逆に言うと、どのようにもデザインできるということです。  少し時間が取れたので簡単な実例を書いて書きます。画像は商品ごとに200px×200px以上の正方形のものを用意してください。(HTML中の画像へのパスだけ変更すればよい、サイズは触らない) ★HTMLは文書構造しか記述してありません。デザインの要素は含んでいませんから、文字の挿入・置き換え程度の修正は、誰でも簡単にできるでしょう。  class名は、文書構造を示すものにしてあります。--それが大原則ですから--  新製品でなくなったら、HTMLのclass="new"を消せばよいだけです。 ★スタイルシートは、スマートホンもパソコンでも利用できるシンプルなものにしてあります。  ウィンドウが狭いと列数が変わります。 ★印刷用スタイルシートは用意していません。 ★ベンダーフィックス(ブラウザベンダー毎の差の対策)はしてありませんが、IE7以降は閲覧に支障はないはずです。 ★HTML4.01strict+CSS3(一部)です。 ★タブは_に置換してあるので戻すこと。 <!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 name="author" content="ORUKA1951"> _<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"> <!-- ・・・【中略】・・・次の回答で --> _</style> </head> <body> _<div class="header"> __<h1>タイトル</h1> __<p>このページでは・・・・</p> _</div> _<div class="section"> __<div class="section" id="merchandise"> ___<h2>商品一覧</h2> ___<ol> ____<li id="p1">商品1 _____<ol> ______<li><img src="./images/efg1.jpg" width="180" height="180" alt="インバータ扇風機"></li> ______<li>商品説明・・ここに商品説明が入る。</li> ______<li><form>購入数<input type="text" name="pa1" size="2"><input type="submit" value="かごへ" name="m1"></form></li> _____</ol> ____</li> ____<li class="new" id="p2">商品2 _____<ol> ______<li><img src="./images/efg2.jpg" width="180" height="180" alt="普及型扇風機"></li> ______<li>商品説明は時にはとても長くなるのでマウスオーバーしたときのみすべて表示されるようにすると良いでしょう。たとえばこの説明は、説明文がだらだらだらだら、だらだらだらだらだらだらとても長い例を示している。</li> ______<li><form>購入数<input type="text" name="pa1" size="2"><input type="submit" value="かごへ" name="m1"></form></li> _____</ol> ____</li> ____<li id="p3">商品3 _____<ol> ______<li><img src="./images/efg1.jpg" width="180" height="180" alt="インバータ扇風機"></li> ______<li>商品説明</li> ______<li><form>購入数<input type="text" name="pa1" size="2"><input type="submit" value="かごへ" name="m1"></form></li> _____</ol> ____</li> ____<li class="new" id="p4">商品4 _____<ol> ______<li><img src="./images/efg2.jpg" width="180" height="180" alt="普及型扇風機"></li> ______<li>商品説明</li> ______<li><form>購入数<input type="text" name="pa1" size="2"><input type="submit" value="かごへ" name="m1"></form></li> _____</ol> ____</li> ____<li id="p5">商品5 _____<ol> ______<li><img src="./images/efg1.jpg" width="180" height="180" alt="インバータ扇風機"></li> ______<li>商品説明</li> ______<li><form>購入数<input type="text" name="pa1" size="2"><input type="submit" value="かごへ" name="m1"></form></li> _____</ol> ____</li> ____<li class="new" id="p6">商品6 _____<ol> ______<li><img src="./images/efg2.jpg" width="180" height="180" alt="普及型扇風機"></li> ______<li>商品説明</li> ______<li><form>購入数<input type="text" name="pa1" size="2"><input type="submit" value="かごへ" name="m1"></form></li> _____</ol> ____</li> ___</ol> __</div> __<div class="tableContent"> ___<ol> ____<li><a href="#p1">商品1</a></li> ____<li><a href="#p2">商品2</a></li> ____<li><a href="#p3">商品3</a></li> ____<li><a href="#p4">商品4</a></li> ____<li><a href="#p5">商品5</a></li> ____<li><a href="#p6">商品6</a></li> ___</ol> __</div> _</div> _<div class="footer"> __<h2>文書情報</h2> __<dl class="documentHistry"> ___<dt id="FIRST-PUBLISHED">First Published</dt> ___<dd>2012-08-10</dd> ___<dt id="LAST-MODIFIED">Last Modified</dt> ___<dd>2012-08-10 12:00:00 (JST)</dd> __</dl> __<address>&copy; ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address> _</div> </body> </html>

すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

商品リストだという事でマークアップは下記のようなものであるはずですね。 _<div class="section" id="merchandise"> __<ol> ___<li>商品名 ____<ol> _____<li><img src="./images/efg1.jpg" width="200" height="200" alt="インバータ扇風機"></li> _____<li>商品説明</li> _____<li><form> _購入数<input type="text" name="pa1"><input type="submit" value="かごへ" name="m1"></form></li> ____</ol> ___</li> ___<li class="new">商品名 ____<ol> _____<li><img src="./images/efg2.jpg" width="200" height="200" alt="普及型扇風機"></li> _____<li>商品説明</li> _____<li><form> _購入数<input type="text" name="pa1"><input type="submit" value="かごへ" name="m1"></form></li> ____</ol> ___</li> __</ol> _</div> こうしてきちんと文書構造が記述されていたら、スタイルシートで自由にデザインできるはずです。HTMLもスタイルシートも簡単・・ #merchandise ol,merchandise ol li{display:block;list-style:none;margin:0;padding:0;} #merchandise ol li{width:240px;height:360px;overflow:hidden;float:left;border:solid 1px gray;position:relative;margin:5px;} #merchandise ol li ol li{width:100%;height:auto;border:none;position:static;margin:0;} #merchandise ol li{text-align:center;} #merchandise ol li ol li+li{text-align:left;} #merchandise ol li ol li+li+li{text-align:right;position:absolute;bottom:0;} #merchandise ol li.new{padding-top:220px;text-align:right;height:140px;} #merchandise ol li.new ol{position:relative;top:-220px;height:360;} #merchandise ol li.new ol li+li+li{text-align:right;position:absolute;bottom:-340px;} #merchandise ol li.new:before{content:"NEW";color:red;position:absolute;top:0px;left:0;border:solid 2px red;padding:2px;z-index:10;}

すると、全ての回答が全文表示されます。

関連するQ&A