1. ホーム
  2. google-chrome

[解決済み] WebKit から target-densitydpi のサポートが削除されました。

2022-02-18 19:01:12

質問

これによると https://bugs.webkit.org/show_bug.cgi?id=88047 WebKit はビューポートパラメータから target-densitydpi のサポートを削除しました。残念ながら、このバグの説明には、この変更の動機も回避策も書かれていません。

モバイル端末での拡大縮小を防ぎたい一部のWebページでは、以下のようなviewportの宣言がされていました。

<meta name="viewport" content="width=device-width, 
initial-scale=1.0, maximum-scale=1.0, 
user-scalable=no, target-densitydpi=device-dpi"/>

現在、このコードはChromeでエラーを出力します(21.0.1180.49 beta-mでテスト済み)。target-densitydpi=device-dpi"で、エラーメッセージを出さず、以前と同じ動作をするウェブページを作るには、どのような方法が考えられるか、アドバイスをお願いします。

解決方法を教えてください。

webkit-dev メーリングリストのスレッド http://lists.webkit.org/pipermail/webkit-dev/2012-May/020847.html には、この機能削除の議論(少なくともその背景)が含まれています。

要するに、WebKit にはデバイスでレンダリングするときにページを拡大縮小する手段がいくつかあり、これは非常に混乱するものでした(各プラットフォームが独自のアプローチに依存していたことを考えると、なおさらです)。

アップデイト :

当該スレッドのコメントで、当該パッチ作者であるAdam Barth氏の発言によると

<ブロッククオート

target-densitydpiが一部のアプリで使用されていることが懸念されています。 Androidにバンドルされているのですが、人々はその非推奨を望んでいるようです。 のような他のメカニズムを使用するようにアプリを移行させる。 レスポンシブ画像 CSSデバイスユニット .

このように、レスポンシブ画像とCSSデバイスユニットが target-densitydpi 属性が提供するものです。また、同じスレッドの別のコメントでは、この属性があっても、ウェブ開発者は、この属性をサポートしていないブラウザ環境のために、同じページを別の方法で再実装しなければならないという事実が述べられています。

私は、最近導入された サブピクセルレイアウト は、属性削除の問題を緩和するもう一つの手段になると思います。

アップデイト2

このブログの記事 は、Android Chrome用にページをレイアウトする別の方法を提案しています。自動で同じ動作をさせるような回避策はありません。ただ、少し再構築する必要があります。