コーディングを楽にするためのPHP関数と、Macか判別する関数

このブログをリニューアルするにあたって、コーディングを楽にするためにブラウザごとにCSSのclassを分けるPHP関数と、Macか判別する関数が必要になったので書きました。
よろしければご活用ください。

ブラウザごとにclassを分けるPHP関数

皆さん、特定のブラウザだけ微妙にズレが生じるときって、どうやって対応されてますか?
私はCSSのハックは使いたくないので、普段はIEの条件分岐コメントで対応していました。

先日、このブログをHTML5でリニューアルするときに HTML5ロゴのページ のソースを参考にしたのですが、DOCTYPE宣言の直下にこういうふうに書かれていました。

HTML

 
 
 
   

なるほど、IE6だと ie6 と ielt8 が、IE7だと ie7 と ielt8 が、IE8だと ie8 と ielt8 が追加されるので、例えばIE6だけwidthがおかしい場合は

CSS

/* 全てのブラウザ用 */
.hoge {
	width: 300px;
	height: 100px;
}
/* IE6用(おかしい箇所の差分だけ書けば良い) */
.ie6 .hoge {
	width: 280px;
}

って感じで書けば良いのですね。
IE6〜8に適用したい場合は

CSS

/* IE6〜8用(おかしい箇所の差分だけ書けば良い) */
.ielt8 .hoge {
	width: 280px;
}

ただ、これだとIEだけの為にHTMLソースがごちゃついてしまうのと、このブログをリニューアルしている時にFirefoxだけ2pxずれる箇所があった(ChromeやIE8ではずれない)のと、iPhoneやAndroidで多少ずれる箇所があったのでブラウザごとにclassを分けるPHP関数を書きました。

PHP


WordPressだったらこれをテーマの functions.php に書き、それ以外のサイトであればこの関数が書かれたPHPファイルを include して

PHP


としてあげればいいですね。
IE6〜8に適用するclassは .ielt8 ではちょっと長いので、単に .ie としました。
これさえあれば、IE6〜8の対応もだいぶ楽になりそうですね。
まあ、このブログはIE6・7には対応しませんが…

Macか判別する関数

あと、このブログでMacの場合だけ読み込ませたいJavaScriptがあったので、Macかどうかを判別する関数を作りました。
MacかWindowsかどうかでダウンロードファイルを分ける場合にも使えそうですね。

PHP


使用する際は

PHP


	

Macの場合

Mac以外(Windows・Linux・iPhone・Androidなど)の場合

という感じです。

If you like this article click the Facebook “Like” button to share it with your friends!