いつもお世話になっております。
以下のような、どなたかのご回答をもとに、ホームページビルダー15で同じような折りたたみ式のメニューを作成したいと考えおります。
参考にしたいメニューはこちらです↓
http://okwave.xrea.jp/jquery/test6797636/e.html
ですが、自分の作ろうとしているメニューはCSSプロフェッショナルテンプレートの「企業」から作ったものであり、なかなかうまくいきません。
以下、自分の記述を記載いたしますが、以下のようにしたいと思います。
通常は、
メニューA
メニューB
メニューC
というように、なっており、メニューBをクリックしたときにだけ
メニューA
メニューB
B-1
B-2
B-3
メニューC
と、サブメニューが表れ、メニューBをクリックするまでサブメニューも表示されたままにしておきたいと思います。(もちろん、メニューA~Cも、どのページでも表示されるようにする)
どこに、どのように記述を入れれば、ボタンのデザインなども崩さず、思い通りのメニューになるのか、ご教示いただければと思います。
どうぞよろしくお願いいたします。
*********自分の記述(ヘッダー情報も含まれていますが無視してください)***********
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 15.0.8.0 for Windows">
<title>TOP</title>
<link rel="stylesheet" href="hpbparts.css" type="text/css" id="hpbparts">
<link rel="stylesheet" href="container_1A_2c_left.css" type="text/css" id="hpbcontainer">
<link rel="stylesheet" href="main_1A_2c.css" type="text/css" id="hpbmain">
<link rel="stylesheet" href="user.css" type="text/css" id="hpbuser">
</head>
<body id="hpb-template-01-01-02" class="hpb-layoutset-02" bgcolor="#ffffff" background="blue_p7b.gif">
<div style="top : 2px;left : 100px;
position : absolute;
z-index : 1;
visibility : visible;
" id="Layer1">
<div id="hpb-container">
<!-- header --><br>
<!-- header end --><!-- inner -->
<div id="hpb-inner">
<!-- wrapper -->
<div id="hpb-wrapper"><!-- main end -->
</div>
<!-- wrapper end --><!-- navi -->
<div id="hpb-nav">
<h3 class="hpb-c-index"></h3>
<ul>
<li id="nav-toppage"><a href="a.html"><span class="ja">メニューA</span><span class="en">TOPPAGE</span></a>
<li id="nav-concept"><a href="b.html"><span class="ja">メニューB</span><span class="en">CONCEPT</span></a>
<li id="nav-service"><a href="c.html"><span class="ja">メニューC</span><span class="en">SERVICE&PRODUCTS</span></a>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>
No.3ベストアンサー
- 回答日時:
こんばんは。
CSS(スタイルシート)はどのように画面表示するかを定義するまでの機能しか持っていません。
(静的な定義・・・リンクしたHTMLファイルを呼び出す機能まで)
Javascriptは画面でこのボタンが選択された場合、どのようなアクションを行い、その結果をどのように画面表示するかまでを定義しています。
(動的な定義・・・他HTMLファイルの呼び出し+自HTMLファイル内での動作・結果表示までを行う)
ビルダーはHTMLファイルを作成する汎用ツールであり、Javascript・PHPなど、HTMLファイル内での動作定義までは行えません。
逆を言えば、ビルダーでscriptやPHPまで対応できれば、WEB製作会社なんて要らないですよね・・・。
HTML技術に加えて、プログラミングまで勉強しないと難しいです・・・。
残念な回答でごめんなさい。
No.2
- 回答日時:
すみません、補足をする前に回答ボタンを押してしまいました。
下記のソースを流用し、★マークのところを自分のHTMLファイル名やボタン名を変更すれば良いと思います。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4. …
<style type="text/css"><!--
ul#navi,ul#navi > li ul{
list-style: none;
padding: 0;
margin: 0;
}
ul#navi > li{
width: 100px;
border: 1px solid #000000;
margin-bottom: 3px;
padding: 3px 5px;
background-color: #cccccc;
}
ul#navi > li > div{
cursor: pointer;
}
ul#navi > li ul{
display: none;
}
ul#navi > li ul li{
padding: 3px 5px;
background-color: #999999;
border: 1px solid #000000;
margin-bottom:3px;
}
--></style>
<script type="text/javascript"><!--
$(function(){
var ckarr = new Array();var menuck = new Array();
if(document.cookie){
ckarr = document.cookie.split("; ");
for( var i = 0; i < ckarr.length; i++ ){
if(ckarr[i].indexOf('menuOpen=') === 0){
menuck = ckarr[i].substr(9,ckarr[i].length).split(":");
break;
}
}
}
if(menuck.length){
$("#navi > li").children("ul").each(function(i){
if($.inArray(String(i), menuck) >= 0){
$(this).css("display","block");
}
});
}
$("ul#navi > li > div").click(
function(){
if($("~ ul",this).css("display") == "none"){
$("~ ul",this).css("display","block");
}
else{
$("~ ul",this).css("display","none");
}
setOpenMenu();
}
);
});
function setOpenMenu(){
var arr = new Array();
$("#navi > li").children("ul").each(function(i){
if($(this).css("display") == "block"){
arr.push(i);
}
});
if(arr.length){
document.cookie="menuOpen="+arr.join(":")+"; path=/jquery/test6797636/; expires=Tue, 31-Dec-2030 23:59:59;";
}
else{
document.cookie="menuOpen=; path=/jquery/test6797636/; expires=Tue, 1-Jan-1980 00:00:00;";
}
}
--></script>
</head>
<body>
<ul id="navi">
<li>
<div>折りたたみ1</div>・・・・・・・・・・・・・・★
<ul>
<li><a href="./">TOP</a></li>・・・・・・・・・・★
<li><a href="a.html">項目A</a></li>・・・・・・★
<li><a href="b.html">項目B</a></li>・・・・・・★
</ul>
</li>
<li>
<div>折りたたみ2</div>・・・・・・・・・・・・・・★
<ul>
<li><a href="c.html">項目C</a></li>・・・・・・★
<li><a href="d.html">項目D</a></li>・・・・・・・★
</ul>
</li>
<li>
<div>折りたたみ3</div>・・・・・・・・・・・・・・★
<ul>
<li><a href="e.html">項目E</a></li>・・・・・・★
</ul>
</li>
</ul>
</body>
</html>
お礼が遅くなりまして、申し訳ありませんでした。
ご丁寧にありがとうございました。
こちらのコードは、実は私も前に試してみていたのですが、今作成しているデザインの中に組み込みたいと考えておりまして、なんとかボタンで使用している画像などを使いつつ折りたたみメニューができないものかと思っております。
ですが、ホームページビルダーのCSSプロフェッショナルテンプレートで作った場合は無理なのでしょうか・・・
もし無理なら、お教えいただいたコードを実行したときに、グレーのメニューになりますが、これを任意の色や画像にする方法がありましたら教えていただけますでしょうか。
たびたび申し訳ございませんが、どうぞよろしくお願いいたします。
No.1
- 回答日時:
>参考にしたいメニューはこちらです
→HTMLの他にjavascriptと言う技術も使って実現しています。
多分、ビルダーでは作成できないと思います。
直接、コードをコーディングしないと無理だと思います。
以下に参考にしたいメニューのコードを記載しておきます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4. …
<style type="text/css"><!--
ul#navi,ul#navi > li ul{
list-style: none;
padding: 0;
margin: 0;
}
ul#navi > li{
width: 100px;
border: 1px solid #000000;
margin-bottom: 3px;
padding: 3px 5px;
background-color: #cccccc;
}
ul#navi > li > div{
cursor: pointer;
}
ul#navi > li ul{
display: none;
}
ul#navi > li ul li{
padding: 3px 5px;
background-color: #999999;
border: 1px solid #000000;
margin-bottom:3px;
}
--></style>
<script type="text/javascript"><!--
$(function(){
var ckarr = new Array();var menuck = new Array();
if(document.cookie){
ckarr = document.cookie.split("; ");
for( var i = 0; i < ckarr.length; i++ ){
if(ckarr[i].indexOf('menuOpen=') === 0){
menuck = ckarr[i].substr(9,ckarr[i].length).split(":");
break;
}
}
}
if(menuck.length){
$("#navi > li").children("ul").each(function(i){
if($.inArray(String(i), menuck) >= 0){
$(this).css("display","block");
}
});
}
$("ul#navi > li > div").click(
function(){
if($("~ ul",this).css("display") == "none"){
$("~ ul",this).css("display","block");
}
else{
$("~ ul",this).css("display","none");
}
setOpenMenu();
}
);
});
function setOpenMenu(){
var arr = new Array();
$("#navi > li").children("ul").each(function(i){
if($(this).css("display") == "block"){
arr.push(i);
}
});
if(arr.length){
document.cookie="menuOpen="+arr.join(":")+"; path=/jquery/test6797636/; expires=Tue, 31-Dec-2030 23:59:59;";
}
else{
document.cookie="menuOpen=; path=/jquery/test6797636/; expires=Tue, 1-Jan-1980 00:00:00;";
}
}
--></script>
</head>
<body>
<ul id="navi">
<li>
<div>折りたたみ1</div>
<ul>
<li><a href="./">TOP</a></li>
<li><a href="a.html">項目A</a></li>
<li><a href="b.html">項目B</a></li>
</ul>
</li>
<li>
<div>折りたたみ2</div>
<ul>
<li><a href="c.html">項目C</a></li>
<li><a href="d.html">項目D</a></li>
</ul>
</li>
<li>
<div>折りたたみ3</div>
<ul>
<li><a href="e.html">項目E</a></li>
</ul>
</li>
</ul>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のチェックボックス状態取...
-
固定ナビのJqueryのアコーディ...
-
javascriptテキストBOX色を元に...
-
テキストエリア内の一部の文字...
-
フッターの下に隙間ができてしまう
-
HTMLですCSSです この画像のよ...
-
背景色と連動するスライドショ...
-
スライドショー「Skitter」をカ...
-
1枚の画像をクリックすると複数...
-
web制作(HP作成について教えて...
-
textareaに画像を表示したい
-
HTMLタグに複数のクラスを設定...
-
スワップイメージのフェード方...
-
アコーディオンメニューが開い...
-
サムネイルにカーソルを合わせ...
-
pythonで、tkinterとpillowの組...
-
createElementが一瞬で消えてし...
-
ブラウザで表示されている罫線...
-
MAX関数を使ってからLEFT JOIN...
-
[W3C]フラッシュ画像について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
クリックした<a>タグのみにClas...
-
JQueryタブのアクティブ アン...
-
javascriptでEnterキーをtabキ...
-
「jQuery」アコーディオンメニ...
-
【jQuery】遅延実行(タイムラ...
-
ネストされたチェックボックス...
-
【javascript で動的に a タグ...
-
jquery ドロップダウンメニュー...
-
文字と数字が混在する要素のsor...
-
Jquery の slide.toggle で要素...
-
【jQuery】hoverしたn秒後にイ...
-
チェックボックスに入っている...
-
クリックで表示、非表示するメ...
-
同一ページ内で、任意の文字列...
-
オンマウスで画像ロールオーバ...
-
javascriptで、クリックしたら...
-
PHPでログインフォーム
-
<li>タグの順番を入れ替える方法
-
jQuery タブメニューへのダイ...
おすすめ情報