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

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

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

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をインストールするための実装手順

推薦する

カルーセル効果を実現するための純粋なjs

この記事では、カルーセルマップの効果を実現するためのjsの具体的なコードを参考までに共有します。具体...

小さなプログラムが天井に張り付いてしまう問題を完璧に解決するためにposition:stickyを使用する方法

最近、あるプロジェクトのクライアントが、上部に 2 つのタブ メニューを配置することを要求しました。...

我々は自らの力でIE6を絶滅に追い込んでいる

実際、IE6 が本当にいつ消滅するのか私たちは毎日疑問に思っていますが、2001 年のリリース以来、...

Linuxカーネルで中国語の文字を出力する方法

次のように、Windows/MacOS からログインした Linux の SSH ターミナルで簡単に...

重要なmysqlログファイルの概要

著者: 丁易出典: https://chengxuzhixin.com/blog/post/mysq...

CSS スタイルで一般的なグラフィック効果を示すサンプルコード

一般的な基本グラフィックと私が遭遇するいくつかの小さなアイコンについて簡単に説明します。以下は CS...

Element-UI の Select と Cascader にポップアップ下部アクション ボタンを追加する方法

下図のように、 selectポップアップレイヤーの下部に操作ボタンを配置するのが一般的な設計方法です...

MySQLの指定されたテーブルからデータをエクスポートする例の詳細な説明

指定されたテーブルからデータをエクスポートするMySQLの詳細な説明必要とする: 1. テーブルはす...

Centos7環境でYUMを構築する方法

1. yumソースの設定ファイルを入力します 2.lsで設定ファイルを表示する 3. ディレクトリを...

Vue の一般的な問題と解決策の概要 (推奨)

Vue に限定されず、他の種類の SPA プロジェクトにも当てはまる問題がいくつかあります。 1....

MySQLデータベースでの値の追加、変更、削除、クリアの例

3. MySQLデータ管理最初の方法:お勧めできません。複雑そうです -- 学生テーブルの grad...

MySQL 8.0.20 圧縮版のインストールチュートリアル(画像とテキスト付き)

1. MySQL ダウンロード アドレス。 http://ftp.ntu.edu.tw/MySQL...

IP アドレス経由で MySql にアクセスする方法

1. mysqlにログインします。 mysql -u ルート -h 127.0.0.1 -p 2. ...

Docker に MySQL と Redis をインストールする方法

この記事はCentOS 7.3システム環境をベースに、MySQLとRedisのインストールと使用につ...

計算プロパティとリスナーの詳細

目次1. 計算されたプロパティ1.1 基本的な例1.2 計算プロパティキャッシュとメソッド1.3 計...