顯示具有 Front-End 標籤的文章。 顯示所有文章
顯示具有 Front-End 標籤的文章。 顯示所有文章

2014年12月12日 星期五

為什麼人們不捲動頁面?廣告放在頁面上方真的比較有效嗎?




Luke Wroblewski 在 Twitter 上從 12/09 開始提出了一個 "There is no fold" 的討論

探討的是現代跨裝置網頁設計 (contemporary multi-device web design) "捲動" (scroll) 跟 "摺疊" (the fold) 的迷思 (Myth)

我們先來認識一下 "the fold" 英文的解釋是 the typical height of a browser window, about 700 pixels,用比較白話的講法可以說是 "第一屏",大部分網頁在瀏覽器內可以看到的網頁高度,平均在 700 pixel 左右。

因為剛好最近在研究,我想順便把 Luke 的 Twitter 整理一下給大家參考。

(內嵌 Twitter 原文,請稍微等候一下,別急著滾動 :P )


Part 1
Luke 先提出滾動深度的現象給大家參考,人們常常在整個頁面還沒有 load 完就開始捲動頁面,大約有7成的使用者會只會看第一屏看到的東西
橫軸是網頁由上往下的 pixel 高度 。



Part 2
這張在講的使用者願意去互動的秒數(y軸)跟滾動的高度(x)


延伸閱讀:網頁的捲動行為研究
http://blog.chartbeat.com/2013/08/12/scroll-behavior-across-the-web/


2013年2月26日 星期二

基礎 HTML&CSS - 課程2:Elements & Sematics

課程來自: http://learn.shayhowe.com/html-css/
整理方式:Google Docs

語義化的重要性

2013年2月1日 星期五

進階 HTML&CSS - 課程3:Complex Selectors

閱讀文章要學會整理文章重點,才能好好吸收!
課程來自: http://learn.shayhowe.com/advanced-html-css/
整理方式:Google Docs

小小心得:selector種類越來越多,適用的瀏覽器也不同,瞭解有哪些基礎跟不同用法的 selector,未來使用更能活用。


2013年1月31日 星期四

進階 HTML&CSS - 課程2:Detailed Positioning

閱讀文章要學會整理文章重點,才能好好吸收!
課程來自: http://learn.shayhowe.com/advanced-html-css/
整理方式:Google Docs

小小心得:熟悉基礎CSS觀念很重要,float大家愛用,版面配置用起來最常出問題的也正是float,配合 position 的定義,我們更該小心使用跟注意!


http://learn.shayhowe.com/advanced-html-css/

進階 HTML&CSS - 課程1:Performance & Organization

閱讀文章要學會整理文章重點,才能好好吸收!
課程來自: http://learn.shayhowe.com/advanced-html-css/
整理方式:Google Docs

2013年1月17日 星期四

來談談 z-index


作者:Philip Walton
文章:What No One Told You About Z-Index
http://philipwalton.com/articles/what-no-one-told-you-about-z-index/



看到這篇文章寫得很好,決定用來節錄一下重點

每當 web developer 想要移動HTML上面的元素的前後順序時,第一個直覺都是改變 z-index 數字的大小,但其實 z-index 並沒有想像中這麼簡單。

這個作者請你做了一個實驗,下面是一個簡單的區塊堆疊應用

Check out this Pen!
你要如何讓紅色的區塊被壓到最下面,但你不能

  • 不能改變 HTML 結構
  • 不能修改 z-index 大小
  • 不能修改 position 的值

想到結果了嗎?

Check out this Pen!

你猜對了嗎? 作者只加了一段CSS

div:first-child {
  opacity: .99;
}


如果你感到非常疑惑,不要氣餒,因為作者告訴你:W3C的 z-index 規則 其實真的很複雜!


堆疊的規則

當 z-index 跟 position 屬性沒有共同存在的時候,元素堆疊的規則可以說是簡單的,就是HTML堆疊的先後。

當 position 屬性存在的時候,任何有 position 的元素會顯示在,沒有position的元素前面 (意思是除 static 之外的 position 屬性,relative、absulute....)

當z-index 跟 position 共同存在的時候,這規則就難了,我把作者整理的順序放在下面

由後往前排序是這樣:
  1. The stacking context's root element
    堆疊內容的 root 元素
  2. Positioned elements (and their children) with negative z-index values (higher values are stacked in front of lower values; elements with the same value are stacked according to appearance in the HTML)
    有 position 屬性的元素(包含子元素) + 負數的 z-index 值 (數字越大越前面)
  3. Non-positioned elements (ordered by appearance in the HTML)
    沒有 position 屬性的元素
  4. Positioned elements (and their children) with a z-index value of auto (ordered by appearance in the HTML)
    有 position 屬性的元素(包含子元素) + z-index:auto 
  5. Positioned elements (and their children) with positive z-index values (higher values are stacked in front of lower values; elements with the same value are stacked according to appearance in the HTML)
    有 position 屬性的元素 + 正數 z-index 值(數字越大越前面)


最後,作者說明了上面的例子,整體的順序到底是怎麼改變的

原本的順序是這樣的:
<div><!-- 1 -->
  <span class="red"><!-- 6 --></span>
</div>
<div><!-- 2 -->
  <span class="green"><!-- 4 --><span>
</div>
<div><!-- 3 -->
  <span class="blue"><!-- 5 --></span>
</div>
經過修改後的順序變成這樣:
<div><!-- 1 -->
  <span class="red"><!-- 1.1 --></span>
</div>
<div><!-- 2 -->
  <span class="green"><!-- 4 --><span>
</div>
<div><!-- 3 -->
  <span class="blue"><!-- 5 --></span>
</div>
原本CSS的寫法,我們只有兩層的堆疊內容,root 跟 span.red
當我們在 span.red 的父層 div 設定了透明度 opacity:.99 (div:first-child { opacity: .99; })
我們讓原本的堆疊變成了三層
第一個 div 跟他的子元素都不會吃到 .red 的 z-index 跟 position
他們變成沒有 position 跟 z-index 的元素了
他們的堆疊順序變成按照原本的 HTML 的結構來計算
所以作者用 1 跟 1.1來代表他們後來變成的順序


感謝這位作者,我看完這篇文章頭都昏了,但也終於弄懂 z-index 的層級判別方式

請不再在隨便相信文章裡面寫「這是 z-index 的 bug」了!