コーディングを楽にするための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など)の場合

という感じです。

最近の記事

Web制作関連動画

メルマガ会員向けの「コーダーにも役立つ補完AI『Codeium』の使い方」の動画を期間限定で公開しています。
CodeiumはGitHub Copilotと似ていますが、CSSなども補完できて、今登録すれば無料で使えます。

メルマガでは、Web制作者のためのAI活用やWordPress関連の動画など、さまざまな特典があります。ご興味ある方は、ぜひメルマガにご登録ください。