
■リンク1
■リンク2
■リンク3
(※1)■はイメージで、リンクを持っている。
(※2)各行の空白をクリックでもリンクnをクリックと同じ動作。各リンクとイメージは別のリンク。
上記のようなメニュー形式を実現したいです。
(※1)までなら以下の様な記述で実現できました。
<a href="hoge.html"><img src="hoge.jpg" alt=""/></a><a href="piyo.html">リンク1</a>
しかし、(※2)各行の空白をクリックでもリンクnをクリックと同じ動作の実現の仕方がわかりません。
名案ありましたら、教えてください。
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
こういうこと…ではないのでしょうか??
<スタイル部分>-------------------------------------------
#menu ul,
#menu li{
margin:0;
padding:0;
list-style:none;
}
#menu li{
width:160px;
border-bottom:1px #fff solid;
background:#fcc;
}
#menu li a{
display:block;
width:130px;
height:30px;
padding-left:30px;
padding-top:10px;
}
#menu li.menu01 a{
background:url(img1.gif) no-repeat 5px 10px;
}
#menu li.menu02 a{
background:url(img2.gif) no-repeat 5px 10px;
}
#menu li.menu03 a{
background:url(img3.gif) no-repeat 5px 10px;
}
<HTML部分>-------------------------------------------
<ul id="menu">
<li class="menu01"><a href="#">リンク1</a></li>
<li class="menu02"><a href="#">リンク2</a></li>
<li class="menu03"><a href="#">リンク3</a></li>
</ul>
※IE6では多少崩れるので、paddingにhack処理が必要ですが…。

No.6
- 回答日時:
完成ソースです。
唯一ポイントといえば、a要素自体をdisplay:block;でブロックにしてしまうことだけです。
配置はどうにでもなるでしょう。
☆デザインのために、余分なスペースを入れたり、idやclass、あるいはタグを使わずにスタイルシートだけで、デザインするのが重要です。でなけりゃHTMLとCSSを分離する意味が無い。
そのためには、プロパティだけでなく、セレクタも上手に使いましょう。
以下全ソース・・・ご自由にご利用ください。
ここからは、ご自分で・・
ご覧の通り、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">
<style type="text/css">
<!--
@media screen{
html,body,ol,li{ margin: 0px; padding:0px; }
h1{ margin-top: 70px; text-align: center;}
a img{ border: outset white 2px; background-color: white;}
body>ol{ display: block; width: 160px; margin-left: 10px;}
body>ol>li{ display: block; width: 100%; position: relative;
height: 36px; margin-bottom:6px;}
body>ol>li>a{ display: block; width: 34px; height: 34px; margin: 0px;}
body>ol>li>a + a{ display: block;position: relative;top: -33px;
left: 38px; width: 120px; height: 24px; padding-left: 2px;
padding-top: 6px; padding-bottom: 6px; margin:0px;
background-color: pink;}
body>ol>li+li>a + a{background-color: rgb(200,255,200);}
body>ol>li+li+li>a + a{background-color: rgb(200,200,255);}
}
-->
</style>
</head>
<body>
<h1>懲りすぎリンク</h1>
<ol>
<li>
<a href="./page1.html" title="1ページ">
<img src="http://service.okwave.jp/css/images_goo/question …
width="34" height="34" alt="リンク">
</a>
<a href="./page10.html">リンク1</a>
</li>
<li><a href="./page2.html" title="1ページ">
<img src="http://service.okwave.jp/css/images_goo/question …
width="34" height="34" alt="link"></a>
<a href="./page20.html">リンク2</a>
</li>
<li>
<a href="./page3.html" title="1ページ">
<img src="http://service.okwave.jp/css/images_goo/question …
width="34" height="34" alt="りんく">
</a>
<a href="./page30.html">リンク3</a>
</li>
</ol>
</body>
</html>
この回答への補足
ORUKA1951さん ほんとうにご回答ありがとうございます。
body>ol>li>a + a{
display: block;
position: relative;
top: -33px;
left: 38px;
topとleftでイメージの右隣にリンクがくるように調整してますが、
この2行がないと改行してしまいますよね?
topとleftでの指定なしで改行させないってのは、やはり無理でしょうか?
No.5
- 回答日時:
≫欲しかったのは左メニューのイメージでして、ご回答を元に一行づつ改行するようなメニューに改造試みているのですが、
HTML変更なし。スタイルのみ書き換え。
ボーダーは消してあります。(製作中はつけておくと分かりやすい)
【分かりやすいように全角スペースでインデントさせています。全角スペースはタブに変更すること】
<style>
<!--
html,body,ol,li{
margin: 0px;
padding:0px;
}
h1{
margin-top: 70px;
text-align: center;
}
a img{
border: outset white 2px;
background-color: white;
}
body>ol{
display: block;
margin-left: 10px;
width: 160px;
}
body>ol>li{
display: block;
width: 100%;
position: relative;
height: 36px;
margin-bottom:6px;
}
body>ol>li>a{
display: block;
width: 34px;
height: 34px;
margin: 0px;
}
body>ol>li>a + a{
display: block;
position: relative;
top: -33px;
left: 38px;
width: 120px;
height: 24px;
padding-left: 2px;
padding-top: 6px;
padding-bottom: 6px;
margin:0px;
background-color: pink;
}
body>ol>li+li>a + a{
background-color: rgb(200,255,200);
}
body>ol>li+li+li>a + a{
background-color: rgb(200,200,255);
}
-->
</style>

No.4
- 回答日時:
空白の箇所(何も表示されてない場所)をもアンカー扱いにしたいと云う解釈で宜しいですか?
ならばa要素の全ての色指定を「背景色」にした「外部CSS」を用いて、空白分のスペースに文字を入れてspan等のインライン要素でclassやidを用いて囲めば良いのでは?
No.3
- 回答日時:
説明がイマイチ理解しきれなかったのですが…考え方を変えれば解決するのではないでしょうか…??
>(※1)■はイメージで、リンクを持っている。
という点を、■を背景画像に敷いて、リンクnを含むXpx×Ypxの範囲をリンク範囲として設定する…ということでいいのではと思います。
<スタイル>--------------------------------------------
#link_menu,
#link_menu li{
list-style:none;
margin:0;
padding:0;
}
#link_menu a{ //各リンク範囲設定
display:block;
width:150px;
height:50px;
}
.menu1 a{
background:url(画像のパス) no-repeat 0 0; /*■画像の指定*/
padding-left:20px; /*■画像分のスペースをとる*/
}
・
・
・
(リンクごとに異なる画像を使用する場合は複数記述)
<HTML>--------------------------------------------
<ul id="link_menu">
<li class="menu1"><a href="#">リンク1</a></li>
<li class="menu2"><a href="#">リンク2</a></li>
<li class="menu3"><a href="#">リンク3</a></li>
</ul>
見当違いな回答だったらすみません…!
この回答への補足
ran_2323さん ご回答ありがとうございます。
質問の仕方が的確ではなかったです。すみません。
[イメージ][リンク][空白 ]改行
↑ここをクリックの時にリンクをクリックと同じ動作にしたい。
[リンク]は[イメージ]のすぐ隣に配置したいので、できればpadding-leftで調整もしたくないです。
でも頂いたご回答を参考に、考えてみます。
No.2
- 回答日時:
各行の空白というのがいまいちよく分からないけど、
<a href="hoge.html"><img src="hoge.jpg" alt=""/></a><a href="piyo.html" style="display:inline-block;padding:3px;border:black 2px solid;">リンク1</a>
で一応いいのではなかろうかと
ただ、たしかinline-blockは最近のブラウザしか対応してなかったはずなので、floatを使って
<a href="hoge.html" style="float:left;"><img src="ico_must.gif" alt=""/></a><a href="piyo.html" style="float:left;display:block;padding:3px;border:black 2px solid;">リンク1</a>
の方がいいかもしれない。
この回答への補足
nodagutiさん ご回答ありがとうございます。
「各行の空白」って表現わかりにくかったですね。すみません。
空白って言い方のほうが良かったでしょうか。。。
[イメージ][リンク][空白 ]改行
[イメージ][リンク][空白 ]改行
[イメージ][リンク][空白 ]改行
上記の様な感じです。[空白]で示したところをクリックでも[リンク]で示したところをクリックと同じにしたいのです。
No.1
- 回答日時:
Q:よく分からないのですが、リンクの四角形の中にリンクを持つ画像が浮かんでいるということかな?
たとえば、お遊びで作ってみると・・・
遊びの内容は、(巷のCSSでデザインされているページは、そのためだけのidやらclassがてんこ盛りなので、わざとシンプルなHTMLで挑戦してみた。)
【注意】下のソース(HTMLもCSSも)、分かりやすいように、すべて全角のスペースでインデントされています。テストするときは全角スペースをタブに置換すること!!
素のHTMLが下記のようなシンプルな(Strict)だとして、
<!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">
</head>
<body>
<h1>懲りすぎリンク</h1>
<ol>
<li><a href="./page1.html" title="1ページ"><img src="http://service.okwave.jp/css/images_goo/question … width="34" height="34"></a><a href="./page10.html">リンク1</a></li>
<li><a href="./page2.html" title="1ページ"><img src="http://service.okwave.jp/css/images_goo/question … width="34" height="34"></a><a href="./page20.html">リンク2</a></li>
<li><a href="./page3.html" title="1ページ"><img src="http://service.okwave.jp/css/images_goo/question … width="34" height="34"></a><a href="./page30.html">リンク3</a></li>
</ol>
</body>
</html>
CSSは下記・・・
<style>
<!--
html,body,ol,li{
margin: 0px;
padding:0px;
}
h1{
margin-top: 70px;
text-align: center;
}
a img{
border: outset white 2px;
background-color: white;
}
body>ol{
display: block;
position: absolute;
top: 0px;
height: 54px;
width: 100%;
border-bottom: inset 3px gray;
}
body>ol>li{
display: block;
float:left;
border: solid 1px red;
width: 20%;
font-size: 20px;
position: relative;
}
body>ol>li>a{
display: block;
width: 34px;
height: 34px;
position: absolute;
border: solid: 2px green;
z-index:2;
margin: 6px;
}
body>ol>li>a + a{
display: block;
width: 80%;
height: 36px;
padding-left: 34px;
text-align:center;
padding-top: 8px;
padding-bottom: 8px;
border: solid blue 1px;
z-index:1;
margin:0px;
background-color: pink;
}
body>ol>li+li>a + a{
background-color: rgb(200,255,200);
}
body>ol>li+li+li>a + a{
background-color: rgb(200,200,255);
}
-->
</style>
<!-- HTMLには一切余分なid,classはありません。 -->

この回答への補足
ORUKA1951さん ご回答ありがとうございます。
空白をクリックでリンクnを押下と同じって動作は、まさにご回答の通りです。ありがとうございます。
ご回答は上メニューのイメージかと思いますが、欲しかったのは左メニューのイメージでして、ご回答を元に一行づつ改行するようなメニューに改造試みているのですが、ちょっと私には難しいです。。。
■リンク1
■リンク2
■リンク3
■(イメージ)のすぐ隣にリンク、空白(余白といった方が良かったかも)が続いて次の行へって感じなんです。
質問の仕方が曖昧でして申し訳ないのですが、もう少しご教授していただけると助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
絶対パスと相対パスについて。
-
HTML&CSS 学習本の相談
-
HTML&CSS 学習方法のお勧め
-
ホームページを作っていたらhtm...
-
ホームページのサイトでhtm...
-
HTML/CSSを使って写真のような...
-
HTMLでクロス抽出したい
-
htmlで"start-|"から"|-stop"ま...
-
HTMLで画像をポップアップで表...
-
角丸画像の背景色を透明にした...
-
レスポンシブで困っています・・
-
ホームページの制作について教...
-
GoogleSearchControlにホームペ...
-
Dreamweverは今も主流なんです...
-
動画と画像&タイトル2列を横並...
-
完全素人がノーコードWEB制作の...
-
YouTubeの動画を自分のホームペ...
-
htmlが簡単に作成できるアプリ...
-
html 階層を下げると3分割画面...
-
index.htmlがうまく反映されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
絶対パスと相対パスについて。
-
HTML&CSS 学習本の相談
-
HTML&CSS 学習方法のお勧め
-
htmlの文字が縦書きになる
-
テーブルの行を折りたたみたい...
-
ホームページのサイトでhtm...
-
ホームページを作っていたらhtm...
-
HTMLでクロス抽出したい
-
HTML/CSSを使って写真のような...
-
メモ帳の段落の揃え方
-
iPhoneで HTMLファイルを閲覧
-
角丸画像の背景色を透明にした...
-
レスポンシブで困っています・・
-
htmlの<input type=”file”>でア...
-
css初心者 フレックスボックス...
-
Webサイトの「デザインのみ(コ...
-
、URL化させるにはどうしたらい...
-
静止画画像をクリックすると音...
-
スマホ(android)のタッチパネ...
-
WEBページを強制的に横画面で見...
おすすめ情報