\n 1<\/span>\n 2<\/span>\n 3<\/span>\n 4<\/span>\n 5<\/span>\n 6<\/span>\n 7<\/span>\n 8<\/span>\n\n
也不會(huì)影響 viewport 的實(shí)際值, 也就是說(shuō), 對(duì)於一般電腦上的瀏覽器來(lái)說(shuō), 設(shè)不設(shè)定 viewport 並沒(méi)有差別。 <\/p>\n\n
如果沒(méi)有設(shè)定 viewport, 把剛剛 HTML 內(nèi)容的 viewport 設(shè)定變成註解:
\n<\/p>\n\n
\n<\/pre>\n\n\n\n在手機(jī)上的 Firefox 顯示如下:<\/p>\n\n
<\/p>\n\n
把縮小顯示的部分放大, 會(huì)看到:<\/p>\n\n
<\/p>\n\n
由於預(yù)設(shè)的 viewport 寬度是 980, 為了能夠完整顯示網(wǎng)頁(yè)橫向內(nèi)容, 所以自動(dòng)縮小到 0.4224 倍, 以便顯示網(wǎng)頁(yè)的橫向內(nèi)容。此倍數(shù)比 minimum-scale 的預(yù)設(shè)值 0.1 大, 會(huì)取代 minimum-scale 的設(shè)定, 用戶即使自行縮小顯示最多也就只能縮小到 0.4224 倍。 <\/p>\n\n
\n \n \n 設(shè)定 viewport 與螢?zāi)坏葘抃n<\/h4>\n\n
如果把 viewport 的設(shè)定加回去:
\n<\/p>\n\n\n<\/pre>\n\n\n\n看到的畫面就會(huì)是這樣:<\/p>\n\n
<\/p>\n\n
你可以看到現(xiàn)在viewport 的寬度(window.innerWidth) 和裝置螢?zāi)坏膶挾?window.screen.width) 是一樣的, 都是414px, 會(huì)以此寬度顯示網(wǎng)頁(yè), 並且縮放倍數(shù)是1, 可以清楚閱讀顯示的網(wǎng)頁(yè)內(nèi)容。由於這是可以顯示網(wǎng)頁(yè)橫向內(nèi)容的最大縮放倍數(shù), 也會(huì)取代 minimum-scale 預(yù)設(shè)的 0.1, 用戶自行縮放頁(yè)面最小只能縮到 1 倍。 <\/p>\n\n
如果保留預(yù)設(shè)縮放倍數(shù)為 1, 但是不設(shè)定 viewport 寬度, 像這樣:
\n<\/p>\n\n\n<\/pre>\n\n\n\n實(shí)際結(jié)果就跟設(shè)定寬度為 device-width 一樣。 <\/p>\n\n
\n \n \n 刻意設(shè)定 viewport 寬度\n<\/h4>\n\n
如果刻意設(shè)定 viewport 寬度為 980:
\n<\/p>\n\n\n<\/pre>\n\n\n\n就會(huì)如下顯示:<\/p>\n\n
<\/p>\n\n
由於現(xiàn)在 viewport 的寬度比螢?zāi)粚? 所以在排列時(shí)就會(huì)延伸到螢?zāi)煌獾墓?fàn)圍, 你也可以從實(shí)際顯示的結(jié)果看到螢?zāi)粚挾鹊拇_是 980。 <\/p>\n\n
如果刻意將 viewport 寬度設(shè)成比螢?zāi)徽? 像是:
\n<\/p>\n\n<\/pre>\n\n\n\n瀏覽器會(huì)以螢?zāi)粚挾葹樽畹偷?viewport 寬度, 所以顯示結(jié)果會(huì)和設(shè)定寬度為 device-width 一樣:<\/p>\n\n
<\/p>\n\n
如果只有設(shè)定 viewport 寬度, 沒(méi)有設(shè)定 initial-scale, 像是這樣:
\n<\/p>\n\n\n\n \n \n <script> window.addEventListener('load', function() { document.getElementById('devicePixelRatio').textContent = window.devicePixelRatio; document.getElementById('screenWidth').textContent = window.screen.width; document.getElementById('innerWidth').textContent = window.innerWidth; // 取得並顯示目前的縮放倍數(shù) function updateScale() { const currentScale = window.visualViewport ? window.visualViewport.scale : '不支援'; document.getElementById('currentScale').textContent = currentScale; } // 初始化顯示 updateScale(); // 監(jiān)聽(tīng)縮放變化 if (window.visualViewport) { window.visualViewport.addEventListener('resize', updateScale); } }); </script> 1 2 3 4 5 6 7 8window.devicePixelRatio =window.screen.width =window.innerWidth =目前縮放倍數(shù) =也不會(huì)影響 viewport 的實(shí)際值, 也就是說(shuō), 對(duì)於一般電腦上的瀏覽器來(lái)說(shuō), 設(shè)不設(shè)定 viewport 並沒(méi)有差別。
手機(jī)上的 Firefox
如果沒(méi)有設(shè)定 viewport, 把剛剛 HTML 內(nèi)容的 viewport 設(shè)定變成註解:
<meta name="viewport" content="width=1200, initial-scale="1.0">在手機(jī)上的 Firefox 顯示如下:
把縮小顯示的部分放大, 會(huì)看到:
由於預(yù)設(shè)的 viewport 寬度是 980, 為了能夠完整顯示網(wǎng)頁(yè)橫向內(nèi)容, 所以自動(dòng)縮小到 0.4224 倍, 以便顯示網(wǎng)頁(yè)的橫向內(nèi)容。此倍數(shù)比 minimum-scale 的預(yù)設(shè)值 0.1 大, 會(huì)取代 minimum-scale 的設(shè)定, 用戶即使自行縮小顯示最多也就只能縮小到 0.4224 倍。
設(shè)定 viewport 與螢?zāi)坏葘?
如果把 viewport 的設(shè)定加回去:
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->看到的畫面就會(huì)是這樣:
你可以看到現(xiàn)在viewport 的寬度(window.innerWidth) 和裝置螢?zāi)坏膶挾?window.screen.width) 是一樣的, 都是414px, 會(huì)以此寬度顯示網(wǎng)頁(yè), 並且縮放倍數(shù)是1, 可以清楚閱讀顯示的網(wǎng)頁(yè)內(nèi)容。由於這是可以顯示網(wǎng)頁(yè)橫向內(nèi)容的最大縮放倍數(shù), 也會(huì)取代 minimum-scale 預(yù)設(shè)的 0.1, 用戶自行縮放頁(yè)面最小只能縮到 1 倍。
如果保留預(yù)設(shè)縮放倍數(shù)為 1, 但是不設(shè)定 viewport 寬度, 像這樣:
<meta name="viewport" content="width=device-width, initial-scale=1.0">實(shí)際結(jié)果就跟設(shè)定寬度為 device-width 一樣。
刻意設(shè)定 viewport 寬度
如果刻意設(shè)定 viewport 寬度為 980:
<meta name="viewport" content="initial-scale=1.0">就會(huì)如下顯示:
由於現(xiàn)在 viewport 的寬度比螢?zāi)粚? 所以在排列時(shí)就會(huì)延伸到螢?zāi)煌獾墓?fàn)圍, 你也可以從實(shí)際顯示的結(jié)果看到螢?zāi)粚挾鹊拇_是 980。
如果刻意將 viewport 寬度設(shè)成比螢?zāi)徽? 像是:
<meta name="viewport" content="width=device-width, initial-scale=1.0">瀏覽器會(huì)以螢?zāi)粚挾葹樽畹偷?viewport 寬度, 所以顯示結(jié)果會(huì)和設(shè)定寬度為 device-width 一樣:
如果只有設(shè)定 viewport 寬度, 沒(méi)有設(shè)定 initial-scale, 像是這樣:
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <script> window.addEventListener('load', function() { document.getElementById('devicePixelRatio').textContent = window.devicePixelRatio; document.getElementById('screenWidth').textContent = window.screen.width; document.getElementById('innerWidth').textContent = window.innerWidth; // 取得並顯示目前的縮放倍數(shù) function updateScale() { const currentScale = window.visualViewport ? window.visualViewport.scale : '不支援'; document.getElementById('currentScale').textContent = currentScale; } // 初始化顯示 updateScale(); // 監(jiān)聽(tīng)縮放變化 if (window.visualViewport) { window.visualViewport.addEventListener('resize', updateScale); } }); </script> 1 2 3 4 5 6 7 8window.devicePixelRatio =window.screen.width =window.innerWidth =目前縮放倍數(shù) =仍會(huì)採(cǎi)用 1.0 為啟始的縮放倍數(shù)。
設(shè)定大於 1 的啟始倍數(shù)
如果更改縮放倍數(shù), 就可以在網(wǎng)頁(yè)首次載入後就採(cǎi)用指定的縮放倍數(shù), 例如:
<meta name="viewport" content="width=1200, initial-scale="1.0">就會(huì)看到放大 3 倍的結(jié)果:
請(qǐng)注意 initial-scale 只對(duì)首次載入網(wǎng)頁(yè)有效, 即使你修改設(shè)定重新載入網(wǎng)頁(yè), 如果原本該網(wǎng)頁(yè)的縮放倍數(shù)合乎新設(shè)定的縮放範(fàn)圍內(nèi), 就會(huì)維持原本的縮放倍數(shù)。因此建議開(kāi)啟新的隱私權(quán)頁(yè)面測(cè)試會(huì)比較準(zhǔn), 否則可能會(huì)發(fā)生修改 initial-scale 卻不會(huì)改變顯示比例的狀況。
如果你就是要強(qiáng)制使用者以放大倍率觀看網(wǎng)頁(yè), 可以設(shè)定 minimum-scale, 不過(guò)這應(yīng)該是從一開(kāi)始設(shè)計(jì)時(shí)就把網(wǎng)頁(yè)內(nèi)容放大才比較正確。
設(shè)定小於 1 的啟始倍數(shù)
initial-scale 也可以設(shè)為小於1, 也就是縮小顯示, 但若是viewport 寬度照比例縮小會(huì)比螢?zāi)粚挾刃? 就會(huì)違反最小只能縮小到可以顯示網(wǎng)頁(yè)完整橫向內(nèi)容的規(guī)則, 瀏覽器就會(huì)自動(dòng)將目前設(shè)定的viewport 寬度除以縮小倍數(shù), 讓網(wǎng)頁(yè)可以保持縮到最小倍數(shù)時(shí)可以呈現(xiàn)完整橫向的內(nèi)容。例如, 若設(shè)定為 0.5:
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->就會(huì)把 viewport 的寬度變成 414/0.5=828px:
放大看詳細(xì)的數(shù)據(jù):
如果一開(kāi)始把 viewport 寬度設(shè)得夠?qū)? 就會(huì)保持 meta 標(biāo)籤中的設(shè)定, 例如:
<meta name="viewport" content="width=device-width, initial-scale=1.0">結(jié)果如下:
你可以看到寬度不變:
圖片的顯示
如果你在網(wǎng)頁(yè)中放入圖片, 這時(shí)候圖片的解析度會(huì)以px 為單位解譯, 所以一張200×200 的圖片, 在devicePixelRatio 為2 的裝置上, 就會(huì)以400×400 個(gè)實(shí)體像素來(lái)顯示。例如在剛剛的網(wǎng)頁(yè)最後面我們加上了一張圖片:
<meta name="viewport" content="width=device-width, initial-scale=1.0">這是一張 584×604 大小的圖片:
網(wǎng)頁(yè)顯示結(jié)果如下:
你會(huì)看到由於圖片比較寬, 所以超過(guò)了螢?zāi)贿吔? 但是整體的頁(yè)面仍然是以 viewport 設(shè)定的寬度來(lái)編排, 因此 4 號(hào)方塊被擠到第二列。這種情況下, 使用者可以縮小的倍數(shù)可以比 initial-scale 設(shè)定的 1.0 小, 最小可到能夠完整顯示圖片的寬度為止, 像是這樣:
上圖就縮小到了 0.749 倍。
如果刻意把 viewport 寬度設(shè)成與圖片同寬:
你可以看到跟剛剛的結(jié)果不同, 現(xiàn)在上方的 4,5 兩個(gè)方塊都排到第一列了, 這是因?yàn)?viewport 的設(shè)定變寬了。
以上是HTML meta 標(biāo)籤中 viewport 的設(shè)定的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!
免費(fèi)脫衣圖片
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片
用於從照片中去除衣服的線上人工智慧工具。
AI脫衣器
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!
好用且免費(fèi)的程式碼編輯器
中文版,非常好用
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具
神級(jí)程式碼編輯軟體(SublimeText3)
創(chuàng)建CSS加載旋轉(zhuǎn)器的方法有三種:1.使用邊框的基本旋轉(zhuǎn)器,通過(guò)HTML和CSS實(shí)現(xiàn)簡(jiǎn)單動(dòng)畫;2.使用多個(gè)點(diǎn)的自定義旋轉(zhuǎn)器,通過(guò)不同延遲時(shí)間實(shí)現(xiàn)跳動(dòng)效果;3.在按鈕中添加旋轉(zhuǎn)器,通過(guò)JavaScript切換類來(lái)顯示加載狀態(tài)。每種方法都強(qiáng)調(diào)了設(shè)計(jì)細(xì)節(jié)如顏色、大小、可訪問(wèn)性和性能優(yōu)化的重要性,以提升用戶體驗(yàn)。
處理CSS瀏覽器兼容性和前綴問(wèn)題需理解瀏覽器支持差異並合理使用廠商前綴。 1.了解常見(jiàn)問(wèn)題如Flexbox、Grid支持不一,position:sticky失效,動(dòng)畫表現(xiàn)不同;2.查閱CanIuse確認(rèn)特性支持情況;3.正確使用-webkit-、-moz-、-ms-、-o-等廠商前綴;4.推薦使用Autoprefixer自動(dòng)添加前綴;5.安裝PostCSS並配置browserslist指定目標(biāo)瀏覽器;6.構(gòu)建時(shí)自動(dòng)處理兼容性;7.老項(xiàng)目可用Modernizr檢測(cè)特性;8.不必追求所有瀏覽器一致,確
Themaindifferencesbetweendisplay:inline,block,andinline-blockinHTML/CSSarelayoutbehavior,spaceusage,andstylingcontrol.1.Inlineelementsflowwithtext,don’tstartonnewlines,ignorewidth/height,andonlyapplyhorizo????ntalpadding/margins—idealforinlinetextstyling
設(shè)置訪問(wèn)過(guò)鏈接的樣式能提升用戶體驗(yàn),尤其在內(nèi)容密集型網(wǎng)站中幫助用戶更好導(dǎo)航。 1.使用CSS的:visited偽類可定義已訪問(wèn)鏈接樣式,如顏色變化;2.注意瀏覽器出於隱私限制僅允許修改部分屬性;3.顏色選擇應(yīng)與整體風(fēng)格協(xié)調(diào),避免突兀;4.移動(dòng)端可能不顯示該效果,建議結(jié)合其他視覺(jué)提示如icon輔助標(biāo)識(shí)。
使用CSS的clip-path屬性可以裁剪元素為自定義形狀,如三角形、圓形缺口、多邊形等,無(wú)需依賴圖片或SVG。其優(yōu)勢(shì)包括:1.支持circle、ellipse、polygon等多種基本形狀;2.可響應(yīng)式調(diào)整,適配移動(dòng)端;3.易於動(dòng)畫化,可結(jié)合hover或JavaScript實(shí)現(xiàn)動(dòng)態(tài)效果;4.不影響佈局流,僅裁剪顯示區(qū)域。常見(jiàn)用法如圓形裁剪clip-path:circle(50pxatcenter)和三角形裁剪clip-path:polygon(50%0%,1000%,00%)。注意
thecsspaintingapienablesdemimageGenerationinCsssingJavascript.1.developersCreateApaintWorkletClassWithaPaint()method.2.theyregisteritviaregisterpaint()。 3.thecustompAntFunctionSthenusitySthenusedisthenusedisthenusedIncerspropertieslikeBacknockforg-image-image.thisallows.thisallowsforderforderynamecvis
要使用CSS創(chuàng)建響應(yīng)式圖片,主要可通過(guò)以下方法實(shí)現(xiàn):1.使用max-width:100%和height:auto讓圖片在保持比例的同時(shí)自適應(yīng)容器寬度;2.結(jié)合HTML的srcset和sizes屬性智能加載適配不同屏幕的圖片源;3.利用object-fit和object-position控製圖片裁剪與焦點(diǎn)展示。這些方法共同確保圖片在不同設(shè)備上清晰、美觀地呈現(xiàn)。
不同瀏覽器對(duì)CSS解析存在差異,導(dǎo)致顯示效果不一致,主要包括默認(rèn)樣式差異、盒模型計(jì)算方式、Flexbox和Grid佈局支持程度及某些CSS屬性行為不一致。 1.默認(rèn)樣式處理不一致,解決方法是使用CSSReset或Normalize.css統(tǒng)一初始樣式;2.舊版IE的盒模型計(jì)算方式不同,建議統(tǒng)一使用box-sizing:border-box;3.Flexbox和Grid在邊緣情況或舊版本中表現(xiàn)有差異,應(yīng)多測(cè)試並使用Autoprefixer;4.某些CSS屬性行為不一致,需查閱CanIuse並提供降級(jí)