content"width=640,user-scalable=no" 然后再进行固定尺寸的px设计?
content"width=640,user-scalable=no" 然后再进行固定尺寸的px设计? 竟然也可以达到自适应的布局在手机上面
咱们不都是通常viewport content="width=device-width么 那么上面这种有没有什么坑呢 ,那么以后我是t content="width=device-width css3媒体查询 还是用content"width=640,user-scalable=no"这样的方法呢 我需要兼容手机浏览器和apk的webview
回复内容:
結論:content"width=640,user-scalable=no" 是一個很好的解決方案,荔枝FM,人人都是播客的移動站使用的就是此方案固定宽度,viewport 缩放(轉自MobileWeb 适配总结) 别的不多说了,强烈建议看看前几天刚写的一篇文章:使用Flexible实现手淘H5页面的终端适配 应该能让你找到需要的答案 你在用的可能是:视觉稿、页面宽度、viewport width 使用统一宽度,利用浏览器自身缩放完成适配。页面样式(包括图像元素)完全按照视觉稿的尺寸,使用定值单位 (px、em)即可完成。
优点:存在的问题:
- 开发简单 缩放交给浏览器,完全按视觉稿切图。
- 还原精准 绝对等比例缩放,可以精准还原视觉稿(不考虑清晰度的情况下)。
- 测试方便 在PC端即可完成大部分测试,手机端只需酌情调整一些细节(比如图标、字体混合排列时,因为字体不同造成的对齐问题)。
- 像素丢失 对于一些分辨率较低的手机,可能设备像素还未达到指定的 viewport 宽度,此时屏幕的渲染可能就不准确了。比较常见的是边框“消失”了,不过随着手机硬件的更新,这个问题会越来越少的。
- 缩放失效 某些安卓机不能正常的根据 meta 标签中 width 的值来缩放 viewport,需要配合initial-scale 。
- 文本折行 存在于缩放失效的机型中,某些手机为了便于文本的阅读,在文本到达 viewport 边缘(非元素容器的边缘)时即进行折行,而当 viewport 宽度被修正后,浏览器并没有正确的重绘,所以就发现文本没有占满整行。一些常用的段落性文本标签会存在该问题。
缩放失效问题需通过 js 动态设定 initial-scale。
利用 rem 布局依照某特定宽度设定 rem 值(即 html 的 font-size),页面任何需要弹性适配的元素,尺寸均换算为 rem 进行布局;当页面渲染时,根据页面有效宽度进行计算,调整 rem 的大小,动态缩放以达到适配的效果。利用该方案,还可以根据 devicePixelRatio 设定 initial-scale 来放大 viewport,使页面按照物理像素渲染,提升清晰度。
优点:缺点:
- 清晰度高,能达到物理像素的清晰度。
- 能解决 DPR 引起的“1像素”问题。
- 向后兼容较好,即便屏幕宽度增加、PPI 增加该方案依旧适用。
- 适配 js 需尽可能早进入,减少(避免)viewport 变化引起的重绘。
- 某些Android机会丢掉 rem 小数部分。
- 需要预编译库进行单位转换。
<span class="nt"><meta</span> <span class="na">name=</span><span class="s">"viewport"</span> <span class="na">content=</span><span class="s">"target-densitydpi=device-dpi,width=640,user-scalable=no"</span> <span class="nt">/></span>
<span class="c1">//首先检查浏览器类型</span> <span class="kd">var</span> <span class="nx">browser</span> <span class="o">=</span> <span class="nx">getBrowser</span><span class="p">();</span> <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">top</span> <span class="o">===</span> <span class="nb">window</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">s</span><span class="p">,</span> <span class="nx">t</span><span class="p">,</span> <span class="nx">sw</span><span class="p">;</span> <span class="k">if</span> <span class="p">(</span><span class="nx">browser</span> <span class="o">===</span> <span class="s1">'Gecko'</span><span class="p">)</span> <span class="p">{</span> <span class="nx">s</span> <span class="o">=</span> <span class="nx">calcRato</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">screen</span><span class="p">.</span><span class="nx">width</span><span class="p">,</span> <span class="nx">screen</span><span class="p">.</span><span class="nx">height</span><span class="p">));</span> <span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="s1">'<meta name="viewport" content="width='</span> <span class="o">+</span> <span class="mi">100</span> <span class="o">/</span> <span class="nx">s</span> <span class="o">+</span> <span class="s1">'%, user-scalable=no, initial-scale='</span> <span class="o">+</span> <span class="nx">s</span> <span class="o">+</span> <span class="s1">'"/>'</span><span class="p">);</span> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">browser</span> <span class="o">===</span> <span class="s1">'Trident'</span><span class="p">)</span> <span class="p">{</span> <span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="s1">'<meta name="viewport" content="width=device-width, user-scalable=no"/>'</span><span class="p">);</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">zoom</span> <span class="o">=</span> <span class="nx">calcRato</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">screen</span><span class="p">.</span><span class="nx">width</span><span class="p">,</span> <span class="nx">screen</span><span class="p">.</span><span class="nx">height</span><span class="p">));</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="nx">t</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'meta'</span><span class="p">);</span> <span class="nx">t</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="s1">'viewport'</span><span class="p">;</span> <span class="nx">t</span><span class="p">.</span><span class="nx">content</span> <span class="o">=</span> <span class="s1">'width=device-width, user-scalable=no, initial-scale=1'</span><span class="p">;</span> <span class="nb">document</span><span class="p">.</span><span class="nx">head</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">t</span><span class="p">);</span> <span class="nx">sw</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">screen</span><span class="p">.</span><span class="nx">width</span><span class="p">,</span> <span class="nx">screen</span><span class="p">.</span><span class="nx">height</span><span class="p">);</span> <span class="k">if</span> <span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">screen</span><span class="p">.</span><span class="nx">width</span> <span class="o">/</span> <span class="nb">window</span><span class="p">.</span><span class="nx">innerWidth</span><span class="p">,</span> <span class="nx">screen</span><span class="p">.</span><span class="nx">height</span> <span class="o">/</span> <span class="nb">window</span><span class="p">.</span><span class="nx">innerHeight</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">zoom</span> <span class="o">=</span> <span class="nx">calcRato</span><span class="p">(</span><span class="nx">sw</span> <span class="o">/</span> <span class="nx">devicePixelRatio</span><span class="p">);</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="nx">s</span> <span class="o">=</span> <span class="nx">calcRato</span><span class="p">(</span><span class="nx">sw</span><span class="p">);</span> <span class="nx">t</span><span class="p">.</span><span class="nx">content</span> <span class="o">=</span> <span class="s1">'width='</span> <span class="o">+</span> <span class="mi">100</span> <span class="o">/</span> <span class="nx">s</span> <span class="o">+</span> <span class="s1">'%, user-scalable=no, initial-scale='</span> <span class="o">+</span> <span class="nx">s</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">calcRato</span><span class="p">(</span><span class="nx">sw</span><span class="p">)</span> <span class="p">{</span> <span class="c1">//离散放大级别</span> <span class="kd">var</span> <span class="nx">step</span> <span class="o">=</span> <span class="mf">0.125</span><span class="p">;</span> <span class="c1">//基准宽度为320px</span> <span class="kd">var</span> <span class="nx">zoom</span> <span class="o">=</span> <span class="nx">sw</span> <span class="o">/</span> <span class="mi">320</span><span class="p">;</span> <span class="c1">//放大时不使用线性算法</span> <span class="k">if</span> <span class="p">(</span><span class="nx">zoom</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="nx">zoom</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">sqrt</span><span class="p">(</span><span class="nx">zoom</span><span class="p">)</span> <span class="o">/</span> <span class="nx">step</span><span class="p">)</span> <span class="o">*</span> <span class="nx">step</span><span class="p">;</span> <span class="p">}</span> <span class="k">return</span> <span class="nx">zoom</span><span class="p">;</span> <span class="p">}</span>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









HTML5 では、width は幅を意味します。width 属性は要素のコンテンツ領域の幅を定義します。コンテンツ領域の外側に内側のマージン、境界線、および外側のマージンを追加できます。「要素 {width: value}」を設定するだけで済みます。要素。

Linux でアンマウント デバイスを管理する場合、ファイル システムをアンマウントするときにこの状況が発生し、アンマウント対象のディレクトリにいない場合に、「deviceisbusy」が発生することがよくあります。その場合、そのディレクトリを使用しているユーザーまたはプロセスが存在する可能性があります。 #umount/mntumount:/mnt:deviceisbusyumount:/mnt:deviceisbusy 次に、fuser コマンドを使用して、プロセスのプロセス ID と所有者を表示する必要があります。例: #fuser-mu/mnt/mnt:25781c(root)#kill- 925781#umount/ mnt はこんな感じ

Docker では、マウント ディレクトリの権限の問題は通常、-v パラメータを使用してマウント ディレクトリを指定するときに権限関連のオプションを追加することで解決できます。マウントされたディレクトリのアクセス許可を指定するには、マウントされたディレクトリの後に ro または :rw を追加します。それぞれ、読み取り専用と読み取り/書き込みアクセス許可を示します。例: dockerrun-v/host/path:/container/path:roimage_name Dockerfile で USER ディレクティブを定義してコンテナ内で実行するユーザーを指定し、コンテナ内での操作が権限要件に準拠していることを確認します。例: FROMimage_name#CreateanewuserRUNuseradd-ms/bin/

Windows 10 オペレーティング システムは、間違いなく今日最も影響力のあるオペレーティング システムの 1 つであり、非常に強力なデバイス管理機能を備えています。この強力な機能には、デバイスの有効化と無効化が含まれます。 WIN10 Home Edition システムでデバイスを無効にする方法 方法 1: デバイス マネージャーでデバイスを無効にする 1. まず、デバイス マネージャーを開いてみましょう。方法は 3 つあります。 (1) キーボードの WIN+X キーを押して、[デバイス マネージャー] を選択します。 (2)スタートメニューに「デバイスマネージャー」と直接入力してクリック! (3) コントロール パネルでデバイス マネージャーを見つけて選択します。 2. 次に、デバイスリストで無効にするデバイスを見つけます。クリックして無効にします。 Ps: ここでは、システムに接続されているすべてのデバイスが表示されます

メソッドには、ピクセル値、パーセンテージ、em 単位、rem 単位、vw/vh 単位、auto、fit-content、min-content、max-content が含まれます。詳細な紹介: 1. ピクセル値 (px): ピクセル値は固定されており、画面解像度がどのように変化してもその幅は変わりません。例: width: 300px; 2. パーセント (%): 幅のパーセントは、親要素の幅を基準にしています。例: width: 50%; 3、em 単位など。

XilinxPCIEdemo を使用しているときに、xapp1022 が提供する Linux ドライバーをコンパイルしたところ、pci_find_device 関数が見つからないというエラー メッセージが表示されました。このドライバはfedora用と説明にあり、現在の環境はCentos7です。ドライバーで使用されているヘッダー ファイルは PCI に関連する linux/pci.h だけなので、調べてみたところ、存在しませんでした。ライブラリをインストールする必要があるのではないかと考えて検索したところ、pciutils を見つけました。インストール後、以下を再コンパイルしましたが、やはり失敗しました。ヘッダー ファイルをもう一度見ると、追加の pci フォルダーがあり、その中に pci.h が含まれています。この pci.h には多くの関数宣言がありますが、pci_find_devi はありません。

一部のユーザーは、Microsoft の 3 月の Win11 アップデート パッチ KB5035853 をインストールした後、ブルー スクリーン オブ デス エラーが発生し、システム ページに「ThreadStuckinDeviceDriver」が表示されたと報告しました。このエラーはハードウェアまたはドライバーの問題によって発生する可能性があることが理解されています。ここでは、コンピューターのブルー スクリーンの問題をすぐに解決できる 5 つの修正方法を紹介します。方法 1: システム ファイル チェックを実行する コマンド プロンプトで [sfc/scannow] コマンドを実行すると、システム ファイルの整合性の問題を検出して修復できます。このコマンドの目的は、欠落または破損したシステム ファイルをスキャンして修復し、システムの安定性と通常の動作を確保することです。方法 2: 1. 「ブルー スクリーン修復ツール」をダウンロードして開きます。

CSS コンテンツ属性の詳細な説明: content、counter、quotesCSS (カスケード スタイル シート) はフロントエンド開発に不可欠な部分であり、Web ページを美しくし、ユーザー エクスペリエンスを向上させるのに役立ちます。 CSS には、コンテンツ、カウンター、引用符などのテキスト コンテンツの表示を制御するために使用できる特別なプロパティがいくつかあります。この記事では、これらのプロパティについて詳しく説明し、具体的なコード例を示します。 1. content 属性content 属性
