<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2017年1月4日

    HTML 5漫談-04-流式布局

    流式布局的關鍵,是用百分比設計HTML元素的withmarginpadding屬性。

    首先看一段HTMLCSS代碼,如代碼清單4-1所示。

    ------------------------------------------------------------------------ 代碼清單 4-1 ------------------------------------------------------------------------

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>流式布局</title>

    <title>Document</title>

    <style type="text/css">

    div {

        width: 90%;

        height: 200px;

        background: blue;

        margin: 0 auto;

    }

    }

    </style>

    </head>

    <body>

        <div></div>

    </body>

    </html>

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------

    元素的相對寬度的參照物是其父元素。代碼中div元素的父元素是body,所以CSS中對div的寬度設計為90%,是指其占body元素寬度的90%

    有必須要提示一點,在《
    HTML5漫談-03-盒子模型》中提到過元素的width屬性的默認值是content盒子的寬度,元素實際占的寬度還要加上paddingborder的值。

    在上面代碼的基礎上,于div元素中增加兩個p元素,如果代碼清單4-2所示。

    ------------------------------------------------------------------------ 代碼清單 4-2 ------------------------------------------------------------------------

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>流式布局</title>

    <title>Document</title>

    <style type="text/css">

    div {

        width: 90%;

        height: 200px;

        background: blue;

        margin: 0 auto;

    }

    p.no1 {

        width: 60%;

        height: 150px;

        background: yellow;

        padding-left: 10%;

        float: left;

    }

    p.no2 {

        width: 20%;

        padding: 0 5%;

        height: 150px;

        background: red;

        float: left;

    }

    </style>

    </head>

    <body>

        <div>

            <p class="no1">文字</p>

            <p class="no2">文字</p>

        </div>

    </body>

    </html>

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------

    p.no1p.no2width屬性值分別是60%20%,是指相對它們父元素divwidth屬性來說的。很重要的一點是,p.no01還設置了padding-left的值為10%,這個值也是相對于父元素divwidth屬性來說的!所以p.no1實際占用的寬度為70%。同理p.no2實際占有的寬度為30%

    不管是width屬性,還是paddingmargin屬性,對其進行百分比設置的時候,參照的都是父元素的width屬性的值。

    min-width屬性、max-width屬性

    當寬度是百分比來指定時,通常要設置最小的寬度和最大的寬度。詳見代碼清單4-3所示。

     

    ------------------------------------------------------------------------ 代碼清單 4-3 ------------------------------------------------------------------------

    div {

        width: 90%;

        height: 200px;

        background: blue;

        margin: 0 auto;

        max-width: 1215px;

        min-width: 400px;

    }

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------


    div的寬度是body寬度的90%,但是最大不會超過1215px,最小不會小于400px

    posted @ 2017-01-04 14:33 OldBoy 閱讀(267) | 評論 (0)編輯 收藏

    HTML 5漫談-03-盒子模型

    頁面的結構要與頁面的表現(xiàn)分離,HTML負責頁面結構,CSS負責頁面表現(xiàn)。也就是說,CSS是用來修飾HTML元素的。這就涉及到一個問題,就是從CSS的角度如何看待一個HTML元素。答案就是“盒子模型。從CSS的角度看,每一個HTML元素都是以盒子的方式呈現(xiàn)的。

    首先看一段HTML代碼,如代碼清單3-1所示。

    ---------------------------------------------- 代碼清單 3-1 -----------------------------------------------

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>HTML 5 Demo</title>

    </head>

    <body>

        <div>CSS盒子模型</div>

    </body>

    </html>

     

    ----------------------------------------------------------------------------------------------------------


    Chrome瀏覽器“開發(fā)者工具視圖中可以看到示例代碼中div元素的盒子模型,如圖3-1所示。

    ---------------------------------------------- 圖 3-1 ----------------------------------------------------

        

     

    ----------------------------------------------------------------------------------------------------------

    示例中的div元素除了內容之外(藍色部分),還包括paddingbordermargin,就像多個盒子套在一起,這也許就是“盒子模型”名字的由來吧。如果打個比方的話,HTML元素在CSS看來就相當于一幅畫,內容就是畫本身,padding相當于畫周圍的留白,border是畫框,margin就是兩幅畫之間的距離。

    Chrome瀏覽器下,paddingborder的默認值為0margin的默認值為8。運行這段代碼的電腦的屏幕分辨率為1366,而1350 x 10div內容部分的寬度,也就是div元素width屬性的值。可以看得出來,HTML元素width屬性的寬度默認是以“外擴的方式呈現(xiàn)的。

    下面通過CSS對這個div盒子的各個部分做設置,如代碼清單3-2所示。
    ---------------------------------------------- 代碼清單 3-2 -----------------------------------------------

    div {

    width: 200px;

        padding: 10px;

        border: solid 5px;

        margin: 20px;

    }

    ----------------------------------------------------------------------------------------------------------


    在HTML頁面的head元素中以link方式引入CSS樣式表,如代碼清單3-3所示:
    ---------------------------------------------- 代碼清單 3-3 -----------------------------------------------

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>HTML 5 Demo</title>

    <link href="3-1.css" rel="stylesheet" type="text/css" />

    </head>

    <body>

        <div>CSS盒子模型</div>

    </body>

    </html>

    -----------------------------------------------------------------------------------------------------
    設置了樣式之后,這個
    div盒子模型的變化如圖3-2所示。

     

    ---------------------------------------------- 圖 3-2 ----------------------------------------------------


    ----------------------------------------------------------------------------------------------------------

    此時,這個div實際占有的寬度為230 x 48,即在with的基礎上加paddingborder的寬度。

    CSS中增加一個有關元素寬度設置的屬性:box-sizing,這個屬性是用來規(guī)定width設置的是誰的寬度。修改之前的CSS代碼,增加box-sizing的設置,如果代碼清單3-4所示。

    ---------------------------------------------- 代碼清單 3-4 -----------------------------------------------
    div {

        width: 200px;

        padding: 10px;

        border: solid 5px;

        margin: 20px;

        box-sizing: border-box;

    }

    ----------------------------------------------------------------------------------------------------------

    修改后這個div的盒子模型如圖3-3所示。

    ---------------------------------------------- 圖 3-3 ----------------------------------------------------

    ----------------------------------------------------------------------------------------------------------

    box-size的值設置為border-box表示元素的with屬性是指border這個盒子的寬度,而不再是內容(content)這個盒子的寬度了。此時with屬性的值表現(xiàn)在內減”,而不是之前默認的“外擴”。

    box-sizing屬性的值還可以是padding-boxcontent-box(默認)。這個屬性在流式布局中特別的常用!

    posted @ 2017-01-04 13:04 OldBoy 閱讀(153) | 評論 (0)編輯 收藏

    HTML 5漫談-02-HTML5帶來的變化

        首先看一段HTML4中常見的JavaScript代碼:
        
            
         HTML5中同樣的頁面會是怎樣的代碼呈現(xiàn)呢
        
        
        原本在HMTL4中一些需要借助于JavaScript實現(xiàn)的功能,被HTML 5的新屬性所取代。
        
    HTML4中,通常會使用div標簽完成頁面的布局,通過divid屬性和class屬性來區(qū)別每一部分div的語義。  

        
        
        同樣的頁面結構,在HTML5中是如何實現(xiàn)的呢?
        

        HTML4中用于頁面布局的div,被HTML 5中增加的一些帶有語義的標簽所取代。這樣不但使頁面結構更加清晰,而且有利于搜索引擎解析頁面。本質上來講,headerfooter這樣的標簽就是命名的div。此外HTML 5更加強調文檔結構與呈現(xiàn)相分離。例如, b標簽在HTML 4中會只是瀏覽器以粗體顯示其中的內容,而HTML 5不再提倡這種純粹用于呈現(xiàn)的標簽,轉而用CSS來負責呈現(xiàn)。

        HTML 5的另一大改進就是支持在瀏覽器中直接播放音頻和視頻文件。請注意是直接,這意味著不需要任何插件。這可以看作是W3C對于插件泛濫的一種反應。原生的(native)多媒體支持再結HTML的其它特性,可以大有作為。

        在HTML 5新增的元素中,canvas可謂震撼。canvas提供了一個通用的繪圖平面,開發(fā)人員可以用它完成一些通常要用Adobe Flash來完成的任務。此外,因為canvas必須要用到JavaScript,從而編程成了HTML文檔中第一層次的事情,這是一個重大的轉變。

          
        
        
      

    posted @ 2017-01-04 11:33 OldBoy 閱讀(108) | 評論 (0)編輯 收藏

    HTML 5漫談-01-響應式網頁設計

        響應式網頁設計追求的是根據用戶設備的不同、備朝向的不同,以及設備屏幕大小的不同,提供不同的網頁設計,以達到都美觀的效果。

        為了解決手機瀏覽網頁的問題,許多網站都提供了單獨的手機版本。比如,在手機瀏覽器地址欄輸入:www.sohuc.om,打開搜狐的主頁后,再去看瀏覽器地址欄,上面的網址實際上是:http://m.sohu.com;同樣的,用手機瀏覽器訪問淘寶的主頁,實際訪問的網址會是:https://m.taobao.com

    這種解決方案下,需要用到設備檢測技術,最簡單的實現(xiàn)方式就是應用名為deviceJS的JavaScript庫(http://www.devicejs.org)。deviceJSDevice.js 是一個可以檢測設備、設備方向和操作系統(tǒng)和方向等。deviceJS的簡單的示例:

    <script type="text/javascript" src="device.min.js"></script>

    <script type="text/javascript">

       if (device.mobile()) {

          window.location = "http://m.sohu.com";

       }

    </script>

        開發(fā)可以使用Chrome瀏覽器的設備模擬功能,來實現(xiàn)移動設備的測試。打開Chrome瀏覽器之后,按F12,進入“開發(fā)者工具界面。單擊開發(fā)者工具欄右上角的“Toggle Device Model”按鈕,就會打開設備模式。

        這時在瀏覽器地址欄輸入:www.sohu.com回車,就會看到搜狐移動版的頁面,而瀏覽器地址欄會變?yōu)椋簃.sohu.com

        網站的移動版僅僅解決了手機瀏覽網頁的問題,遠遠不能適應眾多上網設備屏幕寬度的差異,于是流式布局技術應運而生。有關流式布局網站的示例,可以訪問:http://mediaqueri.es,上面收錄了各種風格的使用流式布局設計的網頁。

        流式布局的本質,就是在不同屏幕寬度下應用不同的CSS樣式,以適應設備寬度或者瀏覽器寬度的改變。要做到這一點,有兩個關鍵的技術,一是HTML標記的寬度和高度要使用相對值,二是對窗口寬度改變做出判斷并更換樣式表。

        先來說第一點,網頁中的HTML標記的寬度和高度,必須使用相對值(百分比),而不能是絕對值。下面是一個簡單的示例網頁:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>流式布局 - 相對寬度和高度值</title>

    <style type="text/css">

    html, body {

       height: 100%;

    }

    div {

       width: 90%;

       height: 45%;

       background: blue;

       margin: 0 auto;

    }

    p.class1 {

       width: 60%;

       height: 70%;

       background: yellow;

       padding-left: 10%;

       float: left;

    }

    p.class2 {

       width: 20%;

       padding: 0 5%;

       height: 30%;

       background: red;

       float: left;

    }

    </style>

    </head>

    <body>

       <div>

          <p class="class1">文字內容</p>

          <p class="class2">文字內容</p>

       </div>

    </body>

    </html>


    可以觀察瀏覽器在全屏狀態(tài)下頁面的顯示效果,然后調整瀏覽器窗口寬度后,觀察頁面的顯示效果。 
        流式布局的另外一項關鍵的技術就是對窗口寬度改變做出判斷并更換樣式表。聽起來挺難,實際上很容易,就是使用CSS3的媒體查詢,看下面的代碼片段:

    <link rel="stylesheet" href="css/1.css" type="text/css" 
                                         
    media="(min-width:800px)">

    <link rel="stylesheet" href="css/2.css" type="text/css" 
                                     
    media="(max-width:799px) and (min-width:600px)">

    <link rel="stylesheet" href="css/3.css" type="text/css" 
                                        
    media="(max-width:599px)">

        這段代碼的意思是說:當屏幕寬度大于等于800時,應用樣式表1.css;當屏幕寬度小于等于799和大于等于600時,應用樣式表2.css;當屏幕寬度小于等于599時應用樣式表3.css

    posted @ 2017-01-04 10:48 OldBoy 閱讀(166) | 評論 (0)編輯 收藏

    僅列出標題  
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久WWW色情成人免费观看| 国产亚洲视频在线播放| 一二三区免费视频| 亚洲综合精品香蕉久久网| 免费欧洲美女牲交视频| 99久9在线|免费| 免费的黄色的网站| 亚洲最大在线观看| 亚洲一区精品伊人久久伊人| av无码国产在线看免费网站| 一个人看www免费高清字幕| 午夜在线免费视频| 激情无码亚洲一区二区三区| 亚洲黄色在线视频| 亚洲日韩精品射精日| 永久免费AV无码网站在线观看 | 亚洲女人被黑人巨大进入| 91成年人免费视频| 最近2019中文字幕免费看最新| 你懂的免费在线观看网站| 看全免费的一级毛片| 亚洲午夜无码毛片av久久京东热| 亚洲AV无码国产丝袜在线观看| 无码专区一va亚洲v专区在线| 免费的涩涩视频在线播放 | 亚洲性无码一区二区三区| 亚洲爆乳少妇无码激情| 亚洲AV无码一区二区三区人| 亚洲av无码成人黄网站在线观看| 亚洲免费精彩视频在线观看| 亚洲国产另类久久久精品黑人 | 在线人成精品免费视频| 国产免费网站看v片在线| av电影在线免费看| 日本一区二区三区在线视频观看免费 | 国产午夜鲁丝片AV无码免费| 亚洲精品成人网久久久久久| 亚洲av综合色区| 国产亚洲精品影视在线| 亚洲电影在线免费观看| 亚洲性无码av在线|