close

CSS,一個控制網頁上HTML的樣式,CSS在設計網頁是非常重要的,因為HTML中的原素排列方式是從上到下的,但是我們現在網頁看起來排版都很漂亮,這是因為CSS的幫忙;CSS宣告這個HTML原素要被排在什麼地方,再由瀏灠器來達成要求,組出現在我們看到的網頁。

CSS因應時代的進步,CSS也進步到CSS3,其實說CSS3,可能有人不清楚,不過要是說要響應式網頁(Responsive),大家應該比較清楚,因為它可以說是近來網頁設計的主流,它可以配合各種畫面的大小,自動調整成適合的版面,更重要的是,它能讓網頁的設計者,只需要寫一次程式,就可以配合電腦、平版、手機等各式不同的畫面。而響應式網頁,主要就是建立在CSS3之上。

CSS是如此的重要,所以如果能即時在網頁上調整,那不知道可以節省多少的時間,尤其是遇到不確定的語法時,更是方便,本篇會大幅介紹Chrome如何即時處理CSS的調整。

接下來我們就來試CSS怎麼即時調整吧,我們一樣以Chrome開啟Google的新聞網頁,https://news.google.com.tw/,並且按滑鼠右鍵後點選「檢查」,進入到下圖的情況。

利用Style方式調整CSS

假設我們的目的是:要擴大圖片列下方的空白距離。

  1. 將滑鼠移到右邊如圖的位置,點一下滑鼠左鍵,即可針對這個HTML元素做CSS設定。

  1. 設定margin-bottom:35px,就可以達到效果,下圖可以看到圖片下方的空白加大了,同時也可以看到它的HTML語法有改變,多了一個「style:”margin-bottm: 35px”」。

重點說明

其實Chrome的這個功能有點嚇到我了,因為真的很方便,而且不只如此,Chrome本身有提供輸入建議,所以你可以發現,當輸入到一半時,它就幫你把可能要輸入的內容就跳出來,供君選擇;而且不只是左邊的輸入建議,包括右邊(參考上圖的滑鼠位置)也有輸入建議,你可以透過鍵盤的上、下按鍵,調整你要的高度,或是選擇你想輸入的內容,Chrome也即時的幫你把畫面做調整,真的是非常方便。

 

尋找class對HTML的影響

有接手過他人程式的經驗的話,都會遇到這種狀況,就是根本不知道什麼東西寫在那裡,或是什麼東西造成什麼影響。

CSS也一樣,因為HTML的父子關係架構,加上每個元素各自有自己的class來控制這個HTML元素,造成HTML的子元素會受到來自不知道那一個父輩元素的影響,完全搞不清到底是那一個CSS,造成瀏灠器要將這個HTML顯示成這種樣式。因此,我們接下來介紹在Chrome中怎麼找出什麼class會對我們的HTML造成影響。

示範之前,一樣請各位開啟瀏灠器,進入「檢查」的畫面中,不過這次我們示範用的範例改為facebook的登入頁。

下方範例的目的:找出影響下方紅框字體大小的,有那一些class,並且試著取消這些class造成的影響。

  1. 首先,因為影響文字大小的CSS是font-size,所以我們直接利用畫面右下方(紅框)的部份,來找出用那些class有宣告font-size。

  1. 很幸運的,第一個class就有用到font-size,將滑鼠移到上圖的位置,可以看到font-size前方有一個勾選的框框跑出來,所以我們再試著將它取消勾選看看。

取消勾選後,發現了幾個現象:

  1. 「註冊」的文字變小了。

  2. 取消勾選後的font-size,被用刪除線註消了。

  3. 下一行的font-size:15px設定,在上一張圖原本是用刪除線註消的,結果在這一張圖是被開啟的狀態。

第一個和第二個現像可以理解,因為這是我們原本預期的事情,但造成第三個現象的原因是什麼呢?其實是因為在這一個HTML元素裡,定義了太多的class,甚至會有來自父元素的影響,而這些class如果有重覆的定義,就會有順序的問題(詳細可上網參考「css 套用順序」的關鍵字),而我們把某一個class取消後,Chrome會根據CSS的套用順序,自動將下一個CSS開啟,這也是第三個現象的原因。

重點說明

透過進行取消勾選的動作,就可以看到這個CSS所產生的視覺效果為何,重覆進行這個動作,就可以達到我們的目的,找到是那一段CSS造成元素的影響;而當我們找到是這段CSS時,在CSS的右上方(參考上圖的滑鼠位置),Chrome也可以幫我們追查到是那一份文件的那一行宣告的,如此即可追回原程式進行處理。

特殊情況才會出現的CSS,例如:hover

我們現在的網頁設計非常的好,很多說明資訊只有在特定的情況下才會出現,例如下圖的狀況,當我們的滑鼠停留在那個位置時,才會跳出來,滑鼠移開後,它就不見了,這種情況我們下,我們根本無法像上方說的情況,慢慢的去查看到底是什麼class造成的,或者是去調整它的css。

不要懷疑,Chrome才不會被這種小事情打倒,讓我們看範例來實作吧!

在示範前,要先瞭解一下,某些hover的情況下,是觸發Javascript後,才會產生的,而我們這邊只是討論在CSS中設定:hover的情況,以上圖來說,滑鼠所在的圖片右上方,有一個,那個才是用CSS的:hover所造成的。

因此,我們設定的目的是,看那個圖片右上方的,在CSS中是怎麼去定義的。

  1. 先找到相對應的HTML部份,一樣透過滑鼠右鍵的「檢查」,來要求Chrome幫我們找到相對應的元素後,將滑鼠移到下圖的位置(:hov),點下後,就可以看到網頁上的四種特殊情況了。

  1. 找到「:hover」的選項後勾選,發現網頁上並沒有什麼改變?原因是因為:hover不一定會寫在這一個階層,可能在更上層就定義了,因此我們再往上找,最後一個Div中找到:hover造成的影響(參考下圖)。

  1. 此時再移動時滑鼠時,也不會不見;所以滑鼠回到上方的圖示,利用滑鼠右鍵的「檢查」,請Chrome幫我們帶到下方的HTML位置。

在上方圖,我們注意到了幾個事項:

  1. 在左下方有一個橘色的小點,它所代表的是,那個HTML元素被我們動了特殊的處理(:hover)。

  2. 在滑鼠的位置,它的CSS的確是被宣告:hover,但是它的內容只是把透明度設回1;所以我們可以知道,圖片從一開就在,只是被隱藏而已。

  3. 在下二行的class宣告中,有一個background-image,我們透過勾選的方式,可以確定圖片的來源即是在這裡。

重點說明

Chrome的:hov這一整排功能,因為做得太小了,常常被忽略,但是它的功能是非常有用的,只不過做得太小、藏得太好,所以很難去發現;建議大家有機會可以研究一下這一整排的功能。

arrow
arrow

    JAVA Programmer 發表在 痞客邦 留言(1) 人氣()