HTML5テーマ 2

テーマ

 状態:未解決  閲覧数:425  投稿日:2012-01-15  更新日:2017-07-27
1はこちら
HTML5テーマ | XOOPSStyle
  
1/15
2.2調査
<内容>
・2.2にしたら、GnaviD3で、地図が表示されなくなった理由
・高さ調整jsは、2.1&HTMML4でも使えるか?

<現状>
・2.2 … GnaviD3で、地図が表示されない
・高さ調整js … 「2.2×HTML5」では動作している
        「2.1×HTML4」では、全開試したときは、動作せず

まずは、一番、確認が簡単と思われる、
「高さ調整jsは、2.1&HTML4でも使えるか?」からテスト。
ダメ。前回同様。
<div id="content">が複数あったので、外側以外を<div id="modulecontent">に変更して試すも、ダメ。

前回は、ここで、XOOPSみたいな動的サイトではダメなんだ。

と諦めた。


ところが、「2.2×HTML5」では動作することが判明。

ということは、どういうことなんだ?

「HTML4」「HTML5」の切り分けについては、
まずは、静的サイトの「HTML4」で試せばいいじゃない?


というか、一番初めに動作確認できたのは、「HTML4」じゃないの?

ていうことは、どうゆうこと?

「2.1」だから動作しない、もしくは、単にテーマの問題か。

次のテスト項目としては、「2.1」で、
極力JSを使っていないサイトで動作確認してみればいいんじゃない?


だめだわ、表示されない。

ていうか、div名変えなきゃ、と気が付いたのだが、
今見たら、テーブルで組んである。

これだとちょっと厳しいかも。

しょうがないので、
元のテーマで、
jsを外しながら確かめていくことにする。


動いた!

やっぱ、2.1とか関係ないのか?

jsの問題なのは、間違いない。

光が見えてきたところで、お昼にしよう。

ちなみに、今、15:49.

色々やっている内に、読み込まれるようになったのだが、

何故読み込まれるようになったのかが不明。


しょうがないので、別のサイトで試してみる。


イケるやん!

オレは何を勘違いしていたのだろう?

これがイケるってことは、単に書き方が間違ってたことになるよ。


まあ、いいや、動いたんなら、もう。
動作しなかった原因とか、不明のままだけど。

一応、被っていたidは外しとくよ。

最後に、念のため、IE9でも確認して、この件は、終了。


後の課題は、これか。
「2.2 … GnaviD3で、地図が表示されない」

ちなみに、初めに掲げていなかったけど、
もひとつ課題があって、
それは、「高さ調整js」が特定ページでのみ動作しない、
ってのがあって、それは多分、prototype.js絡みじゃないかと思うんだ。
詳細にはまだ見てないけど、どうも、GnaviD3の詳細地図ページで、
「高さ調整js」が機能しないっぽいんだよね。

どうしよう?
どっちを先に見ていこう?

先ずは、
「2.2 … GnaviD3で、地図が表示されない」
これから行こうか。

初めはたまたまかと思ったけど、2.2に乗り換えた、
ん、
ちょっと待って。
今、「GnaviD3で、地図が表示されない」サイトが2サイトあって、
どっちも2.2かと思ってたけど、多分、一つは2.1。
共通しているのはHTMLテーマ。

ということは、HTML5テーマが犯人なのかしら?

どうやって、検証しよう?


先ずは、テーマを変えてみればいいのかな?


ビンゴだわ。

「2.1×HTML5テーマ」で詳細地図が非表示されなかったヤツが、
「2.1×HTML4テーマ」にした途端、表示されるようになったよ。


犯人は、お前か!


だけど、
何だろう、
実際問題として、何が引っ掛かってるんだろうか?

多分、JS絡みだとは思うが…。


多分、根本的な問題は、
GnaviD3が、prototype.jsを使っていることにあるような気がしてるんだよね、
よく分かんないけど…。


GnaviD3に変わるモジュール、
どっかないかなァ?

ないだろうな、

モジュールリリース自体、最近、ほとんど見かけなくなったし…。


うーん、でも、2.2ならともかく、
テーマが変わったぐらいで、表示されないなんて、あり得ないよね。

パッと見、ファイル数もそんな多くないし、
ちょっと見てみよう。

とりあえず、js切っていって、
どこが原因か確かめよう。


結構外したと思うけどな。
まだ、地図表示されない。
もう、外すトコなんかないのに…、なんでよ?

今、17:52.
色々試行錯誤した挙句、ようやく問題の場所だけは特定できた。
驚きの結果だよ!
jsじゃなくて、css?
マジで?
少なくとも、この1行を入れると、詳細地図が表示されなくなることが判明。
<link rel="stylesheet" type="text/css" href="<{$xoops_imageurl}>media-queries.css" />

jsよ、
疑ってごめんなさい。

prototypeがどうとか、
全然関係なかったかも。

といか、この結果からして、まず、関係ない。

だけど、なんで?


これはもう、XOOPS云々以前に、
「Media Queries」と「google map」の問題かと疑ってみたら、
どうやらそういうわけでもないらしい。
(検索しても、何も見つからなかった)

つまり、どゆこと?


media-queries.cssって、中見たけど、
そんなに行数多くないみたいなので、
例によって、1行ずつコメントアウトしていけば、
何とかなるかも

…って、
またかよ!


他に方法も思いつかないので、
必殺テスターになって、
とにかく、
問題となる箇所を発見!
img {
max-width: 100%;
height: auto;
width: auto\9; /* ie8 */
}

とりあえず、コメントアウトすることで対応したけど、
コレないと何が問題なんだろうね。

(案1)モジュール単位で読み込ませる「media-queries.css」を変更
(案2)「max-width」「height」のどちらが問題なのか調べる
(案3)ほっとく


とりあえず、(案2)調査。
どうやら、
img {
max-width: 100%;
}
で引っ掛かっているっぽい。

試しに、
img {
max-width: auto;
}
へ変更したら、無事表示された。

ということは、最小限度の変更に留めるためには、

img {
max-width: 100%;
height: auto;
width: auto\9; /* ie8 */
}

にした上で、

GnaviD3の詳細地図部分だけを、
CSSで

img {
max-width: auto;
}

てしてやればいいんじゃない。


ところが、

img {
max-width: 100%;
height: auto;
width: auto\9; */ ie8 /*
}

div#map img {
max-width: auto!important;
}

てやってもダメ。
なんでよ?


それどころか、
上書きもダメ。

img {
max-width: 100%;
height: auto;
width: auto\9; */ ie8 /*
}

img {
max-width: auto!important;
}

これがダメってことは、
それこそホントに、
モジュールで、読み込むcssを分けなきゃいけない。

なんで、こんなに自分勝手なのよ、
media-queries.cssって。


あかんわ、マジ分かんない。

css複数用意するのって、メンドクサイじゃんね、

大体、ここって、何やってるの?
auto;じゃダメなの?


レスポンシブwebデザインで制作する時のポイント | Design Spice
>Flexible Images
>画像もウインドウサイズに合わせて可変するようにします。
img{
   max-width: 100%;
   height: auto;
   width /***/:auto; /*IE8のみ適用*/
}
やっぱコレがデフォなのか。


最後に、配布元のcss見ようと探したけど、見つからなかった。

「Media Queries」ってどっかが作ってるんじゃなくて、
仕様だから?

うーん、
   max-width: 100%;
と、
   max-width: auto;
の違いが分からんな。

ついでに、何で、上書きできないかも。

さらに、Google MAP API V2 が、
「max-width: auto;」では表示できるのに、「max-width: 100%;」で表示できない理由が分からない。


何か、もうメンドクサクなってきたので。
GnaviD3だけ、別のCSS読み込ませることにしよう。


ていうか、やってて、気が付いたのだが、
FireBugで見ると、「max-width: auto;」なんて書き方はないみたい。
認識してくれない。

それから、色々粘るも、
ダメ。
マジ分かんない。
19:23.
全てを諦め、cssを分離することにする。


<{if $xoops_dirname == "gnavi" }>
<link rel="stylesheet" type="text/css" href="<{$xoops_imageurl}>media-queries_gnavi.css" />
<{else}>
<link rel="stylesheet" type="text/css" href="<{$xoops_imageurl}>media-queries.css" />
<{/if}>

これで、とりあえず、表示されるようになった。



LAST
「高さ調整js」が特定ページでのみ動作しない


関係ないけど、気が付いたのでメモ。
▼サイトマップモジュールレイアウト
・「2.2×HTML5テーマ」崩れる
・「2.1×HTML5テーマ」崩れない
▼GNAVI 地図表示ページ
・「2.2×HTML5テーマ」スクリプトエラーになる
・「2.1×HTML5テーマ」問題ない

高さ調整JS
GNAVI詳細ページ
・「2.2×HTML5テーマ」動作しない
・「2.1×HTML5テーマ」動作しない
※地図を表示させてるからだ、と思ってたけど、2.1の「GNAVI 地図表示ページ」では動作していることから、何か違う原因なのかもしれない


原因と思しきもの発見。
このページだけ、レイアウト構成違うわ。
高さの基準となるIDが見当たらない。

だけど、何で?
ベースレイアウトは同じはずなのに…。


違うわ。何勘違いしてんねん。

同じレイアウトやん。


あかん。
全然分からへんわ。

今、20:14.

21:00まで考えて分からなければ、
これは諦めよう。


原因と思しき箇所を発見!
404 Not Found
って。
肝心のjsを読み込んでないやん!

だけど、/指定やで。

読み込んでないなんて、そんなわけあるかい!

でも、なんでよ?


えーでも、動作してるページでも、404なんだけど。
それはそれでありえへん話。

なんで、404なのに、動作してるの?

ああ、頭おかしくなりそう。



mainContent is null
[このエラーでブレーク]

height      = mainContent.outerHeight(),

sidebarmodule.js (5 行目)
"enabling javascript debugger to support JavaScriptTool"

やっぱjs絡みかよ!

JavaScriptデバッガがJavaScriptToolをサポートすることが可能
直訳しても意味分かんないけど。

原因は、高さを取得できていないことにあるみたい。

問題は、なんで、このページだけ、高さを取得できないか。

やっぱ、prototype.jsとバッティングしているのでは、なかろうか。

あー、やッぱそうだわ。

動作するページって、prototype.js読み込んでないもん。

ということは、高さjs自体は大した長さじゃないから、
バッティングを回避する例のヤツをフルコピペすれば、
何とかなるんじゃないの?


prototype.jsからjQueryに移行するたったひとつの冴えたやりかた - 0xFF
書き換え、難しそう…

<script type="text/javascript">  jQuery.noConflict();  </script>
でイケた。
jQueryライブラリーを呼び出した直後
<script type="text/javascript">  
jQuery.noConflict();
</script>
$

jQuery
に全置換。

この方法は知っていたけど、今までうまくいった試しはないんだよね。
恐らくだけど、この方法は万能ではなくて、割と簡単なjQueryコードにしか通用しない気もする。
今回は、jQueryコードが短かったので(簡単なヤツだった)うまくいったのだと思われ。


何れにしろ。これで、大体の問題が片付いた。

15:00過ぎから初めて、今、20:52か。
途中、昼寝したりしたけど、思ったより全然時間がかかったよ。


<未解決>
▼サイトマップモジュールレイアウト
・「2.2×HTML5テーマ」崩れる
・「2.1×HTML5テーマ」崩れない
▼GNAVI 地図表示ページ
・「2.2×HTML5テーマ」スクリプトエラーになる
・「2.1×HTML5テーマ」問題ない
2.2のヤツは放置でいいかな。何か難しそうだし。
それか、一回、テーマ変えてどうなるか、確認してみようかな。

あー、あと、d3blogで、html5テーマにしてから、
区切り文字がおかしくなるサイトがあったわ。
アレもやらなきゃ。

スクリプトエラーの件、
テーマ変えてもダメだった。
Parse error: syntax error, unexpected ';' in /modules/gnavi/main/map.php on line 301

文法エラーだもんね、
2.2とか関係ないよね、全然。

しかし、なんでこんなエラーがあるんだ。
で、なんでオレは気が付かずに放置していたんだ、恐らくずっと…。

▼対象ファイル
xoops_trust_path\modules\gnavi\main/map.php

折角なので、diffってみる

見たけど、よく分かんない。違ってるのは分かるけど、なんで?
カスタマイズするときに間違ったのかしら?
メンドくさくなったので、動いているファイルで、上書き。

そしたら、エラーが消えたよ。
地図も表示されなくなったけど。

あれ?
さっきまで、詳細ページの地図は表示されてなかったっけ?

エラーが消えた変わりに、地図も表示されなくなったんだけど…。

どゆこと?

今、21:24
21:45までに解決しなかったら、
晩御飯にしよう。


21:36
直ったわ。
原因は、gnavi導入時のモジュール名の違い
・「2.2×HTML5テーマ」gnavi
・「2.1×HTML5テーマ」gnavi(但しこれは利用していない)、map(実際に利用しているのはこちら)
さらに、両者とも「mod_rewraite」でさらに別の名前へ変更しているので、頭が混乱しただけ。

要は、メディアクエリcssを切り替える
<{if $xoops_dirname == "gnavi" }>
この切り分け条件が違っていただけ。


よっしゃ、
時間かかってるけど、
難問クリアしてる。

この勢いで、残りの「d3blog区切り位置」も解決していこう。

区切り文字テスト | XOOPSStyle

終了。

21:52

時間かかったけど、
これで、
心置きなく、
食事が食べれるよ


22:16
残りの課題をメモしとく。
▼サイトマップモジュールレイアウト
・「2.2×HTML5テーマ」崩れる
・「2.1×HTML5テーマ」崩れない
いつやるかは、未定


22:22
サイトマップモジュールレイアウト
とりあえず、解決した。
原因は、かましているJSが何か悪さしているみたい。
このJSはもう使わない予定なので、
とりあえず、このモジュールでは表示させないようにすることで対応。

これで、ようやく目下の懸案事項が片付いたよ。

2.2とか書いてるけど、ほとんど2.2とか関係なかった。
書き方も内容も微妙なエントリーだけど、気持ち的には、結果としてうまくいったので、
いい感じだわ



1/22
高さ調節jsは、テーブルには効かない。
tdタグのid指定してもダメ。
そもそも、大枠をテーブルで組んでること自体があり得ない。
分かってたんだけど、面倒くさいから放置してた(サイトが幾つかある)


HTML5テーマ