HTML5の再適応スキームとビューポート適応の問題点を解説
2022-01-21 12:52:42
H5 remの適応スキームとビューポート適応
レム
remはCSS3で新たに追加された相対単位(ルートem、ルートem)
現在のページのHTMLページのフォントサイズに応じてのみ設定、ルートのフォントサイズが18pxの場合、1rem=18pxとなる
メディアクエリの設定
@media screen and (min-width: 320px) {
html {
font-size: 32px;
}
}
@media screen and (min-width: 375px) {
html {
font-size: 37.5px;
}
}
@media screen and (min-width: 414px) {
html {
font-size: 41.4px;
}
}
@media screen and (min-width: 750px) {
html {
font-size: 75px;
}
}
JSを使って動的に変更する
<script>
// Adjust the fontsize of the html according to the screen size
function setHtmlFontSize() {
const width = document.documentElement.clientWidth;
document.documentElement.style.fontSize = width / 10 + "px";
}
// Initialize
setHtmlFontSize();
// Listen for screen size change events
window.addEventListener("resize", setHtmlFontSize);
// listen to the screen flip event
window.addEventListener("orientationchange", setHtmlFontSize);
</script>
ビューポート
スケーリングによるモバイルでの各サイズへの適応
適応スキーム 現在の画面サイズに基づいてスケーリング値を動的に設定するために、mate viewportプロパティを作成します。
ビューポート属性
<テーブル 属性 説明 備考 幅 ビューポートの幅をpxで定義します。 正の整数または文字列 device-width 高さ ビューポートの高さをpx単位で定義します。 正の整数または文字列 device-height イニシャルスケール デバイスのディップ幅とビューポートのサイズとの比率を定義する 0.0 から 10.0 までの正の数 最大スケール 最大スケール値を定義する。この値は minimum-scale の値以上でなければならない。 0.0 から 10.0 までの正の数 最小スケール スケールの最小値を定義する。この値は,max-scaleの値以下でなければならない。 0.0 から 10.0 までの正の数 ユーザースケーラブル ユーザーがページを拡大縮小できるかどうかを示すブーリアン値 はいまたはいいえ
jsを使用してviewportプロパティを動的に設定します。
原理 ビューポートのinitial-scale関連プロパティを設定することで、すべてのデバイスレイアウトビューポートの幅をデザインの幅に調整します。
// Define the width of the design to be 375
const DESIGN_WIDTH = 375;
//meets mobile adaptation by setting the initial-scale value of the content in the meta element
const setViewport = function () {
// calculate the width of the current screen and the design scale
let scale = window.screen.width / DESIGN_WIDTH;
// Get the element
let meta = document.querySelector("meta[name=viewport]");
let content = `width=${DESIGN_WIDTH}, initial-scale=${scale}, maximum-scale=${scale}, minimum-scale=${scale}`;
// determine if it already exists
if (!meta) {
meta = document.createElement("meta");
meta.setAttribute("name", "viewport");
document.head.appendChild(meta);
}
meta.setAttribute("content", content);
};
setViewport();
// Listen for screen change events
window.addEventListener("resize", setViewport);
// listen to the screen flip event
window.addEventListener("orientationchange", setViewport);
HTML5におけるrem適応、HTML5におけるviewport適応については、この記事でまとめています。HTML5におけるrem適応については、Script Houseの過去記事を検索するか、以下の記事を引き続き閲覧してください。
関連
-
サンプルレートとビットレートを設定してmp3オーディオを録音するhtml5
-
キャンバスは、マウスがまぶしい小さなボールの実装に従ってください。
-
Canvasでイベントを追加する方法を説明する
-
ラチェット式モーダルボックスの実装
-
HTML5+CSSでfloatを設定しても、真ん中や間違った行の代わりに移動しない問題
-
携帯電話のHtml5を達成するためにカメラのメソッドを呼び出すには
-
html5 自動再生 mov形式動画サンプルコード
-
html5 色彩公差キーイング with canvas
-
textareaで改行や空白を処理する
-
iframe+postMessageを使ったクロスドメインコミュニケーションのサンプルコード
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン