みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

docomoで.phpのファイルでcssを利用したい

web制作をしており、現在3キャリア共通で見られる携帯サイトを作成している最中なのですが、docomoでCSSが適応されずほとほと困り果てています。

内容としては3キャリア(docomo,au,softbank)対応の携帯サイトを作成し、PCでも確認が可能にしたいです。
実際のサイトはhttp://kk-***.com/index.phpで、docomo以外では問題なく見れる状態です。
3キャリア共通なので、http://dspt.blog59.fc2.com/blog-entry-57.htmlの絵文字変換スクリプトを利用しており、他のページにもphpが必要な部分もあり、全てのページを.phpで作成しています。

.phpでcssを利用する場合は.htaccessの利用ではなくページ内に
header('Content-type: application/xhtml+xml');
を直接記述する必要があると知り、足しましたがやはりdocomoではcssが適応されません。
実際のソースは以下になります。
■■■■■■■■■■■■■
<?php
if (strpos('DoCoMo', $_SERVER['HTTP_USER_AGENT']) !== FALSE) {
// docomo
header('Content-type: application/xhtml+xml');
} else {
// docomo以外(PCなどで確認をしたい為の振り分け)
header('Content-type: text/html');
}
?>
<?php
echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n";
?>
<?php
//共通ファイルの読み込み(絵文字変換スクリプト)
include_once './include/commons.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">

<head>
■■■■■■■■■■■■■
これ以降はmetaタグやbodyタグになっており、実際のページでソース表示でも確認できる内容です。

長文大変申し訳ありませんが、どなたか助けて頂けませんでしょうか。どうしても自分では解決策がみつかりません。
ちなみにi-modeシミュレーターではちゃんと表示されますが、実機で確認するとCSSが適応されていない状態です。

投稿日時 - 2009-11-14 09:52:37

QNo.5446553

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

使っているドコモの機種は何ですか?
機種によって機能に差があります。

たぶん、ドコモで使えない属性を使っているのが原因でしょう。
ドコモは制約が多いから、ドコモのサイトを見て直したほうがいいです。

投稿日時 - 2009-11-14 10:35:37

補足

すみません。自己解決しました。
やはりヘッダー関数が問題だったようで、
if (strpos('DoCoMo', $_SERVER['HTTP_USER_AGENT']) !== FALSE) {
// docomo
header('Content-type: application/xhtml+xml');
} else {
// docomo以外(PCなどで確認をしたい為の振り分け)
header('Content-type: text/html');
}
から
header('Content-type: application/xhtml+xml');
に変更したらなおりました。すみません。
ただこれだとPCの表示の際に開業や画像のサイズが一部違ったように表示されてしまう為、
docomoだけに適応させたかったんですが、、
記述に間違いがあるのかもしれません。再度検証してみます。

投稿日時 - 2009-11-15 10:59:14

お礼

さっそくのご回答ありがとうございます。
実際のサイトのリンクがなぜか文字化けをおこしていたので再度書きます。
サイトは
http://***.com/
になります。

使えない属性を使っているとのご指摘でしたので、
ぱっと見ヘッダー内の書き方は問題ないという事なのでしょうか。
例えば<body>内に使用できない属性等が一部ある事で、全てのCSSが適応されないという現象って起こりうるのでしょうか。
使用しているタグは
div,img,a,span,form,select,option,input,table,td,tr
ですので特にdocomoでも問題ないかと思われます。

ただ改めて確認した所cssにはbackgroundなど一部docomoで反映されないものもありそうです。
ただcssなどで対応できないものはその部分のみスタイルが反映されずに表示されると思うんです。

またphp部分の記述を全て削除し、.phpを.htmlに変更するとdocomoでも問題なくcssが反映された状態で表示されます。
ですので、やはり問題は拡張子が.phpである事によりMIMEタイプが反映されていないのが原因だと思うんです。
ただどのサイトにもheader関数で指定する事により解決できると書かれております。
if (strpos('DoCoMo', $_SERVER['HTTP_USER_AGENT']) !== FALSE) {
// docomo
header('Content-type: application/xhtml+xml');
}
の記述がおかしいのでしょうかね。。

なんにせよ返答ありがとうございました。もう一度試行錯誤してみます。

投稿日時 - 2009-11-15 05:21:06

あなたにオススメの質問