您當前位置:圖趣網(wǎng)(Tuquu) >> 網(wǎng)頁設(shè)計教程 >> 交互設(shè)計 >> 瀏覽設(shè)計教程

從Medium網(wǎng)頁大背景講述網(wǎng)頁前端知識

Medium是由Twitter的聯(lián)合創(chuàng)始人:Evan Williams和Biz Stone創(chuàng)辦于2012年8月創(chuàng)辦的一個文章寫作、閱讀平臺。注意,我這里并沒有用很多網(wǎng)站上援引的博客平臺是因為Medium的出現(xiàn)塑造了一種新的社會化自我營銷渠道。在首頁引入的Welcome to Medium里,我們看到它的初衷是為了讓人們更好地寫作,但是作為Twitter的一個延伸,它依舊搭載在一個社交性很強的平臺之上。這也讓在Medium中寫作的人更愿意去分享、營銷、推廣自己的寫作內(nèi)容,甚至成為一些知名Developers, Designers and even Managers的發(fā)布渠道。例如:Facebook的Product Design Director Julie Zhuo就曾經(jīng)通過在Medium上發(fā)表文章來解釋Facebook為何revert掉在視覺層面上非常突出的新版界面。而更讓人覺得特別的是,每當我看到好的文章分享到twitter上時,都會有作者親自來favorite你的tweet,這簡直就是自我運營啊,有木有! 好啦,閑話說完,我們進入主題。

首頁布局

Medium Home大背景圖或是視頻,已經(jīng)成為累當今服務(wù)性網(wǎng)站設(shè)計的一個趨勢,隨著網(wǎng)速越來越快、屏幕越來越大,一張巨幅首頁圖片無論從視覺沖擊力還是從性能上都已經(jīng)不再是不可能實現(xiàn)的功能。那我們來看一下這個首頁的布局是如何實現(xiàn)的: HTML:

	<div class="container surface-container" id="container">
  <div class="surface" id="..." style="display: block; visibility: visible;">
    ::before
    <div class="screen-content surface-content">
      <div class="image-fill layout-fill promo-fill" style="background-image: url('xxx.jpeg')">
        <div class="layout-fill align-middle">
          ::before
          <div class="align-block layout-fill-width">
            <div class="layout-single-column">...</div>
            <div class="align-center">...</div>
          </div>
          <footer class="footer ..."></footer>
        </div>
      </div>
    </div>
    ::after
  </div>
</div>

CSS: 為了實現(xiàn)全window的覆蓋,第一個要做的就是設(shè)置html, bodyheight為100%,寬度的話,應(yīng)為是自動全覆蓋,就無需多做設(shè)置。.container只是作為一個過度,同樣設(shè)置到100%的高度(這里我會暫時忽略除了layout之外的屬性設(shè)置)。 再深一層是便是.surface,除了再次繼承了滿高度、滿寬度外,還定義了box-sizing: border-box;,請移位MDN來理解。這里要注意它加了.suface:before, .surface:after的屬性,是為了自動生成clearfix的效果來阻止float溢出,但其實在這個首頁之中并沒有用到。

	html, body, .container {
  height: 100%;
}
.surface {...}
.surface:before, .surface:after {
  display: table;
  content: " ";
}
.surface:after {
  clear: both;
}

在往里面的幾個.screen-content, .surface-content只是繼續(xù)控制高度,和一些默認背景顏色。直到下面這一層才定義了覆蓋整個背景大圖的屬性,而具體的背景圖片是只額姐加到了DOM的這個div里面(我想原因應(yīng)該是有一些數(shù)據(jù)binding在里面,這樣好做更新):

	.image-fill, {
  background-position: center;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}
.image-fill {
  background-color: rgba(0, 0, 0, 0.9);
}
.promo-fill {
  background-color: #000;
}

大背景圖

在這里,為了實現(xiàn)圖片可以滿背景覆蓋,最主要的一個元素就是background-size: cover;,這個屬性一共有以下幾個可能的值:

background-size: <length> | <percentage> | auto | cover | contain;

它們分別代表的意思是:

  1. background-size: 50% | 120px | auto; 設(shè)置了背景圖片的寬度,高度則自動計算。默認的auto維持了背景圖原有的大小。
  2. background-size: 50% auto; 同時強制定義了寬度和高度。
  3. background-size: auto, auto, [...]; 定義給多個背景圖片(注意被一個定義會用逗號隔開,與auto auto并不是一個意思)。
  4. background-size: cover; 這樣定義的背景圖片會被修改圖片大?。ㄩL寬比例不變),以確保剛剛好覆蓋整個Element。
  5. background-size: contain; 背景圖片會被修改大?。ㄩL寬比例不變),以確保剛剛好被這個Element包裹在里面。

下面幾張圖分別展示了集中不同的情況: 當background-size設(shè)置為cover時,即使屏幕被拉窄拉寬,圖片依舊很好地覆蓋著整個屏幕(更多的比對還可以訪問MDN): home cover

contain時,圖片長寬比并不發(fā)生變化,卻會被包在window里面:

home contain

50% 100%時,圖片長寬比按照設(shè)置的數(shù)值被拉伸:

home 50% 100%

注意,這里的背景圖片都是按照默認的會重復鋪排在x和y軸上,所以當背景圖不能覆蓋element的時候,便會出現(xiàn)重復的樣式。此外,background-position: center;也定義了圖片按照所屬element的中心位置來調(diào)整大小。

兼容性

這樣圖片全頁面覆蓋的實現(xiàn)方法就說明完了,contain & cover屬性的兼容性如下:

  1. Chrome 3.0+
  2. Firefox 3.6 (1.9.2)+
  3. IE 9.0+
  4. Opera 10.0+
  5. Safari 4.1+

如果為了實現(xiàn)同樣的效果,卻要面對恐怖的IE7/8,腫么破,請嘗試如下:

	.background-cover {
  filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
          src='PATH_TO_BACKGROUND_IMAGE',
          sizingMethod='scale');
  -ms-filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
              src='PATH_TO_BACKGROUND_IMAGE',
              sizingMethod='scale');
}

但是要小心,這個實現(xiàn)方法會使得起內(nèi)部的鏈接點擊失效(請給我大MS 32個贊),而且這個實現(xiàn)的是background-size: 100% 100%的效果?;蛘呖梢酝ㄟ^jQuery (jquery.backgroundSize.js)來實現(xiàn)。


其他示例

這里面是一些好看的大圖覆蓋的例子,但是并不是所有的頁面都是通過background-size來實現(xiàn)的:

[教程作者:admin]
免責聲明:本站文章系圖趣網(wǎng)整理發(fā)布,如需轉(zhuǎn)載,請注明出處,素材資料僅供個人學習與參考,請勿用于商業(yè)用途!
本文地址:http://m.pkvc.cn/tutorial/id2044.html
手機互動網(wǎng)頁項目設(shè)計總結(jié)(下)
作為網(wǎng)頁設(shè)計師必須知道的20種新興交互設(shè)計
圖趣網(wǎng)微信
建議反饋
×