1. 程式人生 > >HTML前端入門歸納——樣式

HTML前端入門歸納——樣式

  本人一直在從事.net的開發,介面都是採用的WPF,近期花了一個多月進行HTML前端的學習,在這裡呢進行學習總結和歸納。

  本系列將主要分為4個模組:

    控制元件

    樣式

    佈局

    JavaScript

  根據多年WPF的開發經驗,介面就是控制元件及樣式與佈局的組合,再加上程式碼來控制互動邏輯,本期先對HTML常用的樣式屬性進行歸納。

  選擇器

  選擇器用於對HTML控制元件及css的樣式進行匹配,常用的選擇器有如下幾種:

  id選擇器

  

  以下的樣式規則應用於元素屬性 id="para1":

1 #para1
2 {
3     text-align:center; color:red;
4 }

  class選擇器  

  在以下的例子中,所有擁有類名為center的 HTML 元素均為居中。

1 .center 
2 {
3     text-align:center;
4 }

 

  所有的 p 元素使用 class="center" 讓該元素的文字居中:

1 p.center 
2 {
3     text-align:center;
4 }

 

  分組選擇器

1 h1,h2,p
2 {
3     color:green;
4 }

  以上樣式與下面的效果一致

 1 h1
 2 {
 3     color:green; 
 4 } 
 5 h2 
 6 {
 7      color:green; 
 8 } 
 9 p 
10 {
11      color:green; 
12 }

  巢狀選擇器

  適用於選擇器內部的選擇器的樣式

  • p{ }: 為所有 p 元素指定一個樣式。
  • .marked{ }: 為所有 class="marked" 的元素指定一個樣式。
  • .marked p{ }: 為所有 class="marked" 元素內的 p 元素指定一個樣式。
  • p.marked{ }: 為所有 class="marked" 的 p 元素指定一個樣式。

  

  後代選擇器

  以下例項選取所有插入到 <div> 元素中的 <p> 元素: 

1 div p 
2 {
3     background-color:yellow; 
4 }

 

  子元素選擇器

  以下例項選擇了<div>元素中所有直接子元素 <p> :

1 div>p 
2 {
3     background-color:yellow; 
4 }

  子元素選擇器與後代選擇器的區別在於,子元素選擇器僅對直接子元素有效,如果進行了一層巢狀,樣式就不再有效。

 

  屬性選擇器

  下面的例子是把包含標題(title)的所有元素變為藍色:

1 [title] 
2 {
3  color:blue; 
4 }

 

  屬性和值選擇器

  下面的例項改變了標題title='runoob'元素的邊框樣式:

1 [title=runoob] 
2 {
3     border:5px solid green; 
4 }

  常用的選擇器就介紹完了。

 

  屬性

  注:佈局相關的屬性將在下一節進行講解,這裡只進行樣式屬性的講解

  Background 背景

  該CSS 屬性定義背景效果:

  • background-color  用於設定背景色
  • background-image   用於設定背景圖片
  • background-repeat   使用者設定背景重複填充,分為不重複、x方向重複、y方向重複、xy方向均重複
  • background-attachment  用於設定背景的滑鼠滾動樣式,分為隨滾動移動,不隨滾動移動,從父元素繼承
  • background-position 用於設定背景的位置

  Text 文字

  文字不是屬性,是介面元素,該元素主要進行以下幾種屬性的設定:

  Color : 字型顏色

  Text-align : 文字對齊方式

  text-indent :首行文字縮排

  font-family : 字型設定

  font-size:字型大小

  text-decoration 文字裝飾,最常用的場景就是給連結a去掉下劃線  

  border 邊框

  border-style 邊框樣式常用值為無邊框及實線邊框

  border-width 邊框寬度

  border-color 邊框顏色

  另外,如果需要,我們也可通過來進行某一條邊的屬性設定

  Border-(left/right/top/bottom)-(color/style/width)

例如:

border-right-color

設定元素的右邊框的顏色。

 

 

  Margin / padding 外邊距 / 內邊距

 

   除了可以如上圖,對每個方向的外邊距/內邊距進行設定外,還能夠直接通過margin/padding進行多個方向的設定

  margin屬性可以有一到四個值。

  • margin:25px 50px 75px 100px;
    • 上邊距為25px
    • 右邊距為50px
    • 下邊距為75px
    • 左邊距為100px

 

  • margin:25px 50px 75px;
    • 上邊距為25px
    • 左右邊距為50px
    • 下邊距為75px

 

  • margin:25px 50px;
    • 上下邊距為25px
    • 左右邊距為50px

 

  • margin:25px;
    • 所有的4個邊距都是25px

  Padding也可通過一樣的方式進行設定。

 

  Size 尺寸

       尺寸的屬性主要是寬度/高度/最大寬度/最大高度/最小寬度/最小高度,分別對應如下屬性

屬性

描述

height

設定元素的高度。

line-height

設定行高。

max-height

設定元素的最大高度。

max-width

設定元素的最大寬度。

min-height

設定元素的最小高度。

min-width

設定元素的最小寬度。

width

設定元素的寬度。

 

  Display/Visibility 可見性

  這兩個屬性都可控制控制元件的可見性,主要值如下:

  Display:none 控制元件不可見,不佔用佈局

  Visibility:hidden 控制元件不可見,佔用佈局

  Display:inline 在一行內顯示相關控制元件

  Display:block 控制元件作為塊元素顯示

 

  Float: 浮動

  當窗體尺寸變化時,float屬性將幫助控制元件進行移動來完成重新佈局。

 

 

  Demo實戰:網站導航欄

  在開始之前我們需要知道一些有關連結的狀態

  a:link {color:#FF0000;} /* 未訪問的連結 */

  a:visited {color:#00FF00;} /* 已訪問的連結 */ 

  a:hover {color:#FF00FF;} /* 滑鼠劃過連結 */ 

  a:active {color:#0000FF;} /* 已選中的連結 */

  

  首先我們需要在html中新增一個列表,如下

1 <ul>
2     <li><a href="#home">主頁</a></li> 
3     <li><a href="#news">新聞</a></li> 
4     <li><a href="#contact">聯絡</a></li>
5     <li><a href="#about">關於</a></li> 
6 </ul>

  很顯然不夠美觀,我們需要對它的樣式進行調整

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 200px;
    background-color: #f1f1f1;
}
 
li a {
    display: block;
    color: #000;
    padding: 8px 16px;
    text-decoration: none;
}

  即可得到如下檢視

  這裡我們得給列表新增滑鼠懸停的效果,這裡用到的是a:hover.

li a:hover{
    background-color: #555;
    color: white;
}

 

對於選中項,我們可以通過設定其class = “active”來實現。

1  li a.active {
2     background-color: #4CAF50;
3     color: white;
4   }
1 <ul>
2     <li><a class = “active” href="#home">主頁</a></li> 
3     <li><a href="#news">新聞</a></li> 
4     <li><a href="#contact">聯絡</a></li> 
5     <li><a href="#about">關於</a></li> 
6 </ul>

  具體實現怎麼進行選中項的切換,將在下下節javascript後進行講解。