響應(yīng)式布局設(shè)計(jì)是根據(jù)用戶(hù)設(shè)備的屏幕分辨率來(lái)響應(yīng)用戶(hù)設(shè)備的一種設(shè)計(jì)。這意味著,無(wú)論用戶(hù)是在移動(dòng)、平板還是桌面設(shè)備上瀏覽 Web 頁(yè)面,設(shè)計(jì)都將根據(jù)該設(shè)備的屏幕分辨率顯示特定的布局,從而適當(dāng)?shù)仨憫?yīng)設(shè)備。
該框架的文檔實(shí)際上結(jié)合使用了 jQuery Mobile 框架和 CSS3 媒體查詢(xún)來(lái)實(shí)現(xiàn)自己的響應(yīng)式設(shè)計(jì)。對(duì)不同屏幕分辨率的反應(yīng)方式。
沒(méi)有自定義樣式,我們的電網(wǎng)將3列的布局在所有的屏幕寬度:
在我們的自定義樣式,我們希望此網(wǎng)格疊加在狹窄的寬度,然后切換到一個(gè)標(biāo)準(zhǔn)的3欄布局。在很寬的屏幕寬度,我們希望第一列占用50%的寬度,這樣:
為了實(shí)現(xiàn)這樣,我們需要自定義一個(gè)新的類(lèi)名稱(chēng),比如“my-breakpoint”。
這個(gè)類(lèi)用于范圍的風(fēng)格在自定義媒體查詢(xún),他們將只適用于當(dāng)這類(lèi)添加到網(wǎng)格容器。傳媒查詢(xún)包裹我們只想50em應(yīng)用以下條件的風(fēng)格。
在你的媒體查詢(xún),使用EM單元代替像素點(diǎn)以確保媒體查詢(xún)將字體大小考慮除了屏幕寬度。計(jì)算在EMS屏幕寬度,將像素的目標(biāo)寬度的16,這是body的默認(rèn)字體大小。
HTML5部分:
<div class="ui-grid-b my-breakpoint"> <div class="ui-block-a">Block A</div> <div class="ui-block-b">Block B</div> <div class="ui-block-c">Block C</div></div><!-- /grid-b -->
CSS3部分:
@media all and (max-width: 50em) { .my-breakpoint .ui-block-a, .my-breakpoint .ui-block-b, .my-breakpoint .ui-block-c, .my-breakpoint .ui-block-d, .my-breakpoint .ui-block-e { width: 100%; float:none; }}
在這個(gè)媒體查詢(xún),我們?cè)O(shè)置寬為100%和否定浮動(dòng)屬性,50em屏幕寬度。這些規(guī)則適用于每一個(gè)網(wǎng)格類(lèi)型由堆放選擇器網(wǎng)格的所有類(lèi)ui-block-a到ui-block-e的風(fēng)格。
那是使網(wǎng)格的響應(yīng)和添加額外的樣式規(guī)則,每個(gè)斷點(diǎn)改變起來(lái)更容易。我們鼓勵(lì)您創(chuàng)建多個(gè)定制的斷點(diǎn),你需要根據(jù)你獨(dú)特的內(nèi)容和布局的需要。
添加一個(gè)寬屏斷點(diǎn)調(diào)整比率
基于上面的例子,我們可以添加一個(gè)額外的斷點(diǎn)將寬度以使第一列的寬度為50%,其他兩個(gè)25%以上75em(1200像素)由額外的最小寬度媒體查詢(xún)來(lái)調(diào)整寬度在自定義風(fēng)格就這樣:
@media all and (min-width: 75em) { .my-breakpoint.ui-grid-b .ui-block-a { width: 49.95%; } .my-breakpoint.ui-grid-b .ui-block-b, .my-breakpoint.ui-grid-b .ui-block-c { width: 24.925%; } .my-breakpoint.ui-grid-b .ui-block-a { clear: left; } }}
注意:稍窄的寬度設(shè)置為工作在四舍五入問(wèn)題的跨平臺(tái)。
應(yīng)用自定義斷點(diǎn) ui-responsive
使用此預(yù)設(shè)斷點(diǎn),添加 ui-responsive 類(lèi)到網(wǎng)格容器,將堆疊呈現(xiàn)以下560px(35em)。如果這個(gè)斷點(diǎn)的工作不適合你的內(nèi)容,我們鼓勵(lì)你寫(xiě)一個(gè)自定義的斷點(diǎn)如上所述。
<div class=" ui-grid-b ui-responsive ">
這些都是標(biāo)準(zhǔn)的網(wǎng)格是由 ui-responsive(界面反應(yīng),自定義類(lèi),如上例子my-breakpoint)的作出響應(yīng)類(lèi)網(wǎng)格容器
示例:
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>responsive-grid demo</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css"> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <!-- The script below can be omitted --> <script src="/resources/turnOffPushState.js"></script> <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script> <style> @media all and (max-width: 35em) { .my-breakpoint .ui-block-a, .my-breakpoint .ui-block-b, .my-breakpoint .ui-block-c, .my-breakpoint .ui-block-d, .my-breakpoint .ui-block-e { width: 100%; float:none; } } @media all and (min-width: 45em) { .my-breakpoint.ui-grid-b .ui-block-a { width: 49.95%; } .my-breakpoint.ui-grid-b .ui-block-b, .my-breakpoint.ui-grid-b .ui-block-c { width: 24.925%; } } </style></head><body> <div data-role="page"> <div data-role="header"> <h1>Responsive Grid Example</h1> </div> <div data-role="content"> <div class="ui-grid-b my-breakpoint"> <div class="ui-block-a"><div class="ui-body ui-body-d">Block A</div></div> <div class="ui-block-b"><div class="ui-body ui-body-d">Block B</div></div> <div class="ui-block-c"><div class="ui-body ui-body-d">Block C</div></div> </div></div> </body></html>