[ResponsiveWebDesign]Viewport防止手機開網頁縮放跑掉

  • 1335
  • 0
  • 2015-11-23

摘要:[JQM][002][MVC 4 Mobile Features]Viewport防止手機開網頁縮放跑掉

想要在vs2012 or vs2013(我是用VS2013)預設產生的MVC專案測試ViewPort meta tag的功用的話,最好是利用Partial View,以及自己新增一個HelloWorld的Responsive Web Design的網頁喔

步驟如下:

0.打開visual studio=>新增專案=>Web=>ASP.NET WEB 應用程式=>MVC

這部分很簡單就不附上圖片了

1:加入一個partialView在專案的/Views/Shared加入一個Partial View,叫做TestViewPortCss好了

 

2.html內容是陽春的responsive web design, 參考下面的網址,修改作者提供的內容,結果的html內容如下:(作者沒有加上Viewport關鍵字)

Hello World introduction to Responsive Design

http://gabesumner.com/my-code/hello-world-introduction-to-responsive-design

注意的小重點是:因為razor引擎的伺服器語法是@,因此在網頁的css media query的@media的部分,要改寫成@@media才可以


<!DOCTYPE html>
<html>
<head>
    <title>Hello World introduction to Responsive Design</title>
    @*<meta name="viewport" content="width=device-width" />*@
    <style type="text/css">
            body {
                background-color: #eee;
            }

            #content {
                width: 800px;
                margin: 0 auto;
                background-color: white;
                overflow: auto;
                padding: 30px;
            }

            .three-column .col {
                width: 250px;
                float: left;
                padding-right: 15px;
            }

            .instructions {
               clear: both;
               background-color: #ffffaa;
               padding: 15px;
            }

            /* This is the responsive part - This media query adapts the design for low resolution screens */
            /*這個寫法要換掉@media only screen and (max-width:800px) {*/
            /*因為,要改寫成下面這樣兩個小老鼠@@,razor engine才看的懂*/
            @@media only screen and (max-width:800px) {
                #content {
                    width: 400px;
                }
                .three-column .col {
                    float: none;
                    border-bottom: 1px solid #bbb;
                }
            }
           
        }
    </style>
</head>
<body>
    <div id="content">
        <h1>Hello World introduction to Responsive Design</h1>
        <div class="three-column">
            <div class="col">
                <h2>欄位1</h2>
                <p>日本人為什麼不廢掉1元硬幣?很多人到日本旅遊,最後都為剩下一堆1日元的硬幣(相當於0.27元台幣),就連滿街都是的販賣機也不收,有人建議「早就可以廢掉了吧」,沒想到卻意外在PTT引起討論「1元日幣有好用」。
                <p>一名鄉民PTT貼文說「1日圓早就可以廢掉了吧,材質是100%鋁,雖然不知道鋁的價格,但加上製造成本,很可能比一日元還貴......日本人為什麼不廢掉呢?像台灣10個一塊還能買個養樂多,日本10個1元可以買什麼?」</p>
            </div>
            <div class="col">
                <h2>欄位2</h2>
                <p>因此原PO認為廢掉一元是王道!
很多網友看了也心有戚戚焉,因為每次到日本玩,最後剩下一堆「1日圓硬幣」,都不知怎麼處理,「1元硬幣連販賣機都不吃,X!」、「我都收集一堆拿
                <p></p>
            </div>
            <div class="col">
                <h2>欄位3</h2>
                <p>原文網址: 販賣機都不收!1元日幣超好用? 網友神解這樣花 | ETtoday生活新聞 | ETtoday 新聞雲 http://www.ettoday.net/news/20151029/587493.htm#ixzz3puvg32aVFollow us: ETtodaynet on Twitter | ETtoday on Facebook
                <p>..................................................................................................................................................................................................</p>
            </div>
        </div>
        <div class="instructions">Resize your browser's window to watch this layout transform.  When that gets boring, feel free to <a href="http://gabesumner.com/">visit my site</a>.</div>
    </div>
</body>
</html>

2.在Contoller加入此partial view的控制:

 public ActionResult TestViewPortCss()


{            
	return PartialView();
}

3.用chrome的google nexus 7 模擬器看看直立以及橫放的畫面,嗚嗚,並沒有自動調整版面

 

4.在剛剛的html的header裡面加入ViewPort關鍵字

<meta name="viewport" content="width=device-width" />

5.再看一下畫面,哈哈,有自動調整排版了!

6.事實證明,只要用超威的網路上下載的css media query即可,根本不用管什麼ViewPort關鍵字

請大家自己在寫css media query的時候還是要老實加上ViewPort喔

以上~

 

參考文章:

Responsive Web Design - The Viewport

http://www.w3schools.com/css/css_rwd_viewport.asp

使用 Veiwport 設定手機網頁的螢幕解析度

http://www.flycan.com/article/mobile-web/meta-veiwport-1316.html

Mobile Web 前端技術筆記(一): Viewport的設定

https://hsinyu00.wordpress.com/2011/04/05/mobile-web-viewport/