CSS 基本- 學習該如何開發Web | MDN

文章推薦指數: 80 %
投票人數:10人

階層樣式表 (Cascading Stylesheets;CSS) 可用以塑造網站的特殊風格。

... 〈CSS 基本概念〉帶你入門。

... 注意語法其他重要的部分:. SkiptomaincontentSkiptosearchSkiptoselectlanguage學習該如何開發WebWeb入門CSS基本ArticleActions正體中文(繁體)ThispagewastranslatedfromEnglishbythecommunity.LearnmoreandjointheMDNWebDocscommunity.CSS到底是什麼?文字與字體CSS:和塊(box)密不可分結論RelatedTopics 全新手請從這開始! Web入門 Web概述 安裝基本軟體 自己的網站會是什麼樣子? 處理檔案 HTML基礎概念 CSS基礎概念 JavaScript基礎概念 發佈自己的網站 Web運作的方式 HTML—架構Web HTML介紹 HTML概述 HTML入門 標題裡是什麼?HTML中的後設資料(Metadata) HTML文字基礎概念 建立超連結 進階文字格式 文件與網站架構 HTML除錯 親和度:設個字母 親和度:架構出具備內容的網頁 多媒體與嵌入 多媒體與嵌入的概述 HTML中的圖片 視訊與音訊內容 從物件到iframe—其他嵌入技巧 為Web新增向量圖 適應性圖片 親和度:Mozilla形象頁面 HTML表格 HTML表格概述 HTML表格基礎 HTMLtableadvancedfeaturesandaccessibility Assessment:Structuringplanetdata CSS—設計Web的風格 初探CSS 初探CSS(概述) CSS是什麼? CSS入門 HowCSSisstructured CSS怎麼運作 Assessment:Stylingabiographypage CSS組件 CSSbuildingblocksoverview Cascadeandinheritance CSSselectors Theboxmodel Backgroundsandborders Handlingdifferenttextdirections Overflowingcontent CSSvaluesandunits SizingitemsinCSS Images,media,andformelements Stylingtables DebuggingCSS OrganizingyourCSS Assessment:FundamentalCSScomprehension Assessment:Creatingfancyletterheadedpaper Assessment:Acool-lookingbox 樣式化文字 樣式化文字概述 基礎的文字與字型樣式化 樣式化列表 樣式化連結 Web字型 親合度:設定社區大學首頁的版面 CSS版面配置 CSS版面配置概述 IntroductiontoCSSlayout NormalFlow 彈性區塊 格線 浮動 定位 Multiple-columnlayout Responsivedesign Beginner'sguidetomediaqueries Legacylayoutmethods Supportingolderbrowsers Assessment:Fundamentallayoutcomprehension JavaScript—動態的用戶端指令 JavaScript第一步 JavaScript第一步概述 什麼是JavaScript? 初次接觸JavaScript 出了什麼問題?JavaScript疑難排解 儲存你所需的資訊—變數 JavaScript基礎概念—數字與運算子 處理文字—JavaScript中的字串 有用的字串函式 陣列 親合度:傻瓜故事產生器 JavaScript基礎要件 JavaScript基礎要件概述 於程式碼中決策—條件 程式碼迴圈 函式—可重複使用的程式碼區塊 建立自己的函式 函式回傳值 事件介紹 親合度:圖庫 JavaScript物件介紹 JavaScript物件概述 物件基礎概念 物件原型 Object-orientedprogrammingconcepts ClassesinJavaScript 使用JSON資料 物件建構實作 親合度:為彈跳球展示新增功能 非同步的JavaScript AsynchronousJavaScriptoverview IntroducingasynchronousJavaScript Howtousepromises Implementingapromise-basedAPI Introducingworkers Assessment:sequencinganimations 客戶端webAPIs 客戶端webAPIs IntroductiontowebAPIs 文件操作 Fetchingdatafromtheserver ThirdpartyAPIs Drawinggraphics VideoandaudioAPIs Client-sidestorage 網頁表單-與使用者資料合作 核心的表單學習途徑 網頁表單概述 Yourfirstform 如何建構網頁表單 Basicnativeformcontrols TheHTML5inputtypes Otherformcontrols Stylingwebforms Advancedformstyling UIpseudo-classes Client-sideformvalidation Sendingformdata 深入網頁表單 Howtobuildcustomformcontrols SendingformsthroughJavaScript CSSpropertycompatibilitytableforformcontrols 無障礙網頁—每個人都可以使用的網頁 無障礙網頁指南 無障礙網頁概述 何謂無障礙網頁? HTML:Agoodbasisforaccessibility CSSandJavaScriptaccessibilitybestpractices WAI-ARIA基礎 Accessiblemultimedia 行動裝置上的無障礙 無障礙網頁評估 Assessment:Accessibilitytroubleshooting 工具與測試 Client-sidewebdevelopmenttools Client-sidewebdevelopmenttoolsindex Client-sidetoolingoverview Commandlinecrashcourse Packagemanagementbasics Introducingacompletetoolchain Deployingourapp 介紹前端框架 前端框架簡介 Frameworkmainfeatures React GettingstartedwithReact BeginningourReacttodolist ComponentizingourReactapp Reactinteractivity:Eventsandstate Reactinteractivity:Editing,filtering,conditionalrendering AccessibilityinReact Reactresources Ember GettingstartedwithEmber Emberappstructureandcomponentization Emberinteractivity:Events,classesandstate EmberInteractivity:Footerfunctionality,conditionalrendering RoutinginEmber Emberresourcesandtroubleshooting Vue 開始學Vue CreatingourfirstVuecomponent RenderingalistofVuecomponents Addinganewtodoform:Vueevents,methods,andmodels StylingVuecomponentswithCSS UsingVuecomputedproperties Vueconditionalrendering:editingexistingtodos FocusmanagementwithVuerefs Vueresources Svelte Svelte入門 StartingourSvelteTodolistapp DynamicbehaviorinSvelte:workingwithvariablesandprops ComponentizingourSvelteapp AdvancedSvelte:Reactivity,lifecycle,accessibility WorkingwithSveltestores TypeScriptsupportinSvelte Deploymentandnextsteps Angular Angular新手入門 開始開發我們的Angular待辦事項應用程式 使用樣式點綴我們的Angular應用程式 建立一個item元件 篩選我們的待辦事項項目 建構Angular應用程式與更多資源 GitandGitHub GitandGitHub概述 HelloWorld GitHandbook ForkingProjects Aboutpullrequests MasteringIssues 跨瀏覽器測試 跨瀏覽器測試概述 跨瀏覽器測試介紹 測試執行策略 處理常見的HTML與CSS問題 處理常見的JavaScript問題 處理常見的親合度問題 建置功能偵測 自動化測試介紹 設定自己的自動化測試環境 伺服端網站程式設計 第一步 第一步概述 伺服端介紹 用戶端概述 伺服端網路框架 網站安全 Django網站框架(Python) Django網站框架(Python)概述 介紹 設定開發環境 線上教學:本地圖書館網站 線上教學2:建立網站骨架 線上教學3:使用模型 線上教學4:Django管理網站 線上教學5:建立我們的首頁 線上教學6:泛型清單與細節檢視 線上教學7:會話(Sessions)框架 線上教學8:使用者授權與許可 線上教學9:搭配表單 線上教學10:測試Django的WebApp 線上教學11:佈署Django至產品 WebApp安全性 親合度:DIY迷你部落格 Express網站框架(node.js/JavaScript) Express網站框架(Node.js/JavaScript)概述 Express/Node介紹 設定Node(Express)的開發環境 Express教學1:本地圖書館網站 Express教學2:建立骨架網站 Express教學3:使用資料庫(Mongoose) Express教學4:路由與控制器 Express教程5:呈現圖書館的資料 Express教學6:使用表單 Express教學7:佈署到正式環境 更多資源 常見問題 HTML問題 CSS問題 JavaScriptquestions Web的運作方式 工具與設定 設計與親合度 CSS到底是什麼?文字與字體CSS:和塊(box)密不可分結論CSS基本 前頁 Overview:Gettingstartedwiththeweb 次頁 階層樣式表 (CascadingStylesheets;CSS)可用以塑造網站的特殊風格。

例如這段文字要用一般的黑色,或是改用紅色標明重點?某段重要內容應該置於畫面的何處?想用什麼背景圖片及顏色裝飾你的網站?〈CSS基本概念〉帶你入門。

CSS到底是什麼?跟HTML一樣,CSS既非標準程式語言,也不是標記語言,而是一種風格頁面語言(stylesheetlanguage):它能讓你在HTML文件中的元素(element)上套用不同的頁面樣式(style)。

例如,當想要將HTML頁面上所有段落元素(paragraphelements)裡的文字全部轉換成紅色,你會在CSS裡寫: p{ color:red; } 試看看在你的編輯器上建立新的檔案style.css並貼上這三行CSS程式碼,並存到你的styles目錄。

但我們還需要把CSS套用在HTML文件上。

否則CSS的樣式效果,不會在瀏覽器的HTML檔案顯示。

(如果你還未跟上我們的專案,請閱讀Dealingwithfiles和HTMLbasics以找出你需要什麼) 打開index.html文件,然後將下面一行貼到head,也就是

和標籤之間。

存檔index.html並且在瀏覽器載入。

你應該可以看到下面的頁面。

如果你的段落文字現在變成紅色,恭喜,你已經成功撰寫你的第一份CSS!解析CSSruleset讓我們深入解析下列的CSS: 整個架構我們稱為規則集(ruleset),或是簡稱為規則(rule)也可以。

(也注意名字裡面的單獨部分) 選擇器(Selector) 在這個規則的最前頭為HTML的元素名。

它將決定你HTML裡什麼元素將被你接下來的設定影響(在這個範例中,就是段落元素p)。

若要改變欲影響的元素,只要更改選擇器就行了。

宣告(Declaration) 單一個規則,例如color:red;指定了這個元素的呈現樣貌。

屬性(Properties) 修改屬性是改變你HTML元素的一種方法.(在這範例中,color是段落(p)元素的一種屬性.)在CSS中,你可以選擇哪些屬性用來影響 rule. 屬性值(Propertyvalue) 屬性值就是位於屬性右邊,在冒號(:)之後,從眾多的可能樣式選出一個給予屬性(範例中就是從眾多的color樣式中選出red) 注意語法其他重要的部分: 每一個規則當中,除了選擇器名稱以外,其他都必須被大括號({})給包住. 在每一個宣告裡面,屬性跟屬性值之間必須用冒號(:) 做區分。

在每一個規則裡面可以包含有許多宣告,但不同的宣告之間必須使用分號(;)來區分。

下面是一個簡單的CSS規則範例。

注意每個宣告都是以冒號(:)來指定屬性值,並且宣告之間都是以分號做區分(;)。

p{ color:red; width:500px; border:1pxsolidblack; }選擇多個元素你可以選擇數種元素(elements)並同時用在同一個ruleset上。

可以用逗號(,)包含數個選擇器,如: p,li,h1{ color:red; }選擇器的不同類型選擇器有很多種類。

到目前為止,我們只看到了元素選擇器(elementselector),它選取了指定HTML檔案下的所有選定元素。

不過,我們還有更多選擇器。

以下有一些常見類型: 選擇器名 選取/控制什麼 範例 元素選擇器,有時也稱作標籤或類型選擇器(Elementselector、tagortypeselector) 指定所有HTML元素中的特定元素 p 選取

ID選擇器(IDselector) 指定頁面上的特定ID元素(單一HTML頁面中,每個ID只能綁定一個元素) #my-id 控制 Class選擇器(Classselector) 指定頁面上的特定class元素(單一HTML頁面中,class屬性可以被多個元素使用) .my-class 控制 屬性選擇器(Attributeselector) 指定頁面上的特定屬性元素 img[src] 控制但不控制 虛擬class選擇器(Pseudo-classselector) 在特定的情況下,指定頁面的元素,例如懸停時。

a:hover 控制,但只有在滑鼠游標停留在連結上時. 還有很多值得探索的選擇器,你可以在我們的選擇器導引章節 Selectorsguide(en-US) 看到更多介紹。

文字與字體現在我們已經瀏覽過一些CCS的基礎,接下來我們開始增加更多的規則和資訊到我們的style.css檔案,讓我們範例中的字型和文字看起來更好. 第一步,我們回到 outputfromGoogleFonts 找到你存的字體。

 加上  這個元素在你的 index.html文件裡的head中(在  跟  任何位置中)。

這一段code將頁面連結到樣式表,將OpenSans字體系列與網頁一起下載,並讓你在HTML元素上使用自己的樣式表進行設置。

 它看起來會像: 下一步,刪除style.css文件中其他現有的字體。

這是個很好的嘗試,但紅色字體看起來真的有點醜。

把下面這行加在這個地方,取代placeholderlinewiththeactualfont-familylineyougotfromGoogle字體.(font-family是指你想在文件中使用的字體.) 這規則 此規則首先為頁面設置整體的基本字體和字型(因 是整個頁面的父元素,頁面中所有的元素會繼承同樣的字體和字型): html{ font-size:10px;/*pxmeans'pixels':thebasefontsizeisnow10pixelshigh*/ font-family:placeholder:thisshouldbetherestoftheoutputyougotfromGooglefonts } Note:我已增加了對於"px"的說明在上面.任何在CSSdocument中 /* */內的文字是 CSS說明,瀏覽器在編譯時會忽略掉.這是一個可以用來說明你做了什麼的幫助訊息. 現在我們將會在HTMLbody中為包含文字的元素設置字體大小,

,

  • ,



    我們也設置標題居中,並在正文內容上設置一些行高和間距,使其更具可讀性 h1{ font-size:60px; text-align:center; } p,li{ font-size:16px; line-height:2; letter-spacing:1px; } 你可以依自己喜好修改 px 的值。

    你目前的工作成果可能如下圖所示: CSS:和塊(box)密不可分當你在編寫CSS,設定尺寸、顏色及位置時,你會發現它有著如同箱子(塊,box)的概念。

    多數在網頁上的HTML元素就像是箱子一般相互堆疊而成。

    CSS佈局主要基於「box模型」。

    在頁面空間的每個box都有下列屬性: padding:內容周圍的空格(例如,段落文字周圍) border: 位於矩形內容外部的實線 margin: 元素外部的空間 在本節中,我們還使用: width:(元素的寬度) background-color:元素內容和矩形內容後面的顏色 color: 元素內容的顏色(通常是文字) text-shadow:在元素內的文字上設置陰影 display: 設置元素的顯示模式(後面會詳細介紹) 所以,讓我們開始對我們的頁面添加更多CSS!繼續將這些新規則添加到style.css頁面底部,不需要害怕多方嘗試去改值設定來了解結果。

    改變頁面顏色html{ background-color:#00539F; } 這條規則將會套用到整個頁面的背景顏色。

    根據你在規劃網站時選擇的顏色修改其中的顏色代碼。

    設定body的風格(styling)body{ width:600px; margin:0auto; background-color:#FF9500; padding:020px20px20px; border:5pxsolidblack; } 接下來修改 body 元素。

    以下依序介紹一些常見的宣告: width:600px;—將body寬度固定為600像素 margin:0auto;—Whenyousettwovaluesonapropertylikemarginorpadding,thefirstvalueaffectstheelement'stopandbottomside(makeit0inthiscase),andthesecondvaluetheleftandrightside(here,autoisaspecialvaluethatdividestheavailablehorizontalspaceevenlybetweenleftandright).Youcanalsouseone,three,orfourvalues,asdocumentedhere. background-color:#FF9500;—asbefore,thissetstheelement'sbackgroundcolor.Iusedasortofreddishorangeforthebodyasopposedtodarkblueforthehtmlelement.Goaheadandexperiment.Feelfreetousewhiteorwhateveryoulike. padding:020px20px20px;—wehavefourvaluessetonthepadding,tomakeabitofspacearoundourcontent.Thistimewearesettingnopaddingonthetopofthebody,and20pixelsontheleft,bottomandright.Thevaluessettop,right,bottom,left,inthatorder. border:5pxsolidblack;—thissimplysetsa5pixelwidesolidblackborderonallsidesofthebody. 設定我們主要頁面標題的位置(Positioning)和風格(styling)h1{ margin:0; padding:20px0; color:#00539F; text-shadow:3px3px1pxblack; } Youmayhavenoticedthere'sahorriblegapatthetopofthebody.Thathappensbecausebrowsersapplysomedefaultstylingtothe

    (en-US)element(amongothers),evenwhenyouhaven'tappliedanyCSSatall!Thatmightsoundlikeabadidea,butwewantevenanunstyledwebpagetohavebasicreadability.Togetridofthegapweoverrodethedefaultstylingbysettingmargin:0;. Nextup,we'vesettheheading'stopandbottompaddingto20pixels,andmadetheheadingtextthesamecolorasthehtmlbackgroundcolor. Oneratherinterestingpropertywe'veusedhereistext-shadow,whichappliesatextshadowtothetextcontentoftheelement.Itsfourvaluesareasfollows: Thefirstpixelvaluesetsthehorizontaloffsetoftheshadowfromthetext—howfaritmovesacross:anegativevalueshouldmoveittotheleft. Thesecondpixelvaluesetstheverticaloffsetoftheshadowfromthetext—howfaritmovesdown,inthisexample;anegativevalueshouldmoveitup. Thethirdpixelvaluesetstheblurradiusoftheshadow—abiggervaluewillmeanamoreblurryshadow. Thefourthvaluesets thebasecolouroftheshadow. Again,tryexperimentingwithdifferentvaluestoseewhatyoucancomeupwith.把圖像置中img{ display:block; margin:0auto; } Finally,we'llcentertheimagetomakeitlookbetter.Wecouldusethemargin:0autotrickagainaswedidearlierforthebody,butwealsoneedtodosomethingelse.Thebodyelementisblocklevel,meaningittakesupspaceonthepageandcanhavemarginandotherspacingvaluesappliedtoit.Images,ontheotherhand,areinlineelements,meaningtheycan't.Sotoapplymarginstotheimage,wehavetogivetheimageblock-levelbehaviorusingdisplay:block;. Note:Don'tworryifyoudon'tyetunderstanddisplay:block;andtheblock-level/inlinedistinction.YouwillasyoustudyCSSinmoredepth.Youcanfindoutmoreaboutthedifferentavailabledisplayvaluesatourdisplayreferencepage. 結論看完了以上的介紹並依照各個步驟實做,你應該能自己寫出這樣的網頁(如下, viewithere): 如果哪裡卡關了,你可以隨時造訪Github上的 finishedexamplecode ,看看裡面的code和你寫的哪裡不同。

    這篇文章觸及的是非常基本的CSS介紹,若你有興趣想進一步了解,歡迎參考 CSSLearningtopic。

    前頁 Overview:Gettingstartedwiththeweb 次頁 Foundaproblemwiththispage?EditonGitHubSourceonGitHubReportaproblemwiththiscontentonGitHubWanttofixtheproblemyourself?SeeourContributionguide.Lastmodified:2022年6月23日,byMDNcontributors



  • 請為這篇文章評分?