モバイルウェブサイトの開発に関するいくつかの結論

モバイルウェブサイトの開発に関するいくつかの結論

ウェブサイトのモバイル版には、少なくともいくつかの基本機能が必要です。

1. ページの適用性の問題:

モバイル端末は解像度や画面サイズが異なります。Webページの幅をコンピュータのデザインのように1003pxなどのピクセル値に制限し、フォントサイズに12pxまたは14pxを使用すると、異なる端末の効果は大きく異なります。そこで、ウェブページの幅を画面に合わせて調整するのが最善です。幸いなことに、W3CはHTMLを設計する際にこれを考慮してくれました。これはたった1つの文で実現できます。つまり、


コードをコピー
コードは次のとおりです。

<meta name="ビューポート" content="width=デバイス幅"/>

フォントの場合、単位として em または ex を使用できます。

2. バージョン生成の問題:

モバイル ページには、携帯電話ごとに異なるバージョンが用意されていることが多く、一般的には簡易版、標準版、3G 版、タッチ スクリーン版、スマートフォン版などがあります。ページ デザインの違いに加えて、ページ言語も異なります。簡易版は wap 1.0 wml スクリプトで記述されており、非常に汎用性が高く、多くの国内携帯電話がこの言語をサポートしていますが、この言語は非常に簡略化されています。標準バージョンでは、一般的にWAP 2.0テクノロジが使用され、対応するスクリプト言語はXHTML MP(XHTML Mobile Profile)です。この言語はXHTMLのサブセットであり、ほとんどのCSSをサポートしています。基本的にはコンピューターバージョンと同じですが、JSは一般的に使用できません。これは、これらの携帯電話がJSをサポートしていないためです。スマートフォン版については、現在のスマートフォンはすべてjsに対応しているため、このバージョンの制作ははるかに簡単です。ただし、ほとんどのスマートフォン(基本的にSymbianフォンを除く、Android、ios、wp7など)はHtml5に対応しているため、スマートフォン版はhtml5を使用して制作できます。

3. バージョン管理の問題:

この部分は解決が難しいかもしれません。携帯電話の最適なバージョンを賢く判断して、それにジャンプする方法は、次の側面から考えることができます。一方では、携帯電話のオペレーティングシステムを取得する方法があります。たとえば、AndroidまたはiOSの場合は、HTML5バージョンにジャンプできます。Windowsシステムの場合、コンピューターバージョンで電話モデルを取得することで、携帯電話のシステムを取得できることは間違いありません。現在の方法は、ブラウザのUA(ユーザーエージェント)を介して電話に関する情報を取得することです。より簡単な方法は、UAを介して電話のメーカーを直接判断することです。より多くの情報を取得するには、データベースが必要です。携帯電話のモデルによって UA 情報が異なるためです。世界には多くの携帯電話があり、そのようなデータベースを自分で作成するのは依然として困難です。ただし、誰かがすでにそのようなデータベースを作成しています。または、より便利な方法として、携帯電話に最適なバージョンを識別する関数ライブラリを作成しています。ここでは、Wurfl を使用することをお勧めします。一方、ページ上のスクリプトを使用して、ブラウザがjsとhtml5をサポートしているかどうかを判断できます。コードは次のとおりです。


コードをコピー
コードは次のとおりです。

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<ヘッド>
<meta http-equiv="コンテンツタイプ" コンテンツ="text/html; charset=utf-8" />
<meta name="ビューポート" content="width=デバイス幅"/>
<title>バージョン管理</title>
<script type="text/javascript">
window.onload = 関数(){
// jsがサポートされているかどうか確認する
try{//HTML5がサポートされているかどうかを確認する
ドキュメント。getElementById("c").getContext("2d");
document.location = 'HTML5をサポートするリンク';
}catch(e){//それ以外の場合はjsバージョンにジャンプします
document.location = 'サポート js バージョン';
}
};
</スクリプト>
</head>
<本文>
<キャンバスid='c'></キャンバス>
通常版
</本文>
</html>

モバイルクライアントかどうかを判断するためだけにバージョンを開発したい場合は、discuz からのコード引用があります。x2


コードをコピー
コードは次のとおりです。

<?php
関数 checkmobile() {
グローバル $_G;
$モバイル = 配列();
静的 $mobilebrowser_list = array('iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini',
「ucweb」、「windows ce」、「symbian」、「series」、「webos」、「sony」、「blackberry」、「dopod」、「nokia」、「samsung」、
「palmsource」、「xda」、「pieplus」、「meizu」、「midp」、「cldc」、「motorola」、「foma」、「docomo」、「up.browser」、
「up.link」、「blazer」、「helio」、「hosin」、「huawei」、「novarra」、「coolpad」、「webos」、「techfaith」、「palmsource」、
「アルカテル」、「アモイ」、「Kタッチ」、「ネクシアン」、「エリクソン」、「フィリップス」、「サジェム」、「ウェルコム」、「ブンジャルー」、「マウイ」、「スマートフォン」、
「iemobile」、「spice」、「bird」、「zte-」、「longcos」、「pantech」、「gionee」、「portalmmm」、「jig browser」、「hiptop」、
'benq'、'haier'、'^lct'、'320x320'、'240x320'、'176x220');
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
if(($v = dstrpos($useragent, $mobilebrowser_list, true))) {
$_G['モバイル'] = $v;
true を返します。
}
$brower = 配列('mozilla'、'chrome'、'safari'、'opera'、'm3gate'、'winwap'、'openwave'、'myop');
if(dstrpos($useragent, $brower)) は false を返します。
$_G['モバイル'] = '不明';
if($_GET['mobile'] === 'yes') {
true を返します。
} それ以外 {
false を返します。
}
}
関数 dstrpos($string, &$arr, $returnvalue = false) {
if(emptyempty($string)) は false を返します。
foreach((配列)$arrを$vとして) {
if(strpos($string, $v) !== false) {
$return = $returnvalue ? $v : true;
戻り値 $return;
}
}
false を返します。
}
var_dump(checkmobile()); //モバイル端末の場合はtrueを返し、そうでない場合はfalseを返す
?>

4. モバイル版のサイズの問題:

一般的に言えば、モバイル Web ページの簡易版と通常版については、できるだけ簡潔にし、できるだけ多くのコードを節約するように努めます。結局のところ、モバイル データ トラフィックは依然としてユーザーにとって非常に貴重です。例えば、要素に名前を付ける場合、ページ数が少ない場合は名前が短いほどよく、CSS は 1 行で記述するのが最適です。 CSS では、一部の要素は親クラスのスタイルを継承します。繰り返し定義する必要はなく、デフォルト値を有効活用してください。

5. ブラウザキャッシュ:

更新が速くない場合は、ブラウザのキャッシュを有効にするのが最適です。

<<:  MySQL ツリー構造テーブルの設計と最適化に関する簡単な説明

>>:  DockerにRocketMQをインストールするための実装手順

推薦する

Vue でユーザー権限に基づいてルートを動的に追加する方法

ユーザーの権限に応じて異なるメニュー ページを表示します。知識ポイントルートガード(事前ガードを使用...

JavaScriptのモジュール性を理解する方法

目次1. ブラウザのサポート2.エクスポートモジュールのエクスポート3. モジュールをインポートする...

JavaScript はモーダルボックスのドラッグ効果を実現します

これはモーダル ボックスのドラッグのケースです。ここで実装する関数は次のとおりです。 1. ポップア...

CSS ピクセルとさまざまなモバイル画面適応の問題に対する解決策

ピクセル解決通常、モニター解像度と呼ばれるものは、実際にはモニターの物理的な解像度ではなく、デスクト...

K8Sの5つのコントローラーの紹介と使用

目次k8sのコントローラータイプポッドとコントローラの関係デプロイメント(ステートレスアプリケーショ...

Vue + 要素を使用して背景データをオプションに動的に表示する

必要:ハードコードされたデータの代わりに、セレクター内のオプション値の動的な表示を実装します。私のロ...

jsはクリックしてカードを切り替える機能を実現します

この記事の例では、クリックしてカードを切り替える機能を実現するためのjsの具体的なコードを共有してい...

MySQL/MariaDB で完全な Unicode をサポートする方法

目次utf8mb4 の紹介UTF8 バイト数超過エラーutf8mb4 サポートデフォルトの文字エンコ...

HTML 背景画像と背景色_PowerNode Java アカデミー

1. HTML 画像 <img> 1. <img> タグとその src 属性...

DQL コマンドを使用して MySQL でデータをクエリする方法

この記事では、MySQL でよく使用されるデータ クエリ言語について説明します。 DQL (データク...

HTMLタグと基本要素の学習のまとめ

1. HTML の要素とタグ<br />要素は、1 つのタグまたは 1 組のタグによって...

Centos7.2 で mysql5.7 データベースをインストールするための詳細な手順

サーバー上の mysql はバージョン 8.0.12 でインストールされており、ローカルのものはバー...

HTML コメント HTML 内のテキストコメントをマークするための記号

HTML コメント。コードの横に HTML コメントを付ける必要があることがよくあります。そうするこ...

Vueコンポーネント登録方法の解釈

目次概要1. グローバル登録2. 現地登録3. モジュールシステムへのローカル登録概要コンポーネント...

Nginx の http リソース リクエスト制限の詳細な説明 (3 つの方法)

前提条件: nginx には、ngx_http_limit_conn_module モジュールと n...