CSS+HTMLだけで画像を使わず、角丸タブメニューを作りたい

このQ&Aのポイント
  • CSS+HTMLだけで画像を使わずに角丸タブメニューを作る方法について教えてください。
  • 求めているのは、サイトのヘッダーに画像を使わずにCSS+HTMLだけで角丸タブメニューを作る方法です。
  • 初心者なので、どのように指定すれば画像なしの角丸タブメニューっぽくなるかわかりません。さらに、各メニューの下段にもサブメニューリンクを追加したいです。アドバイスをお願いします。
回答を見る
  • ベストアンサー

CSS+HTMLだけで画像を使わず、角丸タブメニューを作りたい

職場でネットショップのWEB管理をしているものですが、サイト上のヘッダーに画像を使わずCSS+HTMLだけで角丸タブメニューっぽいものを作りたいのですが、なんせCSS初心のためどこをどう指定すれば画像なしの角丸タブメニューっぽくなるのかわかりません。できたら各メニューの下段にもサブメニューリンクを追加したいのですが・・・ どうか良きアドバイスよろしくお願いします。 感じとしてはここのサイトっぽいタブメニューができればと・・・ CSS <style type="text/css"> <!-- #demo-container{padding:2px 2px 0 60px;margin:0 0 15px 0;background:#67A897;width:870px;} ul#simple-menu{list-style- type:none;width:100%;position:relative;height:27px;font- family:"inpact",Arial,sans-serif;font-size:13px;font- weight:bold;margin:0;padding:11px 0 0 0;} ul#simple-menu li{display:block;float:left;margin:0 0 0 9px;height:27px;} ul#simple-menu li.left{margin:0;} ul#simple-menu li a{display:block;float:left;color:#fff; background:#4A6867;line-height:27px;text-decoration:none; padding:0 17px 0 18px;height:27px;} ul#simple-menu li a.right{padding-right:19px;} ul#simple-menu li a:hover{color:#;background:#708090;} ul#simple-menu li a.current{color:#708090;background:#fff;} ul#simple-menu li a.current:hover{color:#9370DB;background:#fff;} --> </style> HTML <div id="demo-container"> <ul id="simple-menu"> <li><a href="#" title="MENU1" class="current">MENU1</a></li> <li><a href="#" title="MENU2">MENU2</a></li> <li><a href="#" title="MENU3">MENU3</a></li> <li><a href="#" title="MENU4">NENU4</a></li> <li><a href="#" title="NENU5">NENU5</a></li> <li><a href="#" title="NENU6">NENU6</a></li> </ul> </div>

  • zapan
  • お礼率35% (5/14)
  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • abril
  • ベストアンサー率69% (388/560)
回答No.1

「角丸 CSS」で検索するとぞろぞろTipsが出てきます。 ただ大半は、「角丸の部分だけ」の画像を作成しておきそれをCSS中からbackgroundプロパティで参照して定義する、という手法です。私自身もその様にして作成してます。ですので、 > 画像を使わずCSS+HTMLだけで角丸タブメニューっぽいものを作りたい と仰っている意味が、「それ(CSS中からbackgroundによる定義で参照する画像)」すら使用してはいけない、という事であり、" 厳密に"HTML+CSS”だけ”という事なら、ちょっと無理ではないかと思われます。1pxのボーダーを少しづつずらして配置することで擬似的に丸くする方法なども紹介されていますが、それはマークアップが煩雑(論理構造としても無意味でNGですし…)過ぎるので単体のボックスならまだしも、メニュータブの様なものには向かないでしょう。 背景画像としての使用は含めるという事であればまあそんなに難しいことはないです。以下はその場合の参考までに。 "25 Rounded Corners Techniques with CSS"という、CSSによる角丸表示テクニックをまとめたコンテンツがあります。 http://www.cssjuice.com/25-rounded-corners-techniques-with-css/ ここの11番目"CSS and round corners making accessible menu tabs - decent rounded corners style menu tabs technique."のテクニックが(マークアップも含めて)質問者様のご希望にかなり近いものではないかと思います。

zapan
質問者

お礼

abrilさん早速の回答ありがとうございます。 そうですよね~そもそもCSS+HTMLだけだとちょっと無理があるかなとは思ってました。それに色々検索してみてもほとんど角丸部分は画像を指定してタブメニューを構成している説明サイトが多いみたいですね。 一度はタブ画像を作って反映させようかと思いましたが、作ったところでどう適用させるか余計なこと考えてしまって・・・ それと、25 Rounded Corners Techniques with CSS の11番目のメニューページはとても参考になりました。もっと基本から自分を磨かないとだめみたいですね。

その他の回答 (2)

回答No.3

ものすごく参考URLに投げやりですが、このあたりを見れば解決すると思います。 http://www.cssjuice.com/25-rounded-corners-techniques-with-css/ http://gigazine.net/index.php?/news/comments/20060511_dynamic_drive_css_library/ P.S.投げやりなのでポイントは要らないです;

参考URL:
http://gigazine.net/index.php?/news/comments/20060511_dynamic_drive_css_library/
zapan
質問者

お礼

idhokanohiさん御回答有難うございます。参考URLのDynamic Driveってサイトいいですね~色んなパターンのメニューサンプルが豊富で。おかげさまで自分好みのタブメニューが見つかりました。「画像を使わず」って言う願念を捨てて自分流にアレンジし、チャレンジしていきたいと思います。有難うございました。

回答No.2

こんにちは。 わたしがwebサイトを作るときやグラフィックソフトで絵を描く時などに参考にさせて頂いてるサイトがあるのですが、そちらにCSSだけの角丸を作る方法が記載されてましたので、ぜひ試してみてください。 他にもいっぱい、役に立つことが紹介されてるすばらしいサイトです。 http://www.designwalker.com/2006/12/round-corner.html 頑張ってください。

zapan
質問者

お礼

legotomicaさん回答有難うございます。ご指摘のとおりこのdesignwalkerってサイトはWEBデザイン関連の情報が豊富ですね。このページの下の方にSpiffy Cornersってページのリンクがありましたが、あれって色を指定するだけでソースを表示してくれるって感じでとても便利ですね。初心の自分にはとてもありがたいです。ただ、それをいかにタブメニュー化するかなんですけど・・・角丸ボックスの構成を知る上でとても参考になりました。

関連するQ&A

  • HTML/CSSで配置の仕方がわかりません。

    メニューバーの下に画像を挿入すると、メニューバーが消えてしまいます。 また文章を挿入しようとすると、メニューバーの下から文章が続かず、中盤からはじまってしまいます。 すいませんが原因がわかりません。下記にHTMLコード・CSSコードを記載したので、すいませんがわかる方がおりましたら、教えてください。 HTML;<!DOCTYPE html> <html> <link rel="stylesheet" type="text/css" href="test.css"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>What is HTML?</title> </head> <body> <div id="header-top"> <div id="menu1"> <ul id="down1"> <li><a href="#" class="pic"><img src="house.png" width="20" height="20"></a></li> <li><a href="#" class="pic"><img src="house.png" width="20" height="20"></a></li> <li><a href="#" class="pic"><img src="house.png" width="20" height="20"></a></li> </ul> </div> </div> <ul id="dropmenu"> <li><a href="#">Home</a> <ul> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> </ul> </li> <li><a href="#">About US</a> <ul> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> </ul> </li> <li><a href="#">Buy</a> <ul> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> </ul> </li> <li><a href="#">Q&A</a> <ul> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> </ul> </li> <li><a href="#">Contact</a> <ul> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> <li><a href="#">サブメニュー</a></li> </ul> </li> </ul> <p class="test">Hello</p>    ← 問題の箇所、中盤から始まる。 CSS: /*As for header */ #header-top{ width: 100%; position: fixed; top: 0; left: 0; background: linear-gradient(90deg, #05a 10%, #21b3b2 90%); height: 60px; } } #header-in{ width: 997px; margin: 0 auto; } /*As for header top of website */ #menu1 ul{ margin-left: 1000px; margin-top: 10px; padding :0; list-style: none; } #menu1 li{ padding: 0; margin: 0; float: left; } #menu1 li a{ background: url(最初の画像のアドレス) no-repeat left center; padding: 2px 0px 3px 18px; color: #555; width: 100px; margin: 1px 0px; text-decoration: none; border-bottom: 1px dotted #666666; font-size: 18px; } #menu1 li a:hover{ background: url(入れ替わる画像のアドレス) no-repeat left center; } /* drop menuw */ #dropmenu{ list-style-type: none; width: 800px; height: 10px; margin: 30px auto 300px; padding: 0; background: #8a9b0f; border-bottom: 5px solid #535d09; border-radius: 3px 3px 0 0; } #dropmenu li{ position: relative; width: 20%; float: left; margin: 0; padding: 0; text-align: center; } #dropmenu li a{ display: block; margin: 0; padding: 15px 0 11px; color: #fff; font-size: 14px; font-weight: bold; line-height: 1; text-decoration: none; } #dropmenu li ul{ list-style: none; position: absolute; top: 100%; left: 0; margin: 0; padding: 0; border-radius: 0 0 3px 3px; } #dropmenu li:last-child ul{ left: -100%; width: 100% } #dropmenu li ul li{ overflow: hidden; width: 200%; height: 0; color: #ff33ff; -moz-transition: .2s; -webkit-transition: .2s; -o-transition: .2s; -ms-transition: .2s; transition: .2s; } #dropmenu li ul li a{ padding: 13px 15px; background: #ff33ff; text-align: left; font-size: 12px; font-weight: normal; } #dropmenu li:hover > a{ background: none; color: #ff33ff; } #dropmenu > li:hover > a{ border-radius: 3px 3px 0 0; } #dropmenu li:hover ul li{ overflow: visible; height: 38px; border-top: 1px solid #7c8c0e; border-bottom: 1px solid #616d0b; } #dropmenu li:hover ul li:first-child{ border-top: 0; } #dropmenu li:hover ul li:last-child{ border-bottom: 0; } #dropmenu li:hover ul li:last-child a{ border-radius: 0 0 3px 3px; } #top-pic{ } #test{ float: right; }

    • ベストアンサー
    • HTML
  • タブメニュー作成-CSS Tab Designer

    色々調べたのですが、私が希望している結果に辿りつけず、質問させて頂きます。 CSS Tab Designer v2.0を使用してタブメニューを作成しました。 HTML部分で <ul> <!-- CSS Tabs --> <li id="current"><a href="1.html"><span>いち</span></a></li> <li><a href="2.html"><span>に</span></a></li> <li><a href="3.html"><span>さん</span></a></li> <li><a href="4.html"><span>よん</span></a></li> </ul> というのが自動作成(tabmenu.htmlと命名)されました。 tabmenu.htmlを起動すると、綺麗なタブが作成されているのですが、 「いち」をクリックすると tabmenu.htmlから、1.htmlにジャンプしてしまいます。 そこで、以下のようにFrameを作成し <frameset rows="50,*"> <frame src="tabmenu.html" name="top"> <frame src="1.html" name="bottom"> </frameset> tabmenu.htmlを編集し <ul> <!-- CSS Tabs --> <li id="current"><a href="1.html" target="bottom"><span>いち</span></a></li> <li><a href="2.html" target="bottom"><span>に</span></a></li> <li><a href="3.html" target="bottom"><span>さん</span></a></li> <li><a href="4.html" target="bottom"><span>よん</span></a></li> </ul> とTAGETを指定しました。 一見、うまく動作しているように見えたのですが・・・ タブの「いち」をクリックすると、bottomに1.htmlが表示されます。 タブの「に」をクリックすると、bottomに2.htmlが表示されます。 しかし、タブの「いち」から「に」に色が変わらない(カレントタブに移動しない)のです。 どのタブをクリックしても、「いち」がカレントタブを示す濃い色になってしまいます。 クリックしたタブがカレント色になるようにするには、どのように編集したら良いでしょうか? そもそも、Frameを使用するのが間違いなのでしょうか? 以下が、自動作成されたCSS部分です、 <style type="text/css"> <!-- body { margin:0; padding:0; font: bold 11px/1.5em Verdana; } h2 { font: bold 14px Verdana, Arial, Helvetica, sans-serif; color: #000; margin: 0px; padding: 0px 0px 0px 15px; } /*- Menu Tabs F--------------------------- */ #tabsF { float:left; width:100%; background:#efefef; font-size:93%; line-height:normal; border-bottom:1px solid #666; } #tabsF ul { margin:0; padding:10px 10px 0 50px; list-style:none; } #tabsF li { display:inline; margin:0; padding:0; } #tabsF a { float:left; background:url("tableftF.gif") no-repeat left top; margin:0; padding:0 0 0 4px; text-decoration:none; } #tabsF a span { float:left; display:block; background:url("tabrightF.gif") no-repeat right top; padding:5px 15px 4px 6px; color:#666; } /* Commented Backslash Hack hides rule from IE5-Mac \*/ #tabsF a span {float:none;} /* End IE5-Mac hack */ #tabsF a:hover span { color:#FFF; } #tabsF a:hover { background-position:0% -42px; } #tabsF a:hover span { background-position:100% -42px; } #tabsF #current a { background-position:0% -42px; } #tabsF #current a span { background-position:100% -42px; } --> </style>

  • HTMLとCSSを使い、

    HTMLとCSSを使い、 メニューボタンを作成しました。 しかしIE8やgooglchromeではきちんと表示されるのに対して Firefoxではメニューボタンの背景に設定した画像が表示されません。 以下にコーディングを記します。 ************************************************************** <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>無題ドキュメント</title> <style type="text/css"> <!-- #outline #ul { margin: 0px; padding: 0px; height: 69px; width: 336px; list-style-type: none; } #outline #ul a .menu { font-family: "MS P明朝", "MS PMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", serif; font-size: 30px; line-height: 69px; color: #FFF; text-decoration: none; background-image: url(1.gif); background-repeat: no-repeat; text-align: center; padding: 0px; float: left; height: 69px; width: 158px; margin-right: 5px; margin-left: 5px; } --> </style> </head> <body> <div id="outline"> <ul id="ul"> <a href="#"><li class="menu">ホーム</li></a> <a href="#"><li class="menu">トップ</li></a> </ul> </div> </body> </html> ************************************************************** メニュー背景ボタンはPhotoshop、色はRGBで作成しました。 ちなみに、 <a href="#"><li class="menu">ホーム</li></a> <a href="#"><li class="menu">トップ</li></a> を <a href="#" class="menu"><li>ホーム</li></a> <a href="#" class="menu"><li>トップ</li></a> に変更すると画像は表示されるようになりますが、 本来ホームとトップの裏に1つづつ表示されるはずの画像が テキストの無い所でもう1つづつ表示されてしまいます。計4つです。 かといって <a href="#"><li class="menu">ホーム</li></a> <a href="#"><li class="menu">トップ</li></a> を <li class="menu"><a href="#">ホーム</a></li> ><li class="menu"><a href="#">トップ</a></li> に変更しても、 a:hoverで色違いの同じ画像を背景にせっとするときにサイズなどがうまくいきません。 ボタンを全て画像にして、ビヘイビアでイメージをスワップさせるという手もありますが、 それは避けたいと思います。 Firefoxでもきちんと表示される正しいコーディングを教えてください。

    • ベストアンサー
    • HTML
  • CSSで画像1枚によるロールオーバー

    CSSの勉強をしているのですが、Fire Fox2.0ではうまく表示されるのに対し、IE6,7では何も表示されず困っています。どこが間違っているのか教えて頂けませんでしょうか?よろしくお願い致します。 作っている物は以下の通りです。(すべて同じ階層にあります) --------------------------------------------------------------- navi.gif(100*30のメニューが横3縦2で300*30の1枚の画像) --------------------------------------------------------------- list.html(とりあえずメニュー1つだけです) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>リストお勉強</title> <link href="list1.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="globalnavi"> <ul> <li id="btn01"><a href="#">リスト1</a></li> </ul> </div> </body> </html> --------------------------------------------------------------- list.css /* CSS Document */ .globalnavi { width:300px; height:30px; margin:0px; padding:0px; text-align:left; } .globalnavi ul { margin:0px; padding:0px; } .globalnavi li { display:block; list-style-type:none; float:left; width:100px; height:30px; margin:0px; padding:0px; background:url(navi.gif)no-repeat; text-indent:-9999px; } .globalnavi li a { display:block; list-style-type::none; float:left; width:100px; height:30px; margin:0px; padding:0px; background:url(navi.gif)no-repeat; text-indent:-9999px; } .globalnavi li#btn01{ width:100px; background-position:0 0; } .globalnavi li#btn01 a{ width:100px; } .globalnavi li#btn01 a:hover{ width:100px; background-position: 0 -30px; }

    • ベストアンサー
    • HTML
  • CSSで外部ファイルのスタイルが読み込めません

    不思議なことに<style>で囲った場合は、うまくいき、外部ファイル(link href)でcssを読み込んだときは、一部のレイアウト指定が乱れてしまいます。 HTML部分は <ul id="menu_bar"> <li><a href="#">メニュー項目</a></li> <li><a href="#">メニュー項目</a></li> <li><a href="#">メニュー項目</a></li> <li><a href="#">メニュー項目</a></li> <li><a href="#">メニュー項目</a></li> </ul> CSS 部分は #menu_bar { width: 100%; height: 45px; padding: 0; margin: 0; margin-bottom: 2px; list-style-type: none; background: #ff7400; position: fixed; bottom: 0px; left: 0px; box-shadow: 0px -3px 15px rgba(0,0,0,0.4); // ボックス上に影をつける } #menu_bar li { width: 20%; float: left; padding: 0; margin: 0; text-align: center; border-spacing: 2px 2px; border-collapse: separate; } #menu_bar li a { width: auto; color: #fff; font-size: 14px; font-weight: bold; margin: 0; padding: 12px 0; text-decoration: none; display: block; } #menu_bar li a:hover { background: #ffa443; } です。 外部ファイルと直接<style>で記述するときに違いが出るのは初めてです。考えられる原因が何かありますか?どのようにレイアウトが異なるかを画像添付しました。よろしくお願いします。

    • ベストアンサー
    • CSS
  • CSS ロールオーバーの画像が表示されません

    CSSでロールオーバーのメニューを作りましたが、 画像が表示されません…参考書どおりに作っているはずなのですが… どなたかお知恵をお貸しください。 【css】 .menu { width:860px; height:70px; margin-top:5px; } .menu #visamadhi a {background-image:url(navi-aboutvisamadhi.gif);} .menu #kirei a {background-image:url(navi-kireininaritai.gif);} .menu #manabi a {background-image:url(navi-manSabitai.gif);} .menu #shiritai a {background-image:url(navi-jibunshiritai.gif);} .menu #shouhin a {background-image:url(navi-shouhin.gif);} .menu ul { margin:0; padding:0; } .menu li {list-style-type:none; float:left;} .menu li a { display:block; width:160px; line-height:70px; border: 1px solid #D8D1AD; text-indent:-9999px; margin-right:5px; margin-left: 5px; overflow: hidden; } .menu li a:hover {background-position:0px -80px;} 【html】 <div class="menu"> <ul> <li id="#visamadhi"><a href="">Visamadhiとは</a></li> <li id="#kirei"><a href="">きれいになりたい</a></li> <li id="#manabi"><a href="">学びたい</a></li> <li id="#shiritai"><a href="">自分を知りたい</a></li> <li id="#shouhin"><a href="">商品を使いたい</a></li> </ul> </div> 実際に作成したcssを格納しました。 以下URLよりダウンロードしていただけるとありがたいです。 http://firestorage.jp/download/7ebe12eca202b26ce2171225270a8ffe53c820e9

  • css

    上下2つの画像で角丸にcssでしようと思います。上はこれでいいんですが 下の表示はどうするんでしょうか。 <div id="sub"> <h1>メニュー</h1> <ul> <li><a href="1.html" >123</a></li> <li><a href="2.html" >123</a></li> <li><a href="3.html" >123</a></li> </ul> </div> #sub { float:right; margin-top:5px; width:180px; padding:5px 5px 2px 5px; background-image: url(ue.gif); background-repeat:no-repeat; } #sub h1 { background: url(images/a.gif); color:#333333; font-size:11px; font-weight: normal; padding:5px 20px ; } #sub ul{ padding:0; list-style:none; background-color:#FFFFFF; } #sub li{ margin:0 0 0 0px; border-bottom:1px solid #0000ff; } #sub li a { display:block; padding-left:20px; background:url(images/1.gif) 2% 50% no-repeat; line-height:35px; } わかりましたらよろしくお願いします。

    • ベストアンサー
    • CSS
  • CSSで思うようにいかないところがあります。

    現在CSS勉強中の初心者です。 CSSを使って、ナビゲーションシステムを作ろうと、本に書いてある通り、打ち込んでみたのですが、borderで囲まれた部分を1行にしたいのですが、なぜか、2行になってしまっているようです。上の行には表示させたい文字が書かれているのですが、下の行が空欄になってしまって、スペースができてしまいます。CSSの書き方が悪いのでしょうか?解決方法を教えてください。うまく説明できなくてわかりにくいかもしれませんが、宜しくお願いいたします。 CSSは以下です。 #nav { margin: 0px; padding: 0px; list-style: none; float:left; width:100%; } #nav li { float:left; background-color:#f0f0f0; border: 1px solid #000; font-size:12px; text-align:center; width:160px; height:20px; margin-top:1px; margin-right:0px; margin-left:3px; } #nav a{ color:#000; width:170px; height:20px; display:block; } #nav a:hover{ color:#fff; background-color:#0f314e; text-decoration:none; height:20px; } HTMLは以下です <ul id="nav"> <li><a href="">ホーム</a></li> <li><a href="">Gallery</a></li> <li><a href="">プロフィール</a></li> <li><a href=""></a>お問い合わせ</li> </ul>

    • ベストアンサー
    • HTML
  • cssで、一枚の画像でロールオーバーができない。

    一枚の画像でロールオーバーさせたいのですが、 どうしてもうまくいきません; 全体 幅495px,高さ60px の画像。 幅99x30pxのボタンで、縦2,横5つ並んでいます。 縦1行目に、通常ボタンが横5つ。 縦2行目に、オンマウスボタンが横5つ。 nav1~nav5のボタンに、 通常は、1行目、1つ目のボタンが表示されていて、 オンマウスすると、画像が消えてしまいます。 わかる方、回答お願いします。 ■html <div id="globalnav"> <ul> <li id="nav1"><a href="#">a</a></li> <li id="nav2"><a href="#">b</a></li> <li id="nav3"><a href="#">c</a></li> <li id="nav4"><a href="#">d</a></li> <li id="nav5"><a href="#">e</a></li> </ul> </div> ■css #globalnav{ width:495px; height:30px; margin-left:305px; margin-top:70px; padding:0; } #globalnav ul{ list-style: none; margin:0; padding:0; } #globalnav li{ float:left; width:99px; margin:0; padding:0; text-indent:-9999px; } #globalnav li a{ display:block; text-decoration:none; width:99px; height:30px; background: url(rollover.gif) no-repeat; } /*通常*/ #nav1 a { background: 0 0; } #nav2 a { background: -99px 0; } #nav3 a { background: -198px 0; } #nav4 a { background: -297px 0; } #nav5 a { background: -396px 0; } /*オンマウス*/ #nav1 a:hover { background: 0 -30px; } #nav2 a:hover { background: -99px -30px; } #nav3 a:hover { background: -198px -30px; } #nav4 a:hover { background: -297px -30px; } #nav5 a:hover { background: -396px -30px; }

  • HTML と CSS について 

    以下のようなHTMLとCSSですが… <div id="xxx"> <ul> <li id="s-a"><a href="index.html">select a</a></li> <li id="s-b"><a href="index.html">select b</a></li> </ul> </div> ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ #xxx { width: 500px ; height: 100px ; } #xxx ul { padding: 10px 0px 0px 50px; } #xxxx li { padding: 0 ; float: left ; } #xxx #s-a a { width: 80px ; height: 30px ; margin: 0 ; padding: 0 ; background-image: url("ssaa.gif") ; float: left ; } #xxxxx #s-b a { width: 80px ; height: 30px ; margin: 0 ; padding: 0 ; background-image: url("ssbb.gif") ; float: left ; } このような手法について、 なぜ id="s-a" id="s-b" id="s-c" は a要素ではなくli要素の中に設定する必要が あるのでしょうか? 実際、確かにこれをA要素に設定すると リンク画像が表示されず消えてしまうことは 確認しました。 それがなぜなのか? このような手法をとるのはなぜか? そして、これらは何に絡む話しなのか? (継承?適用範囲?インラインとかブロック?  ブラウザによる表示の違いへの対応?  W3C関連?) CSSを初心者でよく解りません。 また、持ち合わせの資料や、参考にして いるサイトでもよく解りません。 質問自体が無茶苦茶で、さらには的の広すぎる 質問になっている様な気もし、申し訳ないですが アドバイス、解りやすいサイトなどご存知 な方がおられましたら、ご教授下さいませ。 よろしくお願いいたします。

専門家に質問してみよう