html5 - 移動(dòng)端怎么樣讓圖片寬高比例正好適應(yīng)手機(jī)當(dāng)前屏幕全屏大小?
問(wèn)題描述
1.移動(dòng)端怎么樣讓圖片寬高比例正好適應(yīng)手機(jī)當(dāng)前屏幕全屏大???
當(dāng)寬度100%時(shí)高度就需要自適應(yīng),當(dāng)高度100%時(shí)寬度就需要自適應(yīng),
這樣就可能圖片超出當(dāng)前屏幕出現(xiàn)滾動(dòng)條,需要滑動(dòng)才能看到,或者就會(huì)出現(xiàn)留白,沒(méi)有充滿(mǎn)整屏。
因?yàn)楫?dāng)前圖片不是同種顏色背景,無(wú)法通過(guò)填充背景來(lái)實(shí)現(xiàn),有沒(méi)有好的圖片尺寸比例可以實(shí)現(xiàn)這種需求。
2.代碼
.imgsrc img { width: 100%;}
3.效果
問(wèn)題解答
回答1:根據(jù)需求來(lái)看,建議通過(guò)css的背景屬性來(lái)設(shè)置;第一步,先添加一個(gè)屏幕大小的DOM元素;或者直接在你的imgsrc上設(shè)置,前提是imgsrc的大小是屏幕大?。坏诙剑涸O(shè)置元素的css屬性:一樓說(shuō)的是下面這種,不會(huì)拉伸圖片;通過(guò)調(diào)整background-position這個(gè)屬性來(lái)控制圖片位置,我也推薦這種寫(xiě)法:
background-image: url(’鏈接’); background-size: cover; background-repeat: no-repeat; background-position: center;
下面這種可以將圖片完全展示出來(lái),但會(huì)將拉伸背景圖片,如果沒(méi)有鎖定屏幕,橫屏?xí)r圖片會(huì)被拉伸的比較嚴(yán)重:
background-image: url(’鏈接’); background-size: 100% 100%;
===============================================既不拉伸圖片又要完全展示,真是執(zhí)著于這個(gè)的話(huà),給設(shè)計(jì)提個(gè)參考方案吧:把圖片的輪廓羽化后,加個(gè)背景色,再去拿到圖片背景色的色值,在imgsrc或是加上的DOM元素中,設(shè)置css屬性:
background-color: white;// 拿到的圖片背景色 background-image: url(’鏈接’); background-size: 95%; //可以寫(xiě)成固定值 background-repeat: no-repeat; background-position: center;回答2:
很多種方式可以實(shí)現(xiàn)。除去 js 計(jì)算不說(shuō), <img> 標(biāo)簽可以用比較新的 object-fit: cover; 屬性。
或者把圖片放到背景里,再利用 background-size: cover; ,這種方式還可以通過(guò)百分比的 background-position 指定焦點(diǎn),可以保持焦點(diǎn)的地方一直可見(jiàn)。
回答3:不是同種顏色背景是什么意思,可以描述的清楚些么?
回答4:將圖片作為背景圖,設(shè)置background-size:cover。
回答5:width: 100vw;height: 100vh;但是不兼容ie低版本
相關(guān)文章:
1. android - 安卓做前端,PHP做后臺(tái)服務(wù)器 有什么需要注意的?2. docker不顯示端口映射呢?3. mysql - 我用SQL語(yǔ)句 更新 行的時(shí)候,發(fā)現(xiàn)全部 中文都被清空了,請(qǐng)問(wèn)怎么解決?4. python - 子進(jìn)程執(zhí)行完成為僵尸進(jìn)程,怎么解決5. python - xpath提取網(wǎng)頁(yè)路徑?jīng)]問(wèn)題,但是缺失內(nèi)容?6. javascript - 求教各位,本地HTML頁(yè)面怎么在DIV中嵌套服務(wù)器上的頁(yè)面內(nèi)容?不用iframe。7. python-mysql Commands out of sync8. java中返回一個(gè)對(duì)象,和輸出對(duì)像的值,意義在哪兒9. javascript - 給某個(gè)類(lèi)添加一個(gè)偽類(lèi),這個(gè)類(lèi)有click事件,現(xiàn)在我點(diǎn)擊偽類(lèi)也觸發(fā)了click事件10. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?
