2009年8月31日 星期一
25個漂亮而有創意的圖片網站設計
不知道你是否訪問過一些圖片/相冊網站?不知道它們是否令你印象深刻?我們之前曾收集過很多灰常出色的免費相冊程序,他們都可以用來創建一些很酷的網絡相冊。而本文要展示的是一批更加出色的圖片網站,他們都很漂亮,很有創意,相信每個人看完之後,都能感受到很大的視覺衝擊——它們真的太酷了!
1. CirilJazbec
2. Anders Bergh
3. David Lindsey Wade
4. Lee Twondrow
5. Moofe
6. Saso Kos
7. Gabriel Vinci
8. Emmanuel Rouzic
9. Cake Factory
10. Filippa Smedhagen Sund
11. Simon Rasmussen
12. Uli Heckmann
13. Let’s Take Pictures
14. Ego Foto
15. Safandula
16. Brook Pifer
17. Shu Akashi
18. Karin Partin
19. Alessio Pizzicannella
20. Amy Danka
21. Andreescu Gaivoronski
22. Albrecht Gerlach
23. Capsule Creative
24. Sonja Mueller
25. Frieke
文章來自WOWBOX
文章提供BAYSTARS DESIGN網頁設計公司
2009年8月30日 星期日
征服高級CSS選擇器
原文:征服高級CSS選擇器譯自:Taming Advanced CSS SelectorsCSS是對網頁設計師可用的最強大的工具之一。使用它我們可以在幾分鐘內改變一個網站的界面,而不用改變頁面的標籤。但是儘管事實上,我們每個人也都意識到了它是有用的,CSS 選擇器遠未發揮它們的潛力,有的時候我們還趨向於使用過多的和無用的class、id、div、span等把我們的HTML搞的很凌亂。避免讓這些「瘟疫」在你的標籤中傳播並保持其簡潔和語義化的最佳方式,就是使用更複雜的CSS選擇器,它們可以定位於指定的元素而不用使用額外的class或id,而且通過這種方式也可以讓我們的代碼和樣式更加靈活。CSS的優先級在深入研究高級CSS選擇器領域之前,理解CSS優先級是如何工作的是很重要的,這樣我們就知道如何適當的使用我們的選擇器並避免浪費大量的時間來調試一些只要我們注意到優先級的話就很容易被搞定的問題。當我們寫CSS的時候我們必須注意有些選擇器在級聯(cascade)上會高於其它選擇器,我們寫在最後面的選擇器將不一定會覆蓋前面我們寫在同一個元素的樣式。那麼你如何計算指定選擇器的優先級?如果你考慮到將優先級表示為用逗號隔開的四個數字就會相當簡單,比如:1, 1, 1, 1 或0, 2, 0, 11.第一個數字(a)通常就是0,除非在標籤上使用style屬性;2.第二個數字(b)是該選擇器上的id的數量的總和;3.第三個數字(c)是用在該選擇器上的其它屬性選擇器和偽類的總和。這裡包括class (.example) 和屬性選擇器(比如 li[id=red]);4.第四個數字(d)計算元素(就像table、p、div等等)和偽元素(就像:first-line等);5.通用選擇器(*)是0優先級;6.如果兩個選擇器有同樣的優先級,在樣式表中後面的那個起作用。讓我們看幾個例子,這樣或許比較容易理解些:
程序代碼
‧#sidebar h2 — 0, 1, 0, 1‧h2.title — 0, 0, 1, 1‧h2 + p — 0, 0, 0, 2‧#sidebar p:first-line — 0, 1, 0, 2在下面的例子中,第一個將會起作用,因為它比第二個優先級高:
程序代碼
‧#sidebar p#first { color: red; } — 0, 2, 0, 1‧#sidebar p:first-line { color: blue; } — 0, 1, 0, 2至少基本理解優先級是如何工作的是很重要的,但是一些工具比如Firebug,在我們審查指定元素的時候,按照選擇器的優先級列出所有的css選擇器對讓我們知道在指定元素上哪個選擇器是有效的是很有用的。讓你非常容易的看到那個選擇器作用於一個元素上了。有用的文章:‧CSS Specificity: Things You Should Know[url=http://meyerweb.com/eric/css/link-specificity.html]‧Link Specificity¯MeyerWeb[url=http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html]‧CSS: Specificity Wars[url=http://www.w3.org/TR/CSS2/cascade.html]‧Assigning property values, Cascading, and Inheritance—W3C1. 屬性選擇器屬性選擇器(Attribute selector)讓你可以基於屬性來定位一個元素。你可以只指定該元素的某個屬性,這樣所有使用該屬性——而不管它的值——的這個元素都將被定位,也可以更加明確並定位在這些屬性上使用特定值的元素 —— 這就是屬性選擇器展示它們的威力的地方。有6個不同類型的屬性選擇器:‧[att=value]該屬性有指定的確切的值。‧[att~=value]該屬性的值必須是一系列用空格隔開的多個值,(比如,class=」title featured home」),而且這些值中的一個必須是指定的值」value」。‧[att=value]屬性的值就是「value」或者以「value」開始並立即跟上一個「-」字符,也就是「value-」。(比如lang=」zh-cn」)‧[att^=value]該屬性的值以指定值開始。‧[att$=value]該屬性的值包含指定的值(而無論其位置)。‧[att*=value]該屬性的值以指定的值結束比如,如果你想要改變你的博客上的日誌部分元素的背景顏色,你可以使用一個指定每一個class屬性值以「post-」開始的div的屬性選擇器:
程序代碼
div[class="post"] { background-color: #333; }該語句將匹配所有class屬性包含」post」並帶」-」字符的div元素。屬性選擇器的另一個很有用的用處是定位不同類型的input元素。比如,如果你想讓你的文本輸入框使用一個特定的寬度,你可以使用下面的屬性選擇器:
程序代碼
input[type="text"] { width: 200px; }這將匹配所有type屬性值等於「text」的input元素。現在我們可能像為網站上不同的文件類型的鏈接添加不同的圖標,這樣你的網站的訪客就會知道他們將獲得一個圖片、或者PDF文件、或者是一個word文檔等。這就可以使用屬性選擇器來實現:
程序代碼
a[href*=".jpg"] { background: url(jpeg.gif) no-repeat left 50%; padding: 2px 0 2px 20px; }a[href*=".pdf"] { background: url(pdf.gif) no-repeat left 50%; padding: 2px 0 2px 20px; }a[href*=".doc"] { background: url(word.gif) no-repeat left 50%; padding: 2px 0 2px 20px; }在此例中,我們使用了一個定位所有的鏈接(a)的href屬性分別以.jpg,.pdf或.doc結束(*)的屬性選擇器。詳細可查看前端觀察之前的一篇文章《使用CSS選擇器創建個性化鏈接樣式》瀏覽器支持除了Internet Explorer 6,所有的主流瀏覽器都支持屬性選擇器。這意味著,如果你在你的網站上使用了屬性選擇器,你應該確保IE6用戶將仍能獲得一個可用的網站。比如我們的第三個例子,為鏈接添加圖標可以給你的網站帶來另一個級別的可用性,但是如果這些鏈接不顯示任何圖標,該網站仍然還是可用的。2. 子選擇器子選擇器用符號「>」表示。它允許你定位某個元素的第一級子元素。比如,如果你想匹配所有的作為你的網站側欄的div的子元素的h2元素,而不是可能是在div元素內的所有h2元素,也不是div的孫元素(或者更低級別的),你就可以使用下面的選擇器:
程序代碼
div#sidebar > h2 { font-size: 20px; }你當然也可以同時使用子元素和後代元素。比如,如果你想定位只有在body元素的子級div元素內的blockquote元素(比如你想匹配主要的div內的blockquotes,而不是其它部分的:
程序代碼
body > div > div blockquote { margin-left: 30px; }瀏覽器支持和屬性選擇器一樣,子選擇器不被IE6支持。如果你通過這種方式要實現的效果和網站的可用性或總體設計息息相關,你可以考慮使用一個class,或者使用只針對IE6的樣式,但是這將有悖使用子選擇器的目的。3. 兄弟組合有兩類兄弟組合:臨近兄弟組合和普通兄弟組合臨近兄弟組合該選擇器使用加號「+」來鏈接前後兩個選擇器。選擇器中的元素有同一個父親,而且第二個必須緊緊的跟著第一個。臨近兄弟組合可以灰常有用,比如,在處理文字的時候。比如我們想對段落後面的h2標題添加一個頂間距「margin-top」(當然或許你無需為h1標籤後面的h2添加,或者它可能是頁面的第一個元素):
程序代碼
p + h2 { margin-top: 10px; }你甚至可以更加具體,你想定位某個特定的div後面的h2:
程序代碼
div.post p + h2 { margin-top: 10px; }或者你可以搞得更加複雜:頁面的第一個段落的第一行字母顯示為小寫字母。
程序代碼
.post h1 + p:first-line { font-variant: small-caps; }因為可能大部分日誌/文章的第一個段落都會緊緊的在H1標籤的後面。你可以在你的選擇器中借助於h1標籤。普通兄弟組合普通兄弟組合和臨近兄弟組合的工作原理很像,不同的是第二個選擇其無需緊緊跟隨第一個。如果你需要定位所有的某個特定的div裡面並且跟在h1標籤後面的p標籤的話(你可能想要這些p標籤比擬的日誌的標題前面的文字大些),你就可以使用這個選擇器:
程序代碼
.post h1 ~ p { font-size: 13px; }註:這兩個選擇器太像了,所有不是很好理解,可以試一試下面的這個例子:CSS:
程序代碼
p + h2{color:red; } p ~ h2{font-weight:700; }HTML:
程序代碼
咳咳,內容。
標題1
標題2
看看第二個h2的顏色就可以理解了吧?臨近兄弟組合只能匹配第一個選擇器後面的第一個兄弟選擇其,普通兄弟組合則能匹配所有。註:該部分英文原文沒有,是神飛翻譯時自己添加。瀏覽器支持Internet Explorer 6依然不能理解兄弟選擇器,但是,另一種情況,如果你的用戶中只有一小部分是IE6用戶,而且網站的結構不會被破壞或者受到嚴重影響,這是實現很多很酷的效果而無需在你的HTML代碼中添加無用的class或id。4. 偽類動態偽類之所以被稱為動態偽類是因為它們並不存在於HTML中——而是只有當用戶和網站交互的時候才會呈現。有兩類動態偽類:鏈接 和用戶行為。鏈接就是:link 和:visited,而用戶行為包括:hover、:active 和:focus。在本文中提到的css選擇器中,這幾個應該是最常用到的。:link偽類用於鏈接尚未被用戶訪問的時候,而:visited 偽類用於用戶訪問過的鏈接,也就是說它們是相反的。:hover偽類用於用戶移動他們的鼠標在元素上,而尚未觸發或點擊它的時候。:active偽類應用於用戶點擊元素的情況。最後,:focus偽類用於元素成為焦點的時候——最常用於表單元素。你可以在你的樣式表中使用多種用戶行為動態偽類,這樣你就可以,比如,根據用戶的鼠標只是滑過或懸停的時候,為一個輸入框定義不同的背景色:
程序代碼
input:focus { background: #D2D2D2; border: 1px solid #5E5E5E; }input:focus:hover { background: #C7C7C7; }瀏覽器兼容性動態偽類被所有的現代瀏覽器支持,甚至IE6,但是請注意,對於IE系列瀏覽器來說,IE6只允許:hover 偽類應用於鏈接元素(a標籤)而且只有IE8接受:active狀態。:first-child:first-child偽類允許你定位某個元素第一個子元素。比如,如果你想給你的無須列表的第一個li添加一個margin-top,你就可以這樣寫:
程序代碼
ul > li:first-child { margin-top: 10px; }讓我們來看一看另一個例子:比如你想讓你的博客的側欄的H2標籤都有個頂部邊距,以將標題和它們前面的內容區分開來,但是第一個h2不需要,你就可以使用下面的代碼:
程序代碼
#sidebar > h2 { margin-top: 10px; }#sidebar > h2:first-child { margin-top: 0; }瀏覽器兼容性IE6 不支持 :first-child 偽類。根據偽類應用到的設計的不同,它或許不會成為關注的主要問題。比如,如果你使用:first-child 選擇器來移除標題或段落上的頭部或底部的間距,你的佈局在IE6中不會壞掉,它只會看起來有些不同。但是如果你使用:first-child選擇器從一個,比如浮動元素,移除左邊距或右邊距,將會讓你的設計亂掉。語言偽類語言偽類:lang(),允許你匹配一個基於它的語言的元素。你如,你想讓你的網站的某個特定的鏈接根據頁面的語言有不同的背景顏色:
程序代碼
:lang(en) > a#flag { background-image: url(english.gif); }:lang(fr) > a#flag { background-image: url(french.gif); }這個選擇器將會匹配相關的鏈接——如果頁面的語言等於「en」或「fr」,或者以「en」或「fr」開頭並在後面帶個連字符「-」的話。瀏覽器兼容性不幸的是,只有IE瀏覽器中只有IE8支持該選擇器,其它的主要瀏覽器都支持該偽類選擇器。5. CSS 3 偽類:target當你使用錨點(片段標識符 fragment identifier)的時候,比如,http://www.smashingmagazine.com/2009/08/02/bauhaus-ninety-years-of-inspiration/#comments,這「#comments」就是一個片段標識符,你就可以使用:target偽類來控制目標的樣式。舉個例子,比如你有一個很長的使用了很多文字和h2標題的頁面,然後在頁面的頭部有一個對這些標題的索引。如果在點擊索引內的某個鏈接時,相應的標題以某種方式高亮,然後滾動到相應的位置,對讀者就會很有用。很簡單。
程序代碼
h2:target { background: #F2EBD6; }瀏覽器兼容性這一次,IE瀏覽器完全不支持:target偽類,另一個小問題就是Opera 在使用「前進」和後退按鈕時不支持該選擇器。但是其它的各個主流瀏覽器都支持該選擇器。UI元素狀態偽類有些HTML元素有enable 或disabled 狀態(比如,文本輸入框)和 checked 或unchecked 狀態(單選按鈕和復選框)。這些狀態就可以使用:enabled、:disabled 或:checked 偽類來分別定位。那麼你就會想,如果任意一個禁用的(disabled)文本框應該使用淺灰色的背景和虛線邊框:
程序代碼
input:disabled { border:1px dotted #999; background:#F2F2F2; }你也可能會想讓所有選中的復選框有個左邊距(這樣就可以在眾多的復選框中很容易認出來):
程序代碼
input[type=」checkbox」]:checked { margin-left: 15px; }瀏覽器兼容性所有的主流瀏覽器,除了我們常常不報希望的IE系列瀏覽器,都支持UI元素狀態偽類。如果你考慮只是添加附加級別的細節和增強網站的可用性,這個仍然是可以採用的。6. CSS 3 結構偽類:nth-child:nth-child()偽類允許你定位某個父級元素的一個或多個特定的子元素.你可以通過定義它的值為一個整數來定位某個單個子元素:
程序代碼
ul li:nth-child(3) { color: red; }這將會讓ul元素的第三個li元素的文字變成紅色。注意如果在ul裡面有個其它類型的元素(不是li),它也會算作其子元素。你可以使用表達式來定位子元素。比如,下面的表達式將從第四個開始匹配每第三個元素。
程序代碼
ul li:nth-child(3n+4) { color: yellow; }在上面的這個例子中,第一個黃色的li元素將會是第四個。如果也想從第一個開始匹配,你可以使用一個簡單的表達式:
程序代碼
ul li:nth-child(3n) { color: yellow; }這樣的話,第一個黃色的li元素將會是第三個子元素,然後是它後面的每隔第三個。現在想像一下如果你只想匹配列表中的前四個子元素:
程序代碼
ul li:nth-child(-n+4) { color: green; }:nth-child的值同樣也可以被定義為「even」 或「odd」,和「2n」 (第偶數個) 或「2n+1」 (第奇數個)的效果是一樣的。:nth-last-child:nth-last-child偽類基本上和:nth-child偽類的作用相同,但是它從最後一個元素開始算。使用上面的一個例子來看看:
程序代碼
ul li:nth-child(-n+4) { color: green; }不是匹配最前面的四個li元素,該選擇器匹配最後面的四個元素。你同樣可以使用「even」 或「odd」只,同樣與nth-child不同的是,這是從最後面的元素開始算的:
程序代碼
ul li:nth-last-child(odd) { color: grey; }:nth-of-type:nth-of-type偽類和:nth-child也很像,不同的是它只計算選擇器中指定的那個元素。這對定位元素中包含大量不同的元素的情況會很有用。比如,我們想控制一個文本塊中的每隔一個段落,但是我們又想要無視其它元素比如圖片和引用塊:
程序代碼
p:nth-of-type(even) { color: blue; }你也可以使用一些值,就像在:nth-child中使用的一樣。:nth-last-of-type你能猜到它吧?!:nth-last-of-type 偽類可以像前面提到的:nth-last-child一樣使用,但是這次,它將之匹配你在選擇器中指定的元素類型:
程序代碼
ul li:nth-last-of-type(-n+4) { color: green; }我們可以更加的聰明一些,在一個大的塊級選擇器中結合多種這樣的偽類。比如我們想讓文章中的所有的圖片左浮動,除了第一個和最後一個(我們可以假設他們是滿寬的,無須浮動):
程序代碼
.post img:nth-of-type(n+2):nth-last-of-type(n+2) { float: left; }所以在這個選擇器的第一部分,我們從第二個圖片開始定位每一個圖片。在第二部分中,我們定位所有的圖片,除了最後一個。因為這兩個選擇器並非互斥的,我們可以同時使用它們,這樣就可以一下子排除第一個和最後一個元素!:last-child:last-child偽類的作用類似於:first-child 偽類,但是會定位父級元素的最後一個子元素。讓我們假設你不想讓你的日誌的div的最後一個段落也有一個底部邊距:
程序代碼
.post > p:last-child { margin-bottom: 0; }該選擇器將定位class為」post」的元素的最後一個直接子級段落。:first-of-type 和:last-of-type:first-of-type 偽類用於定位一個父級元素下的第一個同類子元素。比如,你可以定位某個特定的div的第一個子級段落(p),並讓其第一行字母大寫:
程序代碼
.post > p:first-of-type:first-line { font-variant: small-caps; }在這個選擇器中,你可以確定你是在只定位class為」post」的元素的直接子級p元素,而且還是匹配第一個子級p元素。:last-of-type偽類與此類似,只是匹配最後一個子元素。nly-child nly-child偽類表示一個元素是它的父級元素的唯一一個子元素。比如說,你有一些盒子(「news」),裡面有一些文字段落,當你有多於一個段落的時候,你想讓文字比只有一個段落的時候小一些:
程序代碼
div.news > p { font-size: 1.2em; }div.news > p:only-child { font-size: 1.5em; }第一個選擇器中,我們定義」news」div的所有子級p元素的字體大小。在第二個中,我們覆蓋之前的字體大小,如果該p元素是「news」 div的唯一子元素的時候,它的字體大小會比較大一些。nly-of-type nly-of-type偽類表示一個元素是它的父級元素的唯一一個相同類型的子元素。這有用什麼用?假設你有一些日誌,每一篇都有個class為」post」的div,他們中的一些有多於一張圖片,但是有些可能就只有一張圖片。你想讓後者中的圖片水平居中,而在其它的有多於一張圖片的日誌中,就將它左浮動。這個需求用這個選擇器就很容易實現:
程序代碼
.post > img { float: left; }.post > img:only-of-type { float: none; margin: auto; }:empty:empty偽類表示一個元素裡面沒有任何內容。這個選擇器可以用很多種用途。比如,你在你的「sidebar」中有若干個盒子,但是不想讓空盒子顯示出來:
程序代碼
#sidebar .box:empty { display: none; }注意,就算」box」div裡面只有一個空格,它也不會被css當作空標籤的,這樣就不能匹配該選擇器了。瀏覽器支持Internet Explorer (直到8.0版本)都不支持結構偽類。Firefox、Safari 和Opera 在其最新版本的瀏覽器中指出這些選擇器。這意味著,使用這些選擇器對網站的可用性和可訪問性是很有用的,或者如果網站的用戶中的大部分是使用IE而且你不想在某些細節上無視他們,最好還是保持使用通用的class和簡單的選擇器來迎合這些選擇器。否則你會被搞瘋的!7. 否定選擇器否定選擇器:not(),可以讓你定位不匹配該選擇器的元素比如,如果你需要定義表單元素中的input元素,但是又不想包括submit類型的input的時候會灰常有用——你想它們有不同的樣式,以看起來像按鈕:
程序代碼
input:not([type="submit"]) { width: 200px; padding: 3px; border: 1px solid #000000; }另一個例子,你想你的日誌的div中的所有段落(p)有比較大的字體,除了表示時間和日期的段落:
程序代碼
.post p:not(.date) { font-size: 13px; }你可以想像這個選擇器能帶給你的潛力了吧,你能夠從你的CSS文件中剝離(剔除)的無用的大量選擇器也被它廣泛支持嗎?瀏覽器支持Internet Explorer在這裡常常是讓我們感到掃興的東西:一點都不支持,甚至在IE8中。這大概意味著這些選擇器將仍不得不等到一些開發者開始不再顧慮將它添加到他們的樣式表中才會普及。8. 偽元素偽元素允許你操作HTML中不是真實存在的元素,比如一個文本塊的第一行或者第一個字母。偽元素在CSS 2.1中就已經存在,但是CSS 3說明書表示他們應該使用雙冒號「::」,以與偽類區分開來。在CSS 2.1中,他們也是使用單個冒號「:」的。瀏覽器會將能夠接受兩種格式,除非這些偽元素只存在於CSS3中。::first-line::first-line偽元素將匹配block、inline-block、table-caption、table-cell等等級別元素的第一行這對在你的文字塊上添加一些微妙的排版細節相當有用,比如,將一片文章的第一行文字改成小寫字母:
程序代碼
h1 + p::first-line { font-variant: small-caps; }如果你專心的閱讀了我們前面的內容,你將會瞭解到上面的語法意味著,緊緊的跟在H1標籤之後(+)的段落會將其第一行文字顯示為小寫字母。你也可以針對相關的div的第一行,而不用針對實際的段落標籤(p):
程序代碼
div.post p::first-line { font-variant: small-caps; }或者更進一步,定位某個特低的div的第一個段落的第一行:
程序代碼
div.post > p:first-child::first-line { font-variant: small-caps; }這裡,「>」符號表示你指定的是post div的直接子級元素,這樣如果段落被包括在第二級div中,它就不會匹配這個選擇器。::first-letter::first-letter偽元素將會匹配一個文本塊的第一個字母,除非在同一行裡面包含一些其它元素,比如圖片。和::first-line偽類一樣,::first-letter通常用於給文本元素添加排版細節,比如下沉字母或首字母。這裡是如何使用::first-letter偽元素創建首字下沉的例子:
程序代碼
p { font-size: 12px; }p::first-letter { font-size: 24px; float: left; }注
意如果你在某些元素中同時使用::first-line 和::first-letter ,::first-letter 屬性將覆蓋從::first-line中繼承下來的某些屬性。如果你不知道W3C規則的話,這個元素有時會產生意想不到的結果:它事實上是使用最長的規則的選擇器!所以如果你計劃使用它的話最好仔細的閱讀一下 (其它選擇器也一樣)。::before 和 ::after::before和::after 偽元素用於在一個元素的前面或後面插入內容,純CSS方法。這些元素將繼承它們將附加的元素的大部分屬性。假設你想在你的頁面中的圖標的描述前面添加文字「Graphic number x:」。你將無需寫文字「Graphic
程序代碼
number」,或者自己手動添加數字:.post { counter-reset: image; }p.description::before { content: "Figure number " counter(image) ": "; counter-increment: image; }
那麼這會產生什麼?首先,我們告訴HTML來創建「image」計數器。比如我們可以添加該屬性到頁面的body。同樣我們也可以給該計數器起任何一個名字,只要你想,只要我們常常使用同樣的名字引用它:自己試試吧!那麼我們想在class為」description」的每一個段落之前添加這一塊內容: 「Figure number 」 — 注意只有我們在引號裡面寫的內容才會被創建到頁面中,所以我們也要添加一個空格!然後,我們就有了counter(image):這將用到我們之前在.post選擇器中定義的屬性。它默認會從數字1開始。下一個屬性在那裡表示計數器知道對於每一個p.description,它需要將image計數器增加1 (counter-increment: image)。它並不像看起來的那麼複雜,而且還會灰常的有用。::before和::after偽元素常常只使用content屬性,來添加一些短語或排版元素,但是這裡我們展示了我們如果以一種更加強大的結合counter-reset和counter-increment屬性的方式來使用它們。有趣的是: ::first-line 和::first-letter 偽元素可以匹配使用::before偽元素生成的內容,如果存在的話。瀏覽器支持如果使用單個冒號的話(比如, :first-letter, 而不是::first-letter),這些偽元素被IE8支持(但是不被IE7或6支持)。但是左右其他的主流瀏覽器都支持這些選擇器。結語乏味的講述終於結束了,現在該你來領悟本文的要義並自己嘗試了: 開始通過創建實驗性的頁面並測試所有的這些選擇器,在有疑問的時候返回這裡並確保總是遵循W3C的規則,但是請不要只是坐在那裡想這些選擇器尚未被完全支持你就無視它們。如果你敢於冒險,或者你不害怕放棄之前的遍地無用和非語義化的class和id,為什麼不嘗試一兩個這些強大的CSS選擇器到你的下一個項目中呢?我們保證你不會回頭的!
參考‧CSS 2 Selectors — W3C‧CSS 3 Selectors Level 3 — W3C‧Comparison of layout engines (Cascading Style Sheets) — Wikipedia‧Generated content, automatic numbering, and lists — W3C擴展資源‧Keeping Your Elements』 Kids in Line with Offspring — A List Apart‧Selectutorial – CSS selectors‧A Look at Some of the New Selectors Introduced in CSS3‧CSS 2.1 selectors, Part 1 and Part 2‧CSS 3 selectors explained‧CSS selectors and pseudo selectors browser compatibility‧10 Useful CSS Properties Not Supported By Internet Explorer‧Styling a Poem with Advanced CSS Selectors關於作者Inayaili de Leon 是一個葡萄牙網頁設計師。她對網頁設計和前端編碼有特別的愛好,而且喜歡漂亮和間接的網站。她居住在倫敦。你可以在Web Designer Notebook看到她的更多文章並follow her on Twitter。
文章來自WOWBOX
文章提供BAYSTARS DESIGN網頁設計公司
國外50多個使用發光效果的網站設計精選
在網站設計中使用發光效果是當下的一個流行趨勢,它常常可以為一個網站帶來一些有趣和漂亮的界面,想要添加一些炫光效果的設計師可以使用Photoshop製作非常有趣的發光效果。儘管之前我們有展示過一些使用發光效果的網站,今天我們將展示更多的此類網站設計,從這些網站中你將會看到不同的實現方式和不同類型的效果。
Design Slurp
Staak
Beautiful 2.0
Levon.co.za
Songkick
Ulrich Egouy
Fred Maya
Pixelpanzer
Rareview
Strutta
Yomenz
Foehn
Iluminasom
AeroFX
Camp Creative Group
Icebrrg
Aurelien Reaut
365 Days of Astronomy
Pixelight Creative
Cosmive
Oakes Design
FMCommunication
Vogue
Drew Wilson
Ciplex
You and I Graphics
Sebcreation
Designed by Dave
James B
OKB
Stuart Anderson
Sugarrhyme
Mozami
Studio 7 Designs
UbicWay
Dreamwire
GCN
Dale Anthony
Elite by Design
45 royale
Sony CES 2009
Enso CMS
CultureShock
Newism
Timmy K
Marcos Xotoko
chopchop
LogoFury
Vodaco Agency
Designphunk
SoSoJuicy
Tim Adler
3AKIS
文章來自WOWBOX
文章提供BAYSTARS DESIGN網頁設計公司
日期垂直排列的兩種技巧
程序代碼
程序代碼
程序代碼
.postdate { position: relative; width: 50px; height: 50px; float: left; } .month, .day, .year { position: absolute; text-indent: -1000em; background-image: url(/wp-content/themes/ljq/images/dates.png); background-repeat: no-repeat; } .month { top: 2px; left: 0; width: 32px; height: 24px;} .day { top: 25px; left: 0; width: 32px; height: 25px;} .year { bottom: 0; right: 0; width: 17px; height: 48px;} .m-01 { background-position: 0 4px;} .m-02 { background-position: 0 -28px;} .m-03 { background-position: 0 -57px;} ... more like this ... .d-01 { background-position: -50px 0;} .d-02 { background-position: -50px -31px;} .d-03 { background-position: -50px -62px;} ... more like this ... .y-2006 { background-position: -150px 0;} .y-2007 { background-position: -150px -50px;} .y-2008 { background-position: -150px -100px;} ... more like this ... 二、利用Text Rotation來實現Jonathan Snook 在他的文章《Text Rotation with CSS》中提到用Text Rotation來實現這種效果。這裡對其作簡要的描述。如今,很多主流的瀏覽器如Webkit和Firefox(從3.5開始)都支持旋轉HTML元素。那麼要使其垂直排列,就可以利用該屬性。但須為每種瀏覽器加上前綴。
程序代碼
-webkit-transform: rotate(-90deg); -moz-transform: rotate(-90deg); 對於IE瀏覽器,可以使用一個稱之為BasicImage 的濾鏡來達到目的,該濾鏡能夠旋轉任何具有layout屬性的元素。但字體較之於使用圖片來說,並不顯得平滑。
程序代碼
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
該濾鏡可以接受四個屬性值0、1、2、3,其對應旋轉的角度分別為0、90、180、270。儘管它還具有mirroring、masking、greyscale 等屬性,但在此對我毫無意義。在Jonathan Snook的這篇文章的留言中,Ashish 提到在IE中使用css的一個屬性writing-mode:tb-rl可以得到同樣的效果,本人做過測試,的確可以使文本垂直排列。但與旋轉文本略有不同,主要體現在文字起始的方向上。另外,本人在IEtest中測試IE8,使用BasicImage好像不能生效。查查示例三、總結對比兩種方法。很明顯,第一種方法無論是瀏覽器支持上還是視覺效果的美觀上都強於第二種,唯一感到不足的是css代碼較長。第二種方法雖不甚完美,但其實現過程並不複雜,不需要任何圖片,但作為一種開拓思路的嘗試也未嘗不可。
文章來自wowbox
文章提供Baystars Design網頁設計公司
自適應CSS佈局—流動佈局新時代
固定&流動&彈性佈局:哪一個適合你? 這篇文章討論每一種佈局類型的優點和缺點。其中的任何一個可以用來創造一個成功的網站佈局,只要保持其可用性就行;
靈活佈局:未來的挑戰 討論靈活佈局在未來的挑戰;
屏幕分辨率和更好的用戶體驗 介紹屏幕分辨率的問題,然後普通用戶的個人腳本。一、使用網格的流動佈局我們大多數人都聽說過設計固定寬度網頁的 960網格系統 ,使用960網格系統使得固定寬度的設計比流動佈局更可取。但是,有一種方法可以創建一個基於網格的彈性佈局。從技術上講,彈性佈局的代碼結構不同於流動佈局,但它為用戶提供的幾乎是相同的效果。什麼是流動佈局?流動網格是通過智能的使用div、百分比和簡單的數學計算來創建的。這種理念來自於Ethan Marcotte ,他認識到「em」比字體大小進步。我們在這重溫這個基本概念,但要對該方法有一個全面而詳細的瞭解,請參閱「流動網格」,這是一篇全面的關於建立基於網格的彈性佈局的教程。其理念是使用相對尺寸、結合百分比和em,用簡單的分割以找到相對應的像素寬度,而這些寬度是在固定寬度設計中使用的。優點:
這種方法使你擁有一個網格佈局,這看起來可能僅固定一次寬度;
用戶可以使用預設的字體大小查看這個佈局,並且保持其比例大小;
佈局樣式跨瀏覽器兼容;
一旦理解之後,流動設計中的大多數問題將容易修復。 如何讓創建一個流動佈局?創建流動佈局的第一步是創建一個首選的固定寬度的模擬,這樣一來,設計師能看到其比例,然後使用神聖的比例、平衡和合適的間距技巧。從上述簡單的佈局中,我們可以看到如何在css中規劃代碼。960px是我們的固定寬度,對於任何小於該尺寸的分辨率屏幕,我們將迫使水平滾動條出現。所有內容在一個880px的wrapper裡,在左右兩側有40 px的margin,元素間有20px的間距。在我們思考其可用性之前,一切安好。這種類型的佈局可能適合很多用戶,但未必適合每一個人。因此,我們將其轉換成流動佈局,如果欲使這一佈局在任何分辨率下保持其比例,我們必須將960px的寬度改為100%,然後計算出與880px、640px、200px等值的百分比。這需要一些理性思考,在我們模擬的固定寬度設計中,在960px的設計中,整個wrapper是880px,如果需要與其等價的百分比,我們所要做的是相除。800pixels / 960pixels = 0.91667採用十進制,將其轉換成百分比,得到的是91.6667%。因為當前瀏覽器處理百分比的差異,它不會很明智的將所有小數位數應用到佈局之中,瀏覽器要麼向上取,要麼向下捨。因此,我們需要一個整數,既然它更接近於92%,我們就向上取,稍後因為額外間隙的存在,我們需要向下捨,這很容易做到。
程序代碼
#wrapper { width: 92%; }對於content和sidebar區域,我們如法炮製,但需保持正確的比例。因為這個區域在880px的wrapper內,我們需要找到相對於這個區域的百分比。640 pixels ÷ 880 pixels = 0.727272 › 73%220 pixels ÷ 880 pixels = 0.25 › 25%
程序代碼
width: 73%; } #sidebar { width: 25% ; }我們將實際內容區域的寬度降至72%,這樣我們的佈局就不會破壞。因為它位於導航欄的旁邊,我們不希望它太寬。在處理流動設計的比例時,這是一個非常簡單的概念,也是更有效的處理方式。借助於這樣的技巧,設計者沒有理由說不能保持其比例,美觀的佈局被破壞。關於margin設計者可以用不同的方法處理margin,一種方法是計算margin的百分比(此例中為200px/880px);另外一種是設置固定的margin,在我們的例子中,硬性大小為20px。兩種方法各有優劣,margin使用百分比,設計師承擔者在大分辨率屏幕下margin太大的風險但能保持完好的比例。用固定的margin在比例的保持上有輕微的缺陷,但是,無論屏幕分辨率為多大,margin將維持不變。二、自適應內容該流動設計另外一個常見問題是:儘管它們適應很多分辨率的屏幕,但如果分辨率太小(如手機或PDA)或超大,看上去就有點滑稽了。在分辨率為240的PDA屏幕上一個三欄佈局看起來非常混亂。為了解決這個問題,我們可以使用一項技巧使內容自適應特定範圍的分辨率屏幕。幸運的是,我們可以利用上面的技術來保持我們的比例,然後增加該項技術以得到更好的可用性。自適應內容流動佈局大多數流動佈局在分辨率為800×600的屏幕中看起來很大很寬--高達1280px。但是,我們可以稍稍突破一下,針對800px-1024px、1024px-1280px、1280px以上的屏幕定制略微不同的佈局。同樣,也可為640px-800px、320px-640px、240px-320px、240px以下的屏幕自定義調整。The Man in Blue曾使用過這樣的技巧。上面的例子有兩個單獨的樣式:一個針對分辨率超過800px的屏幕;一個針對分辨率小於800px的屏幕。這種技巧用不同風格的佈局取更好的適應不同分辨率的屏幕。Marc Van Den Dobblesteen』s layout example, Switchy McLayout 用這些樣式提供了一個完美的例子。優點設計者可以更精確的看到,在不同分辨率屏幕下,其設計是什麼樣子; 無論是在什麼平台上查看,其更好的遵守了間距和平衡的設計原則; 完美的處理了最小和最大分辨率。創建自適應內容流動佈局創建這種類型的佈局,我們要做兩件事:為每一範圍分辨率的屏幕設立單獨的樣式;第二是確定用戶屏幕的分辨率。對此,Kevin Hale 在文章 Dynamic Resolution-Dependent Layout Technique 中作過詳細的介紹。第一步是創建一系列可替代的佈局文件。例如,一個稱之為narrow.css,其針對小分辨率的屏幕。另一個可稱之為normal.css,適應於傳統的分辨率屏幕,第三可稱之為wide.css,將處理較大分辨率的屏幕。我們可以使用js根據預設的樣式表作簡單的改動,Dynamic Resolution Dependent Layouts 在演示頁中使用js解釋了如何使用它,於其它類型佈局一樣,所有樣式和js文件都放在頭部。
程序代碼
注意到所有三個鏈接樣式單的title屬性:「narrow」、「default」、「wide」,在js源文件中查看DynamicLayout() 函數。可以看到,我們會很容易的根據每個title屬性來調用相應的樣式,以及如何改變相應的寬度。
程序代碼
function dynamicLayout(){ var browserWidth = getBrowserWidth(); // Narrow CSS rules if (browserWidth <>= 640) && (browserWidth <= 960)){ changeLayout("default"); } // Wide CSS rules if (browserWidth > 960){ changeLayout("wide"); }}這種技術很容易實現,能夠與其它技術一起創建更多的可用性佈局。仔細查看js,可以看到更多細節。相似的技術對於類似的技術,可以參閱 Brand Spanking New 的 Dynamic layouts with adaptive columns,他使用了大致相同的代碼,但略微不同,幸好有更多的選擇和腳本實例得到同樣的自適應內容。要下載此版本自適應內容的腳本,請到 Dynamic layouts with adaptive columns。這種概念並不難,關於此技術每個開發者都有自己的腳本,Clagnut.com博客的回帖中有更多關於自適應內容的佈局和腳本--Variable fixed width layout,在其回帖中甚至有一種技巧無需任何腳本--CSS Drop Column Layout。三、 流動佈局中的圖像在流動佈局中開發者最關心的是處理圖像和內容,它們需要一定的寬度。大多數情況下,我們希望我們的圖像盡可能的大,至少在太小時應防止任何令人尷尬的空白,在固定寬度的佈局中,可手動調整,客服這些問題很容易。但是,在流動佈局中,圖像區域的寬度是不斷變化的,這些問題就在此出現了。自動雜誌版面設計這個解決方案需要一些聰明的數學知識和PHP,在Harvey Kane 的 Automatic Magazine Layout 文章中有全面的解釋(包括數學)和可下載的源代碼。標題由圖像在雜誌中如何呈現來決定:有條理且總是完美對齊。當然,一本雜誌版面的設計師都必須經過一定的過程來實現這種效果,包括調整和手動放置。對我們來說,這一技巧可以實現我們的效果,下面是腳本實現這一效果的第一個例子。正如你所看到的那樣,非常漂亮。但是,如何使用流動佈局使其更具可用性?Harvey Kane 給了我們必須使用的腳本。
程序代碼
# include the class filerequire_once('magazinelayout.class.php');# Define the width for the output area (pixels)$width = 600;# Define padding around each image; this *must* be included#in your style sheet (pixels)$padding = 3;# Define your template for outputting images# (Don't forget to escape the &)$template = '
程序代碼
Pixel width = 內容區域百分比 x 瀏覽器寬度 $width = 0.70 x getBrowserWidth();這是很基本的數學知識,是流動佈局中處理圖像最基本的方法,調整PHP腳本自動尋找圖像的像素值。這樣,在一個流動佈局中,你就能很好的處理圖像或其餘已經設置寬度的內容。四、jQuery圬工不去考慮不斷改變屏幕分辨率時css中的存在的許多問題。倒有一個共同的問題是許多設計師更可能面臨的--多重內容盒子。當有許多浮動元素時,一些尷尬的空白會出現在高度變換的區域之間,下面是這方面的一個例子:如果我們打算在一個固定寬度的佈局中使用多個div,固定很容易:只需調整所有div在合適的位置就行,在流動設計中用這種方式處理多個divs似乎不可能。佈局的每一次調整,在新的點上將出現不同數量的空白。在較小分辨率下查看相同的佈局,佈局變成了兩欄。但是,在這種情況下,我們得了不同的空白。任何設計師覺得這是一個尷尬的問題。通常情況下,因為沒有可行方案解決此問題,這種佈局被強行設置成固定寬度。幸運的是,這個問題不是不可能解決,而是相當容易--源於 David DeSandro's jQuery Plugin: jQuery Masonry 提供的方法。jQuery圬工是什麼? jQuery圬工是一個非常容易使用的插件,用David DeSandro 自己的話說:「將jQuery看作css浮動的對立面,浮動元素的排列是先橫向後縱向,圬工排列是先縱向後橫向,其結果是在高度變換元素的垂直方向上沒有間隙,就像是一座石頭強。」如何使用jQuery masonry在上面的例子中,所有盒子被放置在 ID為「item」的段落之中,「item」設置了30%的寬度,並向左浮動,所有這些放置在寬度為90%的# wrapper中,一旦段落的寬度達到#wrapper的寬度,無論是否有空白留下,它將新起一行。下載 jQuery Masonry 插件,並對#wrapper應用masonry()方法,就很容易修復它。$('#wrapper').masonry();下面兩張圖片顯示了該插件的力量。第一個是在大分辨率屏幕上的佈局情況,第二個是同樣的佈局,在小分辨率屏幕中查看,它折疊成了兩欄。該插件的一個bug和一個修復方法使用該插件,如果用戶縮放瀏覽器,你會注意到div層保持在原來的位置,但是刷新後,它有完好。但用戶不知道需要書信去修復該問題。因此,按下面的方法改變html代碼將很容易的修復該問題。
程序代碼
現在,用戶每次改變瀏覽器的大小,瀏覽器會自動刷新並重載整個腳本。五、jQuery & CSS 智能欄上面的修復方法解決了高度變換的div的問題。但對於想使用相等高度的佈局來說,這未必是一個好的辦法,Soh Tanaka 在他的 SohTanaka.com 網站上提供了一個jQuery腳本和一個智能的css使流動佈局的欄能很漂亮的折疊和擴展,查看演示頁Smart Columns w/ CSS & jQueryjQuery & css智能欄是什麼?智能欄是一個腳本,為了得到更好的視覺效果,它改變divs的寬度,並決定在瀏覽器當前頁面尺寸下會呈現多少欄?對於用戶調整瀏覽器也很完美,而不是進入網頁時僅僅照顧瀏覽器的尺寸。腳本去掉每欄多餘的空白--這可能是有瀏覽器的不同寬度導致的,然後用jQuery使欄均勻分佈。如何使用智能欄在Soh Tanakas博客的 Smart Columns w/ CSS & jQuery回帖中含有所有代碼,它可以用列表設置,每個li作一個塊。
程序代碼
- Block 1
- Block 2
- Block 3
程序代碼
結論所有這些技巧可以實現融到一個設計之中去創造一個非常友好的流動佈局。流動網格智能運用可創建一個自適應佈局,其比例忠實於三等分法、平和和其它設計原則;自適應技術通過個性化定義處理分辨率大小的異常。因此,設計師一定要為用戶提供完美的外觀,第三個技巧能很好的保證圖像和其它設定寬度的內容區域在屏幕上不會太大。我們希望,先進的流動佈局將是版面設計中的一個新時代,隨著各種寬度屏幕的出現這些技術獲得重視只是一個時間問題。更多資源Fluid Grids Switchy McLayout: An Adaptive Layout Technique Dynamic Resolution Dependent LayoutsAutomatic Magazine LayoutIn Search of the Holy Grail Variable Fixed-Width Layout CSS Drop-Column Layout 作者:Kayla Knigh原文地址:Adaptive CSS-Layouts: New Era In Fluid Layouts?譯文地址:http://www.denisdeng.com/文章所涉及的圖片均來自http://www.smashingmagazine.com/
文章來自blueidea
文章提供Baystars Design網頁設計公司
CSS :focus 偽類
定義:focus 偽類在元素獲得焦點時向元素添加特殊的樣式。註釋:IE 瀏覽器不支持此屬性。說明這個偽類應用於有焦點的元素。例如 HTML 中一個有文本輸入焦點的輸入框,其中出現了文本輸入光標;也就是說,在用戶開始鍵入時,文本會輸入到這個輸入框。其他元素(如超鏈接)也可以有焦點,不過 CSS 沒有定義哪些元素可以有焦點。例子
程序代碼
a:link {color: #FF0000} /* 未訪問的鏈接 */a:focus {color: #00FF00} /* 獲得焦點的鏈接 */註釋:偽類的名稱對大小寫不敏感。註釋:偽類可與 CSS 類配合使用:
程序代碼
a.red:visited {color: #FF0000}CSS Syntax
如果上面這個例子中的鏈接已被訪問過,那麼它會顯示為紅色。TIY 實例超鏈接::focus 的使用 本例演示如何使用 :focus 偽類(無法在 IE 中工作)。
文章來自wowbox
文章提供baystars design網頁設計公司
EverNote靠2%會員養出3000萬年營收,堅持「免費網站就是最佳行銷策略」
Facebook目前在台灣的總會員數今早查看為1,973,920人,也就是說,這周隨時都會破200萬會員大關,讓Facebook正式往台灣龍頭網站再邁進一步。雖然成長已經趨緩(上周「只」成長15.75 %),但這數字也驚人的高達27萬人,而且至今這周的增速依然是排行世界第一!
Facebook有在賺錢嗎?它號稱的年營收5億美元夠每日支出還平攤累計虧損嗎?我們不用為它擔心,因為現在已經有太多人天天在使用它,它已經成為很多人每天的「習慣」。
「習慣」,是網站收錢的大關鍵之一,但我們講獲利講久了,很多關於「習慣」的最重要的事情竟渾然不覺的忘掉了!昨天《紐約時報》提到另一個開了一年半的網站,首次透露這個小網站的賺錢狀況,其中一些做法,令人感覺到如一桶冷水澆下,清醒了一大半──
這個網站叫「EverNote」,它是一個讓你「隨手記」的網站,這類網站當初一大堆跑出來,而EverNote和許多站一樣上網開始,你可以看到哪個好網站,隨手記幾筆可抓到EverNote的主機裡,慢慢的、慢慢的,EverNote做到連從手機拍照也可以直接上傳,後來連手機拍照照到「名片」它也可以辨識其中字元……這家公司顯然做得很專注,一個一個功能慢慢做,最後集了所有功能、無論何時何地都有機會使用EverNote,企圖要完完全全的取代你手邊的小紙條、便利貼!EverNote對《紐約時報》透露,開站一年半,目前已有140萬名會員,平均一天增加4500會員,但這數字只能算「ok」而已。
不過,有趣的不是EverNote的「流量」,而是他們的「收入」──
據說,EverNote在上一個月(七月),從客戶賺來的錢就高達7萬9千美元(台幣250萬元),以這個月來看,從客戶直接收到的年營收至少就有3000萬台幣左右,這還不包括EverNote自己收的廣告錢。這筆收入,讓這間公司雖然目前完全沒有名氣,但和其他同流量會員水準相比,EverNote真的還算活得「好好的」!
為何它可以賺到這些錢?EverNote採用「Freemium」收費模式,免費加入會員,讓你隨便用,但,一碰到有些特別的premium服務,一個月必須付5美元的費用(台幣160元),一年要付45美元。這樣算下來,EverNote的付費會員大約在1.6萬人之譜,只佔了他們總會員數的2%不到。
你說,這就是標準的Freemium,有何了不起?不,這次,EverNote的創業家接下來還透露了更有趣的數字:Evernote發現,他們的免費客戶有近75%在頭四個月之內就會待不住走掉了,待了四個月以上的只有少數人,他們計算,大約50萬名使用者(雖然這數字若作加減法有點搭不上),重要的是,這50萬名「倖存」的「舊會員」願意轉而付費的成長速度,竟然高過於EverNote「新會員」的成長速度。
什麼意思?
他們發現,在頭一個月,只有0.5%的會員願意轉換成付費會員,但,當一位使用者玩了一年後,他變成有高達4%的機會轉換成付費會員。EverNote的創辦人說,他們看線圖,發現這個比率隨著時間愈長還會再提高,畢竟他們只開一年半,不知道接下來會發生什麼事,但他們預估,假以時日,如果舊會員繼續待著,他們終於打開錢包轉為付費會員的機率應該可望達到22%左右,這五年的光景,好好的款待他們,愈來愈多舊會員會加入!這點很有道理,使用者使用EverNote愈久,就會愈仰賴EverNote;使用EverNote愈多,會員所剩的容量亦愈小,愈需要轉換成付費會員。倘若從目前Active User的平均營收貢獻來看,一月前加入的使用者今天平均只貢獻了3 cents,一年前加入的使用者平均每人卻貢獻高達35 cents,而成本也會隨著服務者愈多而降低,EverNote服務一個月前加入的使用者平均變動成本為每月50 cents,服務一年前加入的使用者平均變動成本卻只剩9 cents。EverNote表示,如果這樣算下去,這個網站到了2011年的一月就可以損平!創業家說,從這個角度來看,他們可以不必再擴展主機、不必再大舉吸引新使用者,只要繼續「擁有這群『舊客戶』」,繼續服務他們,有任何一人懈怠了就立刻打電話給他們鼓勵、催促,總有一天……可以賺到錢!
這位創業家之前曾成功的賣過另外兩家公司,他對於他自己在做什麼顯然非常清楚,他說了一句話:「我們的產品,就是了我們的行銷!」(our product is our marketing)。這麼直接了當的講出來,就如同Chris Anderson這次在《Free》一書說「免費就是最好的定價策略」是同樣的大膽。這位EverNote創業家的意思是,他先免費推出它的產品EverNote,用這個免費的產品「當廣告」,得到的那些浩浩蕩蕩140萬名會員是「假」的,真正的客戶是那些用了四個月以上還繼續用的1萬6千名核心使用者。這個免費的產品,一開始只像是一個「廣告」,等到四個月以後,這個產品才變成真正的產品,服務那1萬6千名使用者!
「產品就是行銷」,EverNote的策略,也完全反映在它的「付費切分」上面。看,EverNote如何設計Premium(付費)和Free(免費)的「切分」呢?依這一頁的比較表,EverNote付費會員主要是付「空間」,免費版本只給40 MB空間,大約可塞2萬則文字記錄、400則手機上傳照片、270則網路影片、40則錄音檔還有11張超大張相片。付費之後,則可享有500 MB的空間,可塞25萬則文字記錄、5000則手機上傳照片、3300則網路影片、450則錄音檔、以及150張超大張相片。你說,這些數字花花亂,我看起來都一樣!但這就是EverNote設計的巧妙處,他們故意設了「好多關卡」,有的使用者可能用EverNote來當便利貼,一天放100張,一個月不到就不夠了;若有的是習慣照手機然後上傳,一天照20張,一個月不到就不夠了;或許你喜歡把自己相機上傳,那只要上個10張就到「頂」了──當你真的碰到「頂」的時候,你就會「非買不可」!
除了空間以外,EverNote還在各處設下一大堆「非數字關卡」,譬如,付費版做檔案同步僅限於比較簡單的PDF檔、照片檔等等,若要和其他人分享你的筆記對方永遠只能看不能幫忙編輯、而且若要搜尋PDF檔案也不行,當你使用EverNote時有太多廣告跳出來也不要怪他們……。以上這些,若有任何一項你「想要」?那麼,只要一個月5元交出來給EverNote,EverNote就會讓你更好!
EverNote給網站創業家或網路經營者一些信心!一般來說,如果我們網站只有5萬會員,我們滿腦子想的都是:「如何增加到50萬?」EverNote則說,不應該這樣想!他們已經證實,如果你的網站想賺錢,那麼,應該更加強服務的並不是「新人」,而是「舊人」啊!只要把握,原先那5萬名會員之中的那常常回來的5000人,好好的把握住他們,以後他們一年隨便付個5000台幣(一個月不到500元),這,就是2500萬台幣的年營收了!
5000人就足夠創造2500萬台幣年營收,這一點,讓創業家很心動了。
後記:EverNote另一點厲害之處在於,它在適當的時機點,透露了他們一些關鍵數字,這數字剛好「證實了理論」並甚至更深刻的闡述了理論。現在EverNote剛好搭著Chris Anderson的《免費》一書出來,這個網站自然而然帶著這些「刻意透露的數字」在《紐約時報》版面上成功「搶灘」,以後大家提到《Free》,就一定會提到EverNote, EverNote有機會和當年的Flickr一樣,搭著這些演講、新聞一波一波的傳出去,這一招似乎也隱隱的呼應了他們的「產品就是他們的行銷」策略。各位如果手上有網站,若有什麼數字可以透露,證實了什麼理論,也請email給我,我很願意在文章、專欄、推薦序之中隨手一提,也請您說明一下這些數字證明了什麼理論,有機會會幫您拉抬一下,感謝。
文章來自mr6
文章提供BAYSTARS DESIGN網頁設計公司
