# CSS 參考資料:[【css】初學者教學](https://youtu.be/Ml78vnNTBLw)、[Flex 排版教學](https://w3c.hexschool.com/flexbox/a0979749)、[開發者工具介紹]、https://training.pada-x.com/javascript-start.htm ## Style 可以在每個標籤的開頭加入 style ,加入不同的屬性,再以分號隔開 ```htmlmixed= <!--可以加入 style 設定顏色和大小--> <div style="color:red; font-size:20px;"> <h1 style="color:blue;">css教學</h1> <!--background color是背景色, border是框線 要設定粗細 樣式 顏色--> <p style="background-color:green;border:1px solid black;">這是一個段落</p> <!--可以設定寬度--> <p style="border:5px dashed green;width:200px; height:200px;">這是一個段落</p> <!--設定最大寬度--> <p style="border:5px dashed green; max-width:800x;">這是一個段落</p> <!--如果都沒給的話就會依視窗的大小進行調整--> <p style="border:5px dashed green; max-width:800x">這是一個段落</p> </div> ``` <br> ## Color 可以參考網頁:[CSS colors](https://www.w3schools.com/css/css_colors.asp)、[HTML Color Picker](https://www.w3schools.com/colors/colors_picker.asp)、[色碼表](https://www.ifreesite.com/color/)、[HTML Color Code](https://htmlcolorcodes.com/) ```htmlmixed= <h1 style="color:chocolate;">css教學</h1> <h1 style="color: #ff6666;">css教學</h1> <h1 style="color: rgb(255, 102, 102);">css教學</h1> <h1 style="color: hsl(0, 100%, 70%);">css教學</h1> ``` ## Padding & Margin 兩個控制空間的屬性,Padding是設定內部的空間,Margin是設定外部的空間 ```htmlmixed= <!--框線內部增加20px的空間,外部也增加20px的空間--> <div style="padding:20px; margin:20px; background-color:lightblue; border:1px solid black;"> 大家好 我是小白,接下來要介紹的是 padding & margin </div> ``` ![](https://i.imgur.com/lsbeRNw.png) ```htmlmixed= <!--可以單設定上下左右--> <div style="padding-top:20px; margin-top:20px; background-color:lightblue; border:1px solid black;"> 大家好 我是小白,接下來要介紹的是 padding & margin </div> <!--也可以順時針設定空間大小--> <div style="padding:20px 30px 40px 50px; margin:20px 50px 40px 30px; background-color:lightblue; border:1px solid black;"> 大家好 我是小白,接下來要介紹的是 padding & margin </div> <!--也可以設定負數--> <div style="padding:20px; margin:-40px; background-color:lightblue; border:1px solid black;"> 大家好 我是小白,接下來要介紹的是 padding & margin </div> ``` ## Float & Display 這兩個屬性是專門控制排版的屬性,網頁的排版實際上有點3D的概念 https://www.tpisoftware.com/tpu/articleDetails/1941 ### Float * 假設我們現在有一張圖片和一段文字 ```htmlmixed= <img src="../html/IMG_2417.JPG" width="200px" /> <p>孔雀是雞形目、雉科的一類鳥的通稱,一般特指孔雀屬(屬名:Pavo)的綠孔雀和藍孔雀,廣義的孔雀則還包含單獨成屬的剛果孔雀。藍孔雀雄鳥羽毛為深藍色,富有金屬光澤,分布於印度和斯里蘭卡。綠孔雀羽色則為翠綠色,分布於東南亞和中國雲南省。此外,藍孔雀還有白孔雀和黑孔雀兩種變異色型。</p> ``` 圖中,綠色方塊為圖片,紅色方塊為段落 ![](https://i.imgur.com/cxh1MoV.png =600x) 如果換個角度看,圖片與段落是互相卡在一起的,文字則是再上一層 ![](https://i.imgur.com/wzkvNs2.png =600x) 一旦設定 float 之後,圖片就會浮起來 ```htmlmixed= <img src="../html/IMG_2417.JPG" width="200px" style="float:left" /> ``` ![](https://i.imgur.com/ADOYpR2.png =600x) 此時,段落沒有地方可以卡了,就會自動往上移 ![](https://i.imgur.com/1epPv16.png =600x) 接著文字也會跟著往上移,看圖片在哪邊 假設圖片在左 ![](https://i.imgur.com/q8tRIF4.png =600x) 假設圖片在右 ![](https://i.imgur.com/KvISs45.png =600x) <br> * 側欄設定就可以用這種方法 ```htmlmixed= <ul style="background-color: lightblue; margin: 0px; padding: 15px; float: left;"> <li>主頁</li> <li>部落格</li> <li>關於</li> <li>聯絡我們</li> </ul> ``` ### Display 有一些標籤本來就會有預設的 Display 方式,像不管文字長度都占用整行空間顯示的標籤,預設的 Display 就是 block,而只會占用符合文字長度空間的標籤預設的 Display 方式就是 inline ```htmlmixed= <!-- 預設顯示方式:block --> <p style="display:inline;">你好</p> <p style="display:inline;">哈哈</p> <!-- 預設顯示方式:inline --> <span style="display:block;">span1</span> <span style="display:block;">span2</span> ``` ## Position 如果 position 設為 fixed 或 absolute 他就會像變成自己獨立的一層,有點像 float 那樣的感覺,而有設定相對位置的物件會蓋過沒有設定相對位置的物件 ### Fixed 固定定位 把物件固定在畫面的某個地方,會隨著滾輪一起移動,此時物件就會變成自己獨立一層,下面的物件就會往上移動 ```htmlmixed= <!-- 記得要給一個位置 top left right bottom 不然會變成 static position 可能會找不到 --> <div style=" position:fixed; top:10px; width:80px; height:80px; background-color:blue; "></div> ``` ### Relative 相對定位 位置設置成 relative 物件就會顯示在原本位置的相對位置,此時不會變自己獨立一層,下面的物件不會往上移動 ```htmlmixed= <div style=" position:relative;bottom:10px; width:80px; height:80px; background-color:darkolivegreen; "></div> ``` ### Absolute 絕對定位 位置設置成 absolute ,物件就會變成自己獨立一層飄浮起來,外面的 div 就不會知道裡面有 div,會固定在某個位置,但不會隨著滾輪移動 ```htmlmixed= <div style="padding:30px; border:5px solid red;"> <div style="padding:30px; border:5px solid red;"> <div style="position:absolute; top:0px; right:0px; width:40px; height:40px; background-color:blue;"> </div> </div> </div> ``` <br> 特別的是,如果絕對定位外層的 div 也有做定位的話,那絕對定位就會根據外層的位置來做定位 ```htmlmixed= <div style="padding:30px; border:5px solid red;"> <div style="position:relative; padding:30px; border:5px solid red;"> <div style="position:absolute; top:0px; right:0px; width:40px; height:40px; background-color:blue;"> </div> </div> </div> ``` ![](https://i.imgur.com/lCKLOok.png) <br> 如果定位是定在更外層,那絕對定位就會根據最外層的定位來定位 ```htmlmixed= <div style="position:relative;padding:30px; border:5px solid red;"> <div style=" padding:30px; border:5px solid red;"> <div style="position:absolute; top:0px; right:0px; width:40px; height:40px; background-color:blue;"> </div> </div> </div> ``` ![](https://i.imgur.com/KTIQAzk.png) ## Opacity opacity屬性可以設定我們的透明度,介於 0 ~ 1 之間,0 是完全透明,1 是原本的顏色 ## Border-radius border-radius 屬性可以讓我們的邊緣變成圓弧狀的,只要把數值設為長度的一半就會變成圓形 ```htmlmixed= <div style="opacity: 1; border-radius: 40px; width: 80px; height: 80px; background-color: blue; "></div> ``` 也可以客製調整每個角的圓弧程度 ```htmlmixed= <div style="opacity: 1; border-radius: 20px 30px 40px 50px; width: 80px; height: 80px; background-color: blue; "></div> ``` <br> ## Style標籤 style 標籤通常會被包含在 head 標籤裡面,可以在 style 標籤裡再設定不同標籤的屬性 ```htmlmixed= <head> <meta charset="utf-8" /> <title>小白的網頁 </title> <style> p{ color:blue; background-color:grey; } h1{ color:red; } </style> </head> ``` ## 引入外部 css檔 當我們有很多的檔案都需要透用同一份 css 設定的時候就可以使用,引入外部檔案要寫在 head 標籤裡面,用 link 標籤表示,rel 屬性是表示我們引入的檔案類型,而 stylesheet 就表示我們引入的是 css檔, href 則是路徑表示 <br> 先設置一個 style.css 檔 ```css= p{ color: yellow; background-color: grey; } h1{ color: blue; } ``` 再從html檔引入 ```htmlmixed= <head> <link rel="stylesheet" href="style.css" /> </head> ``` <br> ## class 我們可以在標籤裡面設置多個class屬性,然後在 head 標籤裡定義每個 class 屬性的特性 ```htmlmixed= <head> <style> .food{ color:red; } .person{ color:blue; } .background-grey{ background-color:grey; } </style> </head> <body> <p class="food background-grey">麻婆豆腐小辣</p> <p class="food">肋眼牛排三分熟</p> <p class="food">清茶加珍珠微微</p> <p class="person background-grey">蔡英文</p> <p class="person">馬英九</p> <p class="person">陳水扁</p> </body> ``` ## id 我們可以在標籤裡面一個且唯一的 id 屬性,然後在 head 標籤裡定義 id 屬性的特性 ```htmlmixed= <head> <style> #css-h1{ color:yellow; } </style> </head> <body> <h1 id="css-h1">css教學</h1> </body> ``` <br> ## 其他css 也可以同時表示 ```htmlmixed= .class-1, id-1 { background-color: grey; } ``` 套用在所有標籤上 ```htmlmixed= * { background-color: grey; #會變成整個頁面的背景色 color:red; } * 字號屬性會套用在整個html的所有標籤上面 ``` 套用在列表裡 * 列表裡的 li 標籤 ```htmlmixed= .ul li { background-color: grey; } ``` * 列表裡的 a 標籤 ```htmlmixed= .ul a { background-color: grey; } ``` 套用在所有包含type的標籤上 ```htmlmixed= [type] { background-color: grey; } [href] { background-color: grey; } ``` 游標移過去會有效果 ```htmlmixed= h1:hover { background-color: grey; } p:hover { background-color: grey; } [type]:hover { background-color: grey; } ``` ###### tags: `HTML`