亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

手機(jī)端適配策略以及實(shí)現(xiàn)

xingqiba / 1359人閱讀

摘要:設(shè)備本身的適配策略和的適配策略是不一樣的。暫且稱之為更大內(nèi)容策略。個(gè)人認(rèn)為的策略更為合理。這種情況一般作用于容器元素。用腳本實(shí)現(xiàn)有極少數(shù)布局上的問(wèn)題似乎無(wú)能為力了。

設(shè)備本身的適配策略

ios和Android的適配策略是不一樣的。

對(duì)于ios,一個(gè)設(shè)備含有越多的邏輯像素,那么這個(gè)設(shè)備也就越大,換句話說(shuō),ios的邏輯像素可以作為一個(gè)物理長(zhǎng)度單位。應(yīng)用的場(chǎng)景是這樣的,用px單位設(shè)置了一個(gè)元素的大小,這個(gè)元素在不同大小的ios設(shè)備下實(shí)際上是一樣大的。所以ios策略是更大的屏幕是為了顯示更多的內(nèi)容。暫且將它稱之為更多內(nèi)容策略。

然而對(duì)于Android設(shè)備,大致的情況是不管設(shè)備大小,包含的邏輯像素寬度都是360px。用px單位設(shè)置一個(gè)元素的大小,設(shè)備越大,它在設(shè)備上呈現(xiàn)的也等比變大。所以Android的策略是,屏幕越大是為了讓內(nèi)容看起來(lái)更大。暫且稱之為更大內(nèi)容策略。

個(gè)人認(rèn)為ios的策略更為合理。但是由于我們無(wú)法獲取設(shè)備的物理尺寸大小,所以也就沒(méi)有辦法在Android的設(shè)備上面應(yīng)用更多內(nèi)容策略。所以我決定就在ios的設(shè)備上面執(zhí)行ios的更多內(nèi)容策略,而在Android的設(shè)備上執(zhí)行更大內(nèi)容策略。

ios的適配的策略實(shí)現(xiàn)

根據(jù)更多內(nèi)容策略,我們會(huì)遇到兩種情況

第一種是元素大小不隨設(shè)備屏幕變大而變大,比如屏幕、圖標(biāo)、導(dǎo)航欄等,因?yàn)槲覀冃枰獮橛脩舫尸F(xiàn)更多的內(nèi)容,這個(gè)時(shí)候使用的單位是px。

第二種情況,元素的大小需要隨著設(shè)備的變大而變化。這種情況一般作用于容器元素。因?yàn)槠聊蛔兇罅?,容器如果還是一樣的大小就不符合呈現(xiàn)更多內(nèi)容策略。這種情況的實(shí)現(xiàn)比較復(fù)雜, 下面我們?cè)敿?xì)討論這種情況下的解決方案。

百分比

百分比這個(gè)單位是參照父元素大小的相對(duì)單位。其實(shí)百分比可以解決大部分問(wèn)題。

我需要一個(gè)占據(jù)整個(gè)屏幕大小的容器,下面的代碼可以完美解決

.container { 
    width:100%; 
    height:100%; 
}

又或者我需要一個(gè)占據(jù)屏幕百分之五十的內(nèi)容彈窗,至于高度就由內(nèi)容決定吧

.dialog { 
    width:50%; 
    height:auto; 
}

對(duì)了它得居中,這也沒(méi)什么問(wèn)題

.dialog { 
    width:50%; 
    height:auto; 
    margin-left:-25%; 
    left:50%; 
}

但是,如何涉及到高度,百分比的問(wèn)題就顯現(xiàn)出來(lái)了。比如我想讓上面的彈窗的高度為屏幕高度的60%,至于內(nèi)容過(guò)多就讓它內(nèi)部滾動(dòng)吧;

.dialog { 
    width:50%; 
    height:auto; 
    margin-left:-25%; 
    left:50%;
    height:60%;
} 

似乎也沒(méi)有什么問(wèn)題,但是,如果我想讓它上下居中

.dialog { 
    width:50%; 
    margin-left:-25%; 
    left:50%;
    height:60%;
    margin-top:-30%;
    top:50%;
} 

無(wú)奈的發(fā)現(xiàn)它并沒(méi)有居中,問(wèn)題就出在maring-top 百分比所參照的是父級(jí)元素的寬度而不是高度。終于發(fā)現(xiàn)了一個(gè)百分比無(wú)能為力的一個(gè)點(diǎn)了。

改變一下需求,我們需要一個(gè)正方形的彈窗,彈窗的寬度還是要求50%;

.dialog {
    width:50%; 
    margin-left:-25%; 
    left:50%;
    height: ?%;
}

我們?cè)囍隽?,但是他的高度?yīng)該是多少呢,確實(shí)百分比無(wú)能為力了。

vw & vh

vw 是將當(dāng)前屏幕的寬度分為一百份之后的長(zhǎng)度

wh 是將當(dāng)前屏幕的高度分為一百份之后的長(zhǎng)度

這幾乎是對(duì)百分比方案的完美補(bǔ)充了。針對(duì)上面百分比無(wú)能為力的兩個(gè)點(diǎn),vw 和 vh 都能應(yīng)對(duì)。

百分比高度元素的垂直居中

.dialog { 
    width:50%; 
    margin-left:-25%; 
    left:50%;
    height:60vh;
    margin-top:-30vh;
    top:50%;
} 

百分比寬度元素固定長(zhǎng)寬比例

    .dialog { 
        width:50vw;
        margin-left:-25vw; 
        left:50%;
        height: 50vw;
} 

但是遺憾的是 vw 和 vh 存在著不可忽視的兼容新問(wèn)題;

用 rem 模擬 vw & vh

rem只能模仿 vw 和 vh 中的一個(gè)。因?yàn)橐话惚容^常用的是vw,所以我們把 rem 當(dāng)做 vw 使用。

可以使用腳本計(jì)算 html 的 rem,代碼如下

var deviceWidth = window.screen.width;
document.querySelector("html").style.fontSize = (deviceWidth)+"px";

百分比寬度元素固定長(zhǎng)寬比例

.dialog {
    width: 0.5 rem;
    margin-left: -0.25 rem;
    left: 50%;
    height: 0.25 rem;
}

由于 rem 只能模仿 vw vh 的一種 所以這時(shí)候?qū)τ诎俜直雀叨仍氐拇怪本又?的實(shí)現(xiàn)就無(wú)能為力了。

用腳本實(shí)現(xiàn)

有極少數(shù)布局上的問(wèn)題 css似乎無(wú)能為力了。這個(gè)適合只能依靠萬(wàn)能的腳本了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/115245.html

相關(guān)文章

  • 手機(jī)適配策略以及實(shí)現(xiàn)

    摘要:設(shè)備本身的適配策略和的適配策略是不一樣的。暫且稱之為更大內(nèi)容策略。個(gè)人認(rèn)為的策略更為合理。這種情況一般作用于容器元素。用腳本實(shí)現(xiàn)有極少數(shù)布局上的問(wèn)題似乎無(wú)能為力了。 設(shè)備本身的適配策略 ios和Android的適配策略是不一樣的。 對(duì)于ios,一個(gè)設(shè)備含有越多的邏輯像素,那么這個(gè)設(shè)備也就越大,換句話說(shuō),ios的邏輯像素可以作為一個(gè)物理長(zhǎng)度單位。應(yīng)用的場(chǎng)景是這樣的,用px單位設(shè)置了一個(gè)元...

    PascalXie 評(píng)論0 收藏0
  • 淺談設(shè)計(jì)模式1——策略模式 | 適配器模式 | 工廠模式

    摘要:適配器模式要比策略模式要好理解一些。書(shū)中的適配器模式有兩種實(shí)現(xiàn)方式,一種是通過(guò)代理,另一種是通過(guò)繼承。通過(guò)工廠模式獲得具體接口。而且工廠模式承擔(dān)的壓力過(guò)重,可能會(huì)導(dǎo)致職責(zé)的混亂。工廠方法模式這其實(shí)是工廠模式的一個(gè)簡(jiǎn)單的升級(jí)。 前言 最近在看《Think In JAVA》,其中在講解繼承,組合,抽象類和接口的時(shí)候,提到了題中的幾個(gè)設(shè)計(jì)模式。這幾個(gè)設(shè)計(jì)模式也確實(shí)讓我更好的理解了JAVA中各...

    0x584a 評(píng)論0 收藏0
  • php設(shè)計(jì)模式

    摘要:我們今天也來(lái)做一個(gè)萬(wàn)能遙控器設(shè)計(jì)模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。今天要介紹的仍然是創(chuàng)建型設(shè)計(jì)模式的一種建造者模式。設(shè)計(jì)模式的理論知識(shí)固然重要,但 計(jì)算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計(jì)模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對(duì)容器接口對(duì)象進(jìn)行操作,第二類是返回一個(gè)容器接口對(duì)象,上節(jié)我們介紹了...

    Dionysus_go 評(píng)論0 收藏0
  • php設(shè)計(jì)模式

    摘要:我們今天也來(lái)做一個(gè)萬(wàn)能遙控器設(shè)計(jì)模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。今天要介紹的仍然是創(chuàng)建型設(shè)計(jì)模式的一種建造者模式。設(shè)計(jì)模式的理論知識(shí)固然重要,但 計(jì)算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計(jì)模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對(duì)容器接口對(duì)象進(jìn)行操作,第二類是返回一個(gè)容器接口對(duì)象,上節(jié)我們介紹了...

    vspiders 評(píng)論0 收藏0
  • 服務(wù)API版本控制設(shè)計(jì)與實(shí)踐

    摘要:場(chǎng)景一版本號(hào)控制隨著互聯(lián)網(wǎng)發(fā)展的,用戶體驗(yàn)要求也是越來(lái)越高,產(chǎn)品形式也會(huì)隨之每年有不一樣的變化。使用客戶端版本號(hào)控制是首選考慮策略。 一、前言筆者曾負(fù)責(zé)vivo應(yīng)用商店服務(wù)器開(kāi)發(fā),有幸見(jiàn)證應(yīng)用商店從百萬(wàn)日活到幾千萬(wàn)日活的發(fā)展歷程。應(yīng)用商店客戶端經(jīng)歷了大大小小上百個(gè)版本迭代后,服務(wù)端也在架構(gòu)上完成了單體到服務(wù)集群...

    不知名網(wǎng)友 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<