成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

前端實(shí)現(xiàn):Medium(一)

VishKozus / 1212人閱讀

摘要:那我們來看一下這個(gè)首頁的布局是如何實(shí)現(xiàn)的為了實(shí)現(xiàn)全的覆蓋,第一個(gè)要做的就是設(shè)置的為,寬度的話,應(yīng)為是自動(dòng)全覆蓋,就無需多做設(shè)置。

  

本文發(fā)表于前端觀察,最新改動(dòng)可訪問我的博客或是相關(guān)Github Repo。

大家好,我是新人kalasoo,現(xiàn)在還處在“試用期”,作為一個(gè)自學(xué)出來的前端新手,能夠加入前端觀察實(shí)在是異常興奮。既然要一起來維護(hù)這個(gè)關(guān)于前端的博客,我一定會(huì)努力爭(zhēng)取我所寫的內(nèi)容可以追上這里文章的質(zhì)量水平。作為開始,我會(huì)做一個(gè)小小的系列來分析那些有名、特別、設(shè)計(jì)感十足或是交互體驗(yàn)出眾的網(wǎng)站。同時(shí)我還會(huì)認(rèn)真閱讀其前端代碼,為大家重現(xiàn)那些神奇的效果是如何實(shí)現(xiàn)的,當(dāng)然也會(huì)盡我所知引用更多的資源來豐富內(nèi)容。希望這個(gè)系列可以讓大家更加了解前端技術(shù),同時(shí)也可以鍛煉我自己。

我們就從Medium開始

決定第一個(gè)來做這個(gè)網(wǎng)站的原因很簡(jiǎn)單,那就是好看??!由于Medium的出現(xiàn)嚴(yán)重影響改變了博客、發(fā)布平臺(tái)的風(fēng)格以及編輯器等前端組建的設(shè)計(jì),我們會(huì)分多期來分析各種細(xì)節(jié)是如何實(shí)現(xiàn)的。我們尤整體走向局部,所以我們先從整體布局來分析:

首頁布局以及大背景圖

網(wǎng)站背景

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

好啦,閑話說完,我們進(jìn)入主題。

首頁布局

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

HTML:

::before
::before
...
...
::after

CSS:

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

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

在往里面的幾個(gè).screen-content, .surface-content只是繼續(xù)控制高度,和一些默認(rèn)背景顏色。直到下面這一層才定義了覆蓋整個(gè)背景大圖的屬性,而具體的背景圖片是只額姐加到了DOM的這個(gè)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;
}
大背景圖

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

background-size:  |  | auto | cover | contain;

它們分別代表的意思是:

background-size: 50% | 120px | auto; 設(shè)置了背景圖片的寬度,高度則自動(dòng)計(jì)算。默認(rèn)的auto維持了背景圖原有的大小。

background-size: 50% auto; 同時(shí)強(qiáng)制定義了寬度和高度。

background-size: auto, auto, [...]; 定義給多個(gè)背景圖片(注意被一個(gè)定義會(huì)用逗號(hào)隔開,與auto auto并不是一個(gè)意思)。

background-size: cover; 這樣定義的背景圖片會(huì)被修改圖片大?。ㄩL(zhǎng)寬比例不變),以確保剛剛好覆蓋整個(gè)Element。

background-size: contain; 背景圖片會(huì)被修改大?。ㄩL(zhǎng)寬比例不變),以確保剛剛好被這個(gè)Element包裹在里面。

下面幾張圖分別展示了集中不同的情況:

當(dāng)background-size設(shè)置為cover時(shí),即使屏幕被拉窄拉寬,圖片依舊很好地覆蓋著整個(gè)屏幕(更多的比對(duì)還可以訪問MDN):

contain時(shí),圖片長(zhǎng)寬比并不發(fā)生變化,卻會(huì)被包在window里面:

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

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

兼容性

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

Chrome 3.0+

Firefox 3.6 (1.9.2)+

IE 9.0+

Opera 10.0+

Safari 4.1+

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

.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");
}

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

其他示例

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

http://www.whitmansnyc.com/

https://chrome.google.com/webstore/detail/momentum/laookkfknpbbblfpciffpaejjkokdgca?hl=en

http://quinntonharris.strikingly.com/

其實(shí)現(xiàn)方式其實(shí)是背景圖很大,大小設(shè)置為auto,而覆蓋效果則是通過設(shè)置外面一層的div大小來實(shí)現(xiàn)的。

http://www.lattrapereve.fr/

背景視頻大小是根據(jù)window大小的變化,用javascript來修改的。

下期預(yù)告

下一期,我們會(huì)深入探討Medium上的側(cè)邊推進(jìn)欄sidebar的實(shí)現(xiàn),而這個(gè)推進(jìn)效果其實(shí)有好多種不一樣的方法,有的可以在mobile上實(shí)現(xiàn)滑動(dòng)效果,有的會(huì)有更好地兼容性。敬請(qǐng)大家期待。

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

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

相關(guān)文章

  • 70道前端LeetCode題目集合及視頻講解(持續(xù)更新中...)

    前端LeetCode刷題 下面是已刷的題目的目錄。GitHub:https://github.com/cunzaizhuy...每日打卡更新中,歡迎關(guān)注。 數(shù)組類 26 刪除排序數(shù)組中的重復(fù)項(xiàng) 27 移除元素 35 搜索插入位置 66 加1 80 medium 刪除排序數(shù)組中的重復(fù)項(xiàng)2 88 合并兩個(gè)有序數(shù)組 167 兩數(shù)之和II - 輸入有序數(shù)組 118 楊輝三角 169 easy 求眾數(shù) 1...

    mayaohua 評(píng)論0 收藏0
  • 2017-06-20 前端日?qǐng)?bào)

    摘要:前端日?qǐng)?bào)精選專題之跟著學(xué)節(jié)流冴羽的博客全家桶仿微信項(xiàng)目,支持多人在線聊天和機(jī)器人聊天騰訊前端團(tuán)隊(duì)社區(qū)編碼的奧秘模塊實(shí)現(xiàn)入門淺析知乎專欄前端每周清單發(fā)布新版本提升應(yīng)用性能的方法中文寇可往吾亦可往用實(shí)現(xiàn)對(duì)決支付寶的微信企業(yè)付款到零 2017-06-20 前端日?qǐng)?bào) 精選 JavaScript專題之跟著 underscore 學(xué)節(jié)流 - 冴羽的JavaScript博客 - SegmentFau...

    Galence 評(píng)論0 收藏0
  • 2017-07-08 前端日?qǐng)?bào)

    摘要:前端日?qǐng)?bào)精選精讀與提案知乎專欄第期認(rèn)識(shí)引擎記錄一次利用工具進(jìn)行性能優(yōu)化的真實(shí)案例簡(jiǎn)書中的使用規(guī)則教程繼承的實(shí)現(xiàn)方法個(gè)人文章中文譯組件渲染性能探索個(gè)人文章周刊第期表單性能的改進(jìn)實(shí)踐知乎專欄簡(jiǎn)單可重用的圖表庫知乎專欄 2017-07-08 前端日?qǐng)?bào) 精選 精讀 TC39 與 ECMAScript 提案 - 知乎專欄【第989期】認(rèn)識(shí) V8 引擎記錄一次利用 Timeline/Perform...

    王巖威 評(píng)論0 收藏0
  • 2017-06-13 前端日?qǐng)?bào)

    摘要:前端日?qǐng)?bào)點(diǎn)關(guān)注,不迷路精選前端團(tuán)隊(duì)工作流遷移記譯新語法私有屬性知乎專欄前端每周清單大前端技術(shù)生命周期模型發(fā)布面向生產(chǎn)環(huán)境的前端性能優(yōu)化模塊實(shí)現(xiàn)入門淺析知乎專欄中文一個(gè)線下沙龍中國(guó)最大的前端技術(shù)社區(qū)單頁面博客從前端到后端基于 2017-06-13 前端日?qǐng)?bào) 點(diǎn)關(guān)注,不迷路:-P 精選 ESLint v4.0.0 released - ESLint - Pluggable JavaScri...

    曹金海 評(píng)論0 收藏0

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

0條評(píng)論

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