3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
本篇由讀者「鬍子科技學院」投稿,內容相當精彩實用,是讓一般初學者由淺到深一步一步學習CSS概念,如果您正在學習網站版型、架構的話,這篇會是相當重要的入門教學課程,有興趣的朋友也可以到這邊看原文。 這是一篇全面,適合新手看的CSS教學入門課程(2021年更新)。 在這篇文章,你會學習到: CSS的基本概念 CSS Selector CSS Statement 文字篇 CSS Statement 實用篇 CSS Box Model CSS Position 其他CSS Responsive CSS 我們會從新手角度,分開8個章節,由淺入深,教授你所有你要知道的CSS編程知識。 準備好了嗎?我們開始吧! 第1章CSS 基本概念 CSS可以讓HTML更美麗。 換句話說,CSS負責控制網頁的外觀,包括靜態與動態元素,以及手機板的外觀。 CSS就如設計排版工具,只要掌握得好,你通過CSS設計出各種精美的網頁。 讓我帶大家由淺入深,去學習CSS吧! 讓我們先來看看,CSS的基本概念。 CSS 基本概念 當我們學懂了HTML後,下一步就需要學習CSS。(如果你不懂HTML,可以先看看:HTML教學課程 -入門篇)學習CSS的作用是,在製作一個網站外觀時,能把外觀製作的更美觀一些。 首先,我們打開Visual studio code,我想你試試在你的Code Editor上,跟我一起輸入來學習。我們一起開一個新的文件,這個文件可以選擇放置在你的桌面中,然後新增一個「CSS」的文件夾。 之後,我們打開Visual studio code,按File -> Open,來打開這個「CSS」的文件夾。 然後在CSS右手邊的空白位,右鍵開立一個新文件,叫「index.html」。 然後嘗試一下功能是否正常,比如輸入 123 來看看。 儲存完後,大家可以嘗試一下用Chrome來打開這個File文件來看看。 如果在Chrome看到「123」,就代表你己經成功設定這個文件檔。 學CSS的第一件事,就在p這裡,隔一隔空格,然後輸入: style=’color:red;’ See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 你會發現了,通過輸入這個內容後,「123」文字原來會變成了紅色的。 原來,我們第一樣學習CSS的東西就是,可以透過attribute,來為每個HTML元素加上CSS。而每一項外觀的改變,都可以用不同的CSS statement去做。比方說,有些CSS statement能改變字型的大小、有些CSS statement能改變顏色、有些CSS statement能改變透明度等等。 分開CSS和HTML 然而,實際寫CSS時,我們通常會把CSS和HTML分開。我們一起來看看分開CSS和HTML的好處是什麼吧。就像以下例子,假設現在你有很多個p Tag。 如果每一個p Tag中都有不同的CSS,那你的program就會很混亂(如下圖般)。 123 123 123 123 所以,關於CSS,有一個很重要的概念, 就是將HTML和CSS分開來輸入。 意思就是把圖中間這些style全部抽出來。 所以,現在大家一起跟我輸入,我們會在文件最上的位置,製作一個叫style Tag的東西, style Tag只需要製作一次便可以,而在style Tag中輸入的東西,就不再是HTML的內容了,而是輸入CSS的語法。 我們一起嘗試在style Tag中輸入: 如圖中的p{},然後按enter。(下圖) 在p{}中輸入color:red, p{color:red;} 儲存完後,大家可以嘗試一下用Chrome來開啟這個File文件來看看。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   這個p{}是代表什麼呢? 原來,p{}就是CSS Selector。 CSS Selector可以讓檔案知道,在下面內容中,有哪一個HTML Element是需要被它指到的。 在上圖中這個環節中,p{}正是指示下面全部的p Tag。 而color:red;又代表什麼意思? 其實「color:red;」就是CSS statement,指示文字的顏色是紅色。 「color」是CSS statement的Property,而「red」就是該statement的Value 。 CSS Statement的寫法就是 property:value; 每一句CSS statement都會有一個分號,這樣一句一句地輸入。 就是這樣,我們便成功地,將HTML歸類為HTML,CSS歸類為CSS了。 其實,學習CSS有兩個困難的地方。 第一個困難的地方是,怎麼學寫CSS selector。 第二個困難的地方是,怎麼學寫CSS statement。 CSS selector要注意的地方,就是怎麼「正確地」寫出CSS selector。 因為有時候在你內文中,不會只有一個p Tag,而是會有很多其他的element。 那要怎樣才能明確地指中你要做style的Tag呢? 下一章就會與大家一起學習, 4種最常用的CSS selector吧。 第2章CSS Selector CSS Selector是CSS中最繁複的概念。因為它是概念上的東西,你必須完全明白才能使用。 就新手而言,CSS Selector共有4種,它們分別是: Element Type Selector Id Selector Class Selector Descendant Selector 準備好了嗎?我們開始吧! Element Type Selector 上文提到,怎麼做才能明確地指中你要做style的Tag呢? 其實方法有四種,第一種,就是Element Type Selector。 這個輸入法是最簡單的,例如上圖內文它是p Tag,只需在上面輸入「p{}」來作CSS的Selector。 再來,如果上圖內文是h1 Tag,那上面便輸入h1{}作CSS Selector便可以了。 所以,Element Type Selector要注意的地方是,就是當CSS Selector指的地方,下文中就會指中內文的全部東西。 就如上圖中,當下文有3個h1的時候,CSS指中的h1,便會包含上圖中的3個的h1了。 假如有h1是在p Tag當中,也會同樣被影響到。 Element Type Selector會影響到所有的HTML element,無論這些HTML element有沒有被其他東西包著。 在這個例子, p中所有的h1,通通都被影響到。 假設,你創作一個不存在的Tag,比如是:jack Tag,同樣地,CSS也會明確指中jack Tag的位置。 如果有時候,大家只想指向其中一個p Tag,又要怎樣做呢? 比如是中間那個p Tag,那麼,用以上CSS Selector,便行不通了。 因為你也知道,Element Type Selector一指向,便會指向所有的p Tag(如上圖般)。 Id Selector 由於Tag Selector會讓全部tag都受到影響。若你只需要指定選擇一個tag的話,你可以使用id或class selector。 原來以上兩種功能:id與class,其實都是attribute,兩種都是類似更改名稱的方法,這些attribute就是放到HTML之中。 現在,我們嘗試在2個p Tag中,分別加入兩個id: 第一個p Tag,輸入id=’jack’, 第二個p Tag,輸入id=’peter’。 然後我們在CSS style Tag中,更改為#jack。 這裡要注意一下,原來我們不能直接輸入「jack」, 因為輸入「jack」的意思,是指向下文中的jack Tag,這是錯誤的輸入法。 正確指向id的名稱, 是輸入「#」來指向其id,所以是輸入「#jack」。 儲存完後,大家可以嘗試一下用Chrome來打開這個File文件來看看。 是不是成功將第一個p Tag變成紅色字呢! Id還有一個特點,就係它是獨立的,獨一無二的設定來的。 比喻上圖中,HTML p Tag中id為jack, 那麼在這個文件當中,就不會有另一個element的id,可以稱為「jack」了。 Class Selector 明白了id Selector後,就要來到第三種方法,名叫Class Selector。 class與id的方法也十分相似的,它們都是attribute來的,但當中的分別,我會在下文中一一解說。 我們一起嘗試在第三個p Tag中,輸入class=’linda’, 123 然後在CSS style Tag中,更改成「.linda」。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 儲存完後,大家可以嘗試一下用Chrome來打開這個File文件來看看。 是不是成功將第三個p Tag變成紅色字呢! 這裡你會發現到, 「#」是指向id的, 「.」是指向class的。 你可能會問, 為什麼id與class那麼相似,為何要分兩種CSS Selector呢? 其實,第一個特點是,class與id有著不同之處的,id是獨一無二的,而class可以有很多,不斷重複地使用。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 比如上圖中,有3個p Tag中,都是class為linda,那麼的CSS Selector,都會一同影響到全部的linda。 Class Selector並不是unique的。你有一個p tag的class是linda,其他tag的class也可以是linda。 Class Selector的第二個特點是,同一個HTML element可以有很多個不同的class。 如上圖般,大家可以看到,在輸入linda後,又可以輸入mary,更可以輸入paul。 每一個名稱與名稱之間,隔一隔空格便可以了。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 這裡注意的是,這個class不是叫「linda mary paul」,而是又可以叫「linda」,又可以叫「mary」,又可以叫「paul」。 如果我要指它的話,只需要輸入其中一個class便可以, 就如上圖中的「.mary」,也會成功指向其中的p Tag。 最後,還有一個特點,就是id與class是可以同時並存, 如果要指向上圖中的這個p Tag,只需要指向輸入#peter,或者輸入.linda, 都可以指中同樣的HTML Element。 以上便是id selector與class selector的基本概念了。 Descendant Selector 其實,id selector與class selector也不是解決到, 所有selector上的問題,所以這時候,就要來到最後一個selector,也是最複雜的selector來的, 名稱叫descendant selector。 為何是最複雜的selector呢? 我們一起來看看吧! 我們一起輸入div Tag,然後內層輸入h1 Tag及p Tag。 而在div外面也輸入另一個p Tag。 這個div會有一個class叫paul。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 這時候你會發現,原來selector .paul p會指到div中的p Tag, 而不是div外面的p tag。 Descendant selector就是格格。比方說, .paul p, 就是代表: 要指中所有的p Tag, 而這些p tag, 是需要讓class paul包著。 就如上圖中,雖然會有兩個p Tag,可是class=’ paul p’ ,是明確指明要有class paul中的p Tag。 所以你會見到「222」變成紅色字,而「333」是不會變成紅色字。 為何我會說明這個selector會很複雜呢? 原因是,這個selector可以無限延伸下去。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 會怎樣複雜呢? 我嘗試在h1這裡,再加入一個span Tag,內文輸入「AAA」。 然後CSS Selector改為.paul h1 span, .paul h1 span{color:red;} 你便會看到內文「AAA」更改為紅色字。 這裡會指所有span,而這些span必需要被h1包著, 而h1更要在paul中包著。 最後,有一點要留意的是,這個指法是不限層數的。 不限層數是什麼意思呢? 例如上圖中,輸入.paul span作為Selector, 同樣地,也會成功指中內文中的span的AAA變成紅色字。 雖然中間有一層是h1,但是沒有關係。 因為只要這個span,是被paul包著的,便會成功被指中。 另外一個例子,只要span是被paul所包著,那麼,全部span都會被指中,就如上圖般。 以上這個,便是最複雜的descendant selector了。 大家好好練習吧! 第三章 CSS 文字篇 CSS statement比較CSS selector相對簡單, 因為,如果你有不會的CSS statement,你其實可以通過Google來搜索,也會找到其寫法。 比如,大家可以看看這一個教學網站:w3schools.com/css 這是一個非常詳盡的CSS英文網站,你把它當成是CSS字典來用就好了。 由於CSS statement有那麼多,所以我們都要分門別類來學習。 第一個類別,便是CSS文字篇! 文字篇會有很多的CSS style,以下我會一步步教授大家。 首先,先輸入上圖中的p Tag與style Tag,格式要與我上面的輸入手法一致,開了style Tag後,按圖中相對應得位置,來隔一隔空格,輸入p{},在{}中輸入「color:red;」。 p{color:red;} 而p Tag的內文可以輸入「This is a boy.」。 This is a boy. See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   上圖中輸入的顏色,一直都是用普通的紅色實色。 其實除了實色的紅色外,紅色也會有很多不同的深淺色調。 那麼,我們可以怎樣去表達出來呢? 我們先Google搜索一下「Color Picker」, 你會看到,原來每一種顏色,都有一種code來代表的。 這裡我們最常用的,就是HEX code, 你會看到#及6位英文數字「#XXXXXX」便是HEX code了。 例如上圖中的「#fcba03」,我們一起輸入: 我們把red更改為#fcba03, 所以是輸入「color:#fcba03;」。 p{color:#fcba03;} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   儲存完後,大家可以嘗試一下用Chrome來開啟這個File文件來看看。 是不是成功將紅色更改成這個黃色呢? 除了HEX code外,另一個可以用RBG, 你會看到RGB有3隻數目字,比如圖中的252,186,3。 輸入方法就是「color:rgb(252,186,3);」, p{color:rgb(252,186,3);} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 還有一種常用的方法,就是rgba,這個rgba就是多了一個數目字, 這個數字是在0至1中間,就是透明度。 我們嘗試輸入0.4,0.4是有少許透明的效果。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   這個功能什麼時候會用到呢? 就是當你只想改動顏色做透明的時候,就可以使用這個方法了。 Font Size 字體大小 除了改變字體顏色是最常用之外,第二個常用的,就是改變font size。 我們一起在CSS中輸入「font-size:40px;」,如上圖般。 p{font-size:40px;} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   儲存完後,大家可以嘗試一下用Chrome來開啟這個File文件來看看。 我們成功地,將文字變大了。 這裡要注意的是,也會有人用em,或者用percentage作單位。 Letter Spacing 字距 學會了改變字體顏色及字體大細後, 接下來,要學習的便是letter spacing。 letter spacing的意思是字與字之間的距離(字距)。 我們一起在CSS中輸入「letter-spacing: 10px;」,如上圖般, p{letter-spacing: 10px;} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   儲存完後,大家可以嘗試一下用Chrome來開啟這個File文件來看看。 我們成功地,將字之間的距離增加。 這種效果,常見用於標題, 因為有時候,在設計上把字距拉闊,能增加一些現代感的效果。 Line-Height 行距 學懂了字距後,當然還有行距啦! 接著要學習的,就是line-height了。 什麼是line-height呢? line-height其實是行與行之間的距離(行距)。 我們在p Tag內文中, 輸入< br>來隔一隔行,再輸入「This is a girl.」。 然後輸入「line-height: 1.5;」,如上圖般, See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   儲存完後,大家可以嘗試一下用Chrome來開啟這個File文件來看看。 我們成功地,將行與行之間的距離增加。 其實你也可以選擇輸入pixel來達成, 比如輸入20px這樣子。 所以大家多多練習一下, 好好使用這個功能,來設計出美麗的文字排版。 Font-Weight 粗幼度 字體排版除了要掌握空間感的設計,少不了的當然是字體的粗幼度啦! 所以接著要學習的,就是font-weight, 意思就是字的粗幼度(分別於100-900)。 我們一起輸入「font-weight: 500;」,看看字體粗幼度500是怎樣的效果。 p{font-weight: 500;} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   其實,改動字體效果的粗幼度,可以從100設定至900之內,大家可按設計風格,來調教合適自己想要的效果。 Text-decoration:underline 底線 我們學懂了粗幼度後,嘗試再增加一試有趣功能,比如是增加字體底線。 我們一起輸入「text-decoration:underline;」, p{text-decoration:underline;} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   看看是不是成功地增加了底線效果。 Font Style 斜體 有時候,為了因應設計效果,都會經用需要改動字體為斜體, 現在我們一起來看看,Font Style是怎樣輸入的。 我們一起輸入「font-style:italic;」, p{font-style:italic;} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   Font style最常用的效果,是把字型變為斜體, 輸入完後,看看是不是成功地變為斜體效果。 Opacity 透明度 如果以上功能都不夠已滿足做設計的效果,比如需要改變透明度。 那麼,我們就需要學習改變透明度的功能了。 大家跟我一起輸入「Opacity:0.5;」, p{Opacity:0.5;} 將透明度改為0.5, See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   輸入完後,看看是不是成功地改造成有透明效果。 Text-align:center 文字align 有時候為了方便空間感的排位,有時候我們都會需要改動文字的版面位置,到底能怎樣做的呢? 這時候,我們就需要用text-align:center(文字align)的功能了。 這個功能是對應文字來align left/center/right。 我們會遲點再教這個text-align的細節,這裡大家先初步了解期功用為先。 我們一起輸入「text-align:right;」, p{text-align:right;} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   輸入完後,看看是不是成功地將整個p Tag內容改為靠右的版面呢! Font-family 轉字型 來到最後的文字基礎教學了,除了以上不同種類的文字改動功能外,大家還需面學習的是,怎樣去轉變字型。 有關轉字型,之後我會再用一篇字型篇來說明, 這裡大家可以先了解怎樣輸入。 我們一起嘗試輸入,例如「font-family:sans-serif;」, p{font-family:sans-serif;} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   而上圖中的文字字型,本身內設定已是sans-serif字體。 然後,我們在sans-serif前面嘗試輸入「Arial,」, 這個意思便是向電腦指示,有「Arial」便用arial字型, 如果沒有,便改為使用「Sans-serif」字型。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   除了Default的字型,大家更可以自行輸入import其他字型, 我們常用的方法是, 使用font face或Google font來import。 以上教學,便是基本文字的CSS Statement。 第4章CSS Statement 實用篇 只有CSS文字篇,其實是不夠的。 接下來,我們需要學習CSS的各種實用性功能。 在實用篇中,你將會學習到更多不同的CSS Statement,包括: CSS width、 CSS height、 CSS background、 CSS overflow。 準備好了嗎?我們馬上開始CSS的實用篇吧! CSS 實用篇 接下來,我們來到下一個CSS Statement, 會學習一些比較實用的東西。 實用篇會教授大家的包括有, width、height、background、overflow。 我們首先輸入一個style Tag及div Tag, 然後有style Tag中輸入div{}, 內層輸入background:red;, 下一行輸入width:200px;, 下一行輸入height:200px;。 上文意思是background輸入成紅色, width是代表寬度200px, height是代表高度200px。 儲存完後,大家可以嘗試一下用Chrome來開啟這個File文件來看看。 我們成功地弄了一個紅色的box, 闊度與高度都是200px。 然後我們嘗試在div Tag內層,輸入更多的p Tag。 儲存完後,然後在Chrome refresh這個File文件來看看。 你會發現,這些p Tag的文字,有部分離開了紅色box。 這時候可以怎樣解決這個問題? 我們可以加一個Tag叫「overflow:hidden;」, div{overflow:hidden;} 這功能是讓離開了紅色box的文字,不會再顯示出來。 另一個方法,是輸入「overflow:scroll;」, div{overflow:scroll;} 多出了的文字,就會弄了一條scroll bar來包著。 第5章CSS Box Model Box Model是整個CSS Statement中其中一個最常用的概念。 接下來,我們需要學習Box Model的各種功能。 Box Model共有3樣東西: Border、 Margin、 Padding。 準備好了嗎?我們馬上開始吧! CSS Box Model 接著,我們還有更多的CSS Statement要學習,Box Model是整個CSS Statement中其中一個最常用的概念。 Box Model包括: border margin padding 這些我們簡稱為CSS的box model。 Box Model是一個很重要的概念來的, 簡單來說,每一個元素,比方說一段文字,它的邊界就是Border。Border與文字中間的空間就是Padding。Border外的空間就是Margin。 這裡要注意一下, 現實中的border線位不會那麼粗的,通常是一條黑線而已。 正常情況是不會show出來的, 即是沒有border的形狀的,大概意思是有一條無形的border線位。 了解到基本概念後, 現在我們一起動手輸入Box Model吧! 我們在style內輸入「border:5px solid black;」, div{border:5px solid black;} See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   Solid是代表實色,顏色使用了black黑色,及5px的闊度。 儲存完後,然後在Chrome refresh這個File文件來看看。 你看不看到,我們成功弄了有一條黑色的border。 這種輸入法是左上下右同時間都有, 如果只想落其中一條線,又可以怎樣做呢? 我們把border輸入-top,黑線便會落到上面的位置。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   還有border-left,是左邊位置。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 接著是border-bottom,是下邊位置。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 然後是border-right,是右邊位置。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 之後,我們嘗試輸入padding:50px; See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   padding就是border入面的位置, 儲存完後,然後在Chrome refresh這個File文件來看看。 你會發現到內容123的上下左右,多了50px的紅色空白位置。 同樣地,padding也可以只輸入上左下右其中一面,輸入法如下: padding-top,上面位置, padding-left,左面位置, padding-bottom,下面位置, padding-right,右面位置。 另外還有一些比較懶的輸入法, 比如上圖這樣,輸入「50px 10px」。 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   意思是,50px代表上下位置,10px代表左右位置。 也有另一種懶人包的輸入法,就是輸入4個數字, 4個數字代表的位置, 是順時針方向:上、右、下、左。 比如上圖的: 上50px, 右10px, 下20px, 左40px。 這種較懶的輸入法,padding可以,border也都可以的。 除了改動Box內部,還可以改動Box的外部位置。 改動Box的外部位置功能,就是margin。 Margin就是上面,border外面的位置, 我們一起輸入: margin:50px; See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   儲存完後,然後在Chrome refresh這個File文件來看看。 你會看到,margin就是上圖中綠色圈的位置。 Margin與padding及border一樣,也可以使用較懶的輸入法。 這裡大家也要注意的是, 有一種常用的輸法是: margin:0 auto; See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 到底是什麼意思呢? 意思是margin的上下位置是0, 左右是auto(意思是將這個div置中)。 Auto這個輸入法, 很多都是配合有width的情況下使用。 學到這裡,大家都明白了什麼叫Box Model了嗎? 以上便是CSS Box Model的全部教學內容, 記得多加練習喔。 第6章CSS Position 接下來,我們會學習更多關於CSS Position的CSS Statement。 在這篇中,你將會學習到更多的CSS語法,包括: CSS Display、 CSS Position。 準備好了嗎?我們開始吧! CSS Display CSS display是一個很常用的CSS語法。 首先我們整理以下介面輸入: 原來每一個element,本身也有一個東西叫display。 display通常是inline(平排),或是block(隔行)。 每一個tag其實本身有已有一個display property。 例如div、p、h1是block;a、span是inline。 但我們可以透過CSS,把這個display property改變。 例如, 當兩個div Tag在一起的時候,你會發現是這樣顯示的。 如果想更改這個預設, 我們是可以輸入「display:inline-block;」, div{display:inline-block;} 就會更改了它的預設顯示。 比如下圖這樣: 如果你把Display轉回block, 就會變為原先那樣。 現在嘗試輸入兩個a Tag,你會看到是平排的。 然後在style Tag的內層中,輸入a{}, 再輸入「display:inline-block;」, 現在,你會發現成功把a Tag的變成隔行顯示了。 另一個最常見的display是「display:none;」, div{display:none;} 會將整個div Tag的內容被消失了。 這個功能其實非常好用的, 由其是有時需要更改模板,更改一些template, 而有時又改不了HTML,就只可以靠CSS去更改了。 當你不想要某一些元素, 你就可以用「display:none;」的方法來解決了。 CSS Position 接下來,我們就要學習CSS Position。 CSS的Position分為四種, postion:static、 postion:relative、 postion:fixed、 postion:absolute。 第一種:postion:static 第一種position是「position:static;」, 就會把內容由上至下顯示,又不會重疊在一起的。 其實你平常不輸入position static,它本身就是預設為position static的。 第二種:postion:relative 第二種position是「position:relative;」, Relative其實與Static很相似的, 只不過position relative可以再定義一個左上角座標。 什麼叫定義「左上角座標」? 我們嘗試一起輸入「top:400px;」及「left:400px;」看看, 上邊及左邊都加入了400px,你會看到整個內容都移了出走。 這個功能就是「position:relative;」了。 第三種:postion:fixed 第三種position是「position:fixed;」, Fixed其實與relative都是一樣的,但fixed的特別位是可以把它定格。 什麼意思呢? 當我先輸入了很多個p Tag後, 你會現無論我怎樣移動視窗的上下位置,紅色box是定格在視窗這個位置的。 這就是「position:fixed;」的功用了。 第四種:postion:absolute 最後一個position,也是最複雜的一個, 就是「position:absolute;」。 這是一個比較複雜的方法, 我們首先整理一下以下格式。 然後跟著我一起輸入p{}, 內層再輸入: position:absolute; top: 10px; left: 10px; 什麼是Position Absolute呢? Position Absolute就是對比包著它的element,它的位置是什麼。 就如圖中的p Tag,包著的element就是這個div, 對比這個div,它現在的位置就是top 10 left10了。 同樣地,也可以把top與left, 更改輸入為bottom及right。 所以你會發現到, position absolute和position fixed 都會把東西重疊在一起 position relative和position static 就不會將東西重疊在一起。 以上便是CSS Position的基本教學。 第7章其他CSS 大家學習完學習CSS Position篇後,其實還有其他CSS的功能也是經常用到的, 在CSS其他篇中,你將會學習到更多的CSS語法,包括: CSS Float、 CSS 文字轉State、 CSS 左右置中、 CSS 跟隨次序。 準備好了嗎?我們開始吧! CSS Float 來到其他CSS的部分,首先學習到的是CSS Float, Float的功能,可以是將相片放在一些文字的旁邊。 首先,我們先去Google搜尋一張相片,比如是pig。 找到一張pig的相片後, 按著相片,右鍵「在新分頁中開啟圖片」,把這個連結放在img tag。 然後,再加上width 400的attribut: < img width=’400′ src=’網址’>, 然後再輸入p Tag, 內容輸入123。 如果這時候,你想將文字123改在圖片右邊, 又可以怎樣做呢? 你可以在style Tag中輸入img{}, 再內層中輸入「float:left;」, img{float:left;} 儲存完後,然後在Chrome refresh這個File文件來看, 已成功將文字改在圖片的右邊作顯示了。 原來float這個CSS Statement, 就是說,對比下一個element, 這個HTML element的位置是在哪裏。 上圖例, img Tag的下一個element, 就是p Tag。 因此,img tag就會在p tag的左邊了。 我們嘗試輸入多3組p Tag, 你會發現,原來這個float會一直影響下去的。 所有的p Tag文字,都會改動去了圖片的右手邊。 假如不想第三個p Tag被影響到, 又可以怎樣做呢? 我們可以在第三個p Tag,使用「clear:both;」。 看!第三個p Tag現在不被影響了。 CSS 文字轉State 之後我們要學習的,就是CSS文字轉State的功能了。 CSS文字轉State這功能,最常用的是在a Tag之中, 首先,我們一起輸入一個a Tag: click me 然後在style Tag,輸入a{},內層再輸入color:red;。 a{color:red;} 你會看到click me是紅色的。 接著,在style Tag,隔一隔行,輸入a:hover{}, 內層再輸入color:green;。 你會發現,只要當你的箭咀移動到click me, 便會從紅色字自動變成綠色字。 可以在這個基礎上,增加更加多的CSS Statement,比如加入: a:hover{font-size: 60px;} 當你的箭咀移動到click me,文字便會自動變大了。 CSS 左右置中 接下來要學習的,就是CSS左右置中功能。 一般而言,有分兩種情況: 第一種情況是,左右置中整個div Tag。 第二種情況是,左右置中div內的文字或圖片。 第一種情況 , 我們先給這個div一個闊度。 我們一起輸入div Tag, 內層p Tag,內容輸入123。 然後在style Tag輸入div{},內層輸入: width: 300px; border: 1px solid black; margin:0 auto; See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   做了一個box後,你可以使用「margin:0 auto;」, 便可以把整個div置中了。 第二種情況, 就是要置中一個div入面的文字。 在style Tag輸入div{},內層輸入: text-align: center; See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   這樣就會把div中的文字全部置中了。 大家這裡要注意一下, 這個「text-align: center;」不是輸入在p Tag那裡的, 而是輸入在包住它的div那裡的,才會正確。 而圖片也是一樣, 會被這個text align center影響到。 CSS 跟隨次序 CSS跟隨次序是什麼意思呢? 大家一起看看以下例子: See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   你會看到,這個p Tag,有兩個Selector也會指到它 一個是紅色,另一個是藍色。 好了, 我們再試試在p Tag中輸入: style=’color: yellow;’ 現在, 有3個Selector也指到這個p Tag: 紅, 藍, 黃。它究竟會跟隨那一個CSS Selector呢? 你會發現,p tag是變了黃色的。 原來, 如果有同樣數個Selector指同一個HTML Element, 它會首先跟inline style。(也就是黃色) 如果沒有inline style, 下一個跟隨的,便會是同一頁style Tag中的Selector。 如果同一頁沒有style Tag,程式便會跟隨external CSS file。 做一下總結,CSS基本的跟隨次序是: 首先,是自身的style attribute, 接著,是同一個HTML的style tag, 最後,是外部CSS File。 此外, 程式會跟隨一個「更精準」的selector來指。 圖中有兩個selector,都是指到p tag。 div p{}與p{}那一個更精準? 當然是div p{},所以你會看到顏色是指向了red那裡。 如果沒有「更精準」的Selector, 程式就會跟隨最底的那一個Selector, 就如上圖中的藍色。 如果你想override這個跟隨次序,可以怎樣做呢? 你可以使用「!important」。 你只需要在red後面,輸入: 「!important」 See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen.   因為這是一條override了其他所有的跟隨次序。 溫馨提示一下, 這個!important不建議大家用太多, 因為當你把內文中,全部都用這方法輸入「!important」, 跟隨次序就會變得複雜, 變得都沒意思了。 第8章Responsive CSS 大家以為學習完其他CSS後,便學懂了基本CSS功能了嗎? 當然不是啦,其實以上都是PC版面的排版,其實還有mobile、responsive的CSS運作方法。 而mobile原理,其實與PC一樣,目的都是美化screen size,讓mobile的外觀也設計精美。 準備好了嗎? 我們馬上開始學習Responsive CSS吧! Responsive CSS 接著,我們終於來到Responsive CSS分享, 會與大家分享mobile、responsive的CSS運作方法。 其實mobile原理與PC一樣, 目的都是美化screen size,讓mobile的外觀也設計精美。 我們通常會用media screen去做Responsive。 我們首先整理一下編程內容: 輸入一個p Tag,內文123, 輸入一個style Tag,內層p{},再輸入color:blue; 這時候,123是出現blue顏色字。 接下來,在style Tag中開一行新行,輸入: @media only screen and (max-width:900px) {} 內層再輸入: color:red; See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 你會發現到,只要將螢幕拉放至900px的時候, 文字會從藍色變成紅字。 然後,我們在style Tag再輸入多一個: @media only screen and (max-width:600px) {} 這次內層輸入: color:blue; See the Pen by Chan Ying Yeung (@chan-ying-yeung) on CodePen. 你會發現到,只要將螢幕拉放至600px的時候, 文字會從紅色變回藍字了。 透過使用media screen, 你可以在不同的screen size, 行不同的CSS style, 從而去做到Responsive的效果。 最後注意一點是, Screen的闊度是從高至底, 先輸入大一點px,接著才會輸入細一點的px。 而正常闊度輸入至600px已經足夠, 目前智能手機,大多都是300px至到600px。 第二種我們常會用到的, 就是max width。 現在我們輸入img,加入一張圖片連結,width為800px。 你會發現,螢幕拉細後,圖片不懂自行縮小。 所以,這時候,我們在style Tag中, 找回900px那個media screen, 然後隔行,輸入一個img{},內文輸入: max-width: 100%; 你會發現, 只要當螢幕拉至900px, 圖片的闊度會自動縮放至100%來顯示出來。因為圖片的最大闊度為100%。 有時候, desktop的東西太複雜的話, 你可以把整個div都display none, 然後,開一個新的div,就只有mobile才display block出來, 這樣也是我們做Responsive Layout的一個常用方法。 總結 恭喜你! 經歷了8個章節,你終於學習完了基本的CSS。 然而,此刻如果你想用HTML和CSS去從頭開始,去製作網站的話,你還是會覺得很吃力的。 這是絕對正常的! 因為學習了基本CSS後,我們還要借助一些framework,例如bootstrap,才能輕鬆地編寫外觀。 今天,基本的CSS編程知識就去到這裡。 大家好好溫習以上的知識吧~加油! 您也許會喜歡: 【推爆】終身$0月租 打電話只要1元/分 立達合法徵信社-讓您安心的選擇

本文由kocpc提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦