Moral Hazard!!

ドラマーが音楽やホームページやガラクタを作るよ。

IE7以下で、背景が消える

No Comment html,css,php

cssでショートハンドを使って背景を指定した場合、背景が消えることがある。

その場合はリセット用CSSに{background: transparent;}が指定されてないか確認。

IE6ではこのリセットのあとにショートハンドで背景色を指定すると、反映されないバグがある。

対策・該当箇所をショートハンドで背景を指定しない。

hetemlの共有SSLにCakePHPをインストールする方法

No Comment html,css,php

レンタルサーバーhetemlで共有SSlを使うと、urlがhttps://ssl***.heteml.jp/ユーザーネーム/フォルダ/となり、cakephpをインストールてもcssやimgなどが表示されない。

この場合、app/webroot/index.phpを書き換えることで解決する。

てっく★ゆきろぐ Rev2様に解決法が書いてあるのだが、馬鹿(と書いてボクと読む)にも分かるようにしておく。
以下を61行目から最後までコピペ。(ver1.3.7)

	if (!defined('WEBROOT_DIR')) {
		define('WEBROOT_DIR', basename(dirname(__FILE__)));
	}
	if (!defined('WWW_ROOT')) {
		define('WWW_ROOT', dirname(__FILE__) . DS);
	}
	if (!defined('CORE_PATH')) {
		if (function_exists('ini_set') && ini_set('include_path', CAKE_CORE_INCLUDE_PATH . PATH_SEPARATOR . ROOT . DS . APP_DIR . DS . PATH_SEPARATOR . ini_get('include_path'))) {
			define('APP_PATH', null);
			define('CORE_PATH', null);
		} else {
			define('APP_PATH', ROOT . DS . APP_DIR . DS);
			define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
                }
        }
       // define img/css/js
       define ( "URLBASE" , "/../ユーザー名/フォルダ名/" ) ;
        define('IMAGES_URL', URLBASE . 'img/');
        define('CSS_URL', URLBASE . 'css/');
        define('JS_URL', URLBASE . 'js/');

        if (!include(CORE_PATH . 'cake' . DS . 'bootstrap.php')) {
                trigger_error("CakePHP core could not be found.  Check the value of CAKE_CORE_INCLUDE_PATH in APP/webroot/index.php.  It should point to the directory containing your " . DS . "cake core directory and your " . DS . "vendors root directory.", E_USER_ERROR);
        }

	if (isset($_GET['url']) && $_GET['url'] === 'favicon.ico') {
		return;
	} else {
		$Dispatcher = new Dispatcher();
		$Dispatcher->dispatch();
	}

これでユーザー名とフォルダ名を書き換えれば、共用SSLでもいける。

【php】user agentでiPhoneを判別する【javascript】

No Comment html,css,php

やりたいこと・・・タイトルまんま。Flashを使っているサイトの場合、iPhone用の表示も作らないと。

↓PHPの場合。

$ua = $_SERVER['HTTP_USER_AGENT'];
if((ereg("iPhone",$ua)) || (ereg("iPod",$ua))) {
//iPhone用の出力;
} else {
//その他用の出力;
}

↓javascriptの場合。

var agent = navigator.userAgent;
if( agent.search(/iPhone/) != -1 ){
document.write('iPhoneだった場合の出力');
}else{
document.write('iPhoneじゃ無い場合の出力');
}

Dreamweaverがクソ重い場合にチェックする項目

No Comment html,css,php

確認・・・Dreamweaver cs4以降

■Dreamweaverのプレビューがクソ重い。■

原因1・・・cssのid,class名に「-(ハイフン)」を使っている。

id,class名に記号の上では「マイナス」と同じハイフンを使うと、Dreamweaverがこれをマイナス要素かどうかいちいちチェックするので遅くなる。
(ソース)

対処法・・・id,class名にハイフンを使わない。
ソースには「ハイフン」を「_(アンダーバー)」に差し替えるなどの対処法が書いてあるが、かなり古いブラウザの場合はアンダースコアさえ認識しない場合があるので、一応心に留めておく。

ちなみに僕はセレクタ名が長くなる場合はキャメルケースで書いてます。
wrapperLeftContainer
みたいな。
ただcssではIE5以下は大文字を解さないので、同じクラスタ名で大文字小文字の使い分けはできない。

原因2・・・背景にpng画像を繰り返し使用

よくbody背景にpng画像を繰り返し使用するが、これが透過だったりする場合、クソ重くなる。

対処法・・・デザインタイムスタイルシートを使う。
Dreamweaverのデザインタイムスタイルシートでbody背景を表示させない。
もちろんプレビューで背景は表示されないけど。
ちなみにデザインタイムスタイルシートは基本的にこちらが設定したcssより先に読み込まれるので、
!importantを使って強制的にデザインタイムスタイルシートを優先させる。

リスト要素で隙間が出来る

No Comment html,css,php

liを使ってリストを作り、その中にリンクを貼ってdisplay:blockした場合、IE6ではバグで隙間が出来る。

これはmargin,paddingを指定しようが消えないので、

a要素にzoom: 1;を指定すると解決する。

あとSafariでは、リストのulタグにmargin,paddingを指定していなかった場合、たとえユニバーサルセレクタ(*を使ってcss全部に適用させるセレクタ)でmargin,paddingを0pxに指定してても変な隙間が出来る。

そのため、その都度ulにmargin,paddingを0で指定しておく。