1. 程式人生 > 實用技巧 >CSS 學習筆記 3

CSS 學習筆記 3

CSS組合選擇符

  • 後代選擇器(以空格分隔)
  • 子元素選擇器(以大於>號分隔)
  • 相鄰兄弟選擇器(以加號+分隔)
  • 普通兄弟選擇器(以波浪號~分隔)

CSS偽類是用來新增一些選擇器的特殊效果。selector.class:pseudo-class {property:value;}

    偽類可以看作以選中元素為基準點,此元素的一些狀態或屬性。

anchor偽類

a:link {color:#FF0000;} /* 未訪問的連結 */
a:visited {color:#00FF00;} /* 已訪問的連結 */
a:hover {color:#FF00FF;} /* 滑鼠劃過連結 */
a:active {color
:#0000FF;} /* 已選中的連結 */

CSS :first-child 偽類 父元素的第一個子元素

所有CSS偽類/元素

:checked input:checked 選擇所有選中的表單元素
:disabled input:disabled 選擇所有禁用的表單元素
:empty p:empty 選擇所有沒有子元素的p元素
:enabled input:enabled 選擇所有啟用的表單元素
:first-of-type p:first-of-type 選擇的每個 p 元素是其父元素的第一個 p 元素
:in-range input:in-range 選擇元素指定範圍內的值
:invalid input:invalid 選擇所有無效的元素
:last-child p:last-child 選擇所有p元素的最後一個子元素
:last-of-type p:last-of-type 選擇每個p元素是其母元素的最後一個p元素
:not(selector) :not(p) 選擇所有p以外的元素
:nth-child(n) p:nth-child(2) 選擇所有 p 元素的父元素的第二個子元素
:nth-last-child(n) p:nth-last-child(2) 選擇所有p元素倒數的第二個子元素
:nth-last-of-type(n) p:nth-last-of-type(2) 選擇所有p元素倒數的第二個為p的子元素
:nth-of-type(n) p:nth-of-type(2) 選擇所有p元素第二個為p的子元素
:only-of-type p:only-of-type 選擇所有僅有一個子元素為p的元素
:only-child p:only-child 選擇所有僅有一個子元素的p元素
:optional input:optional 選擇沒有"required"的元素屬性
:out-of-range input:out-of-range 選擇指定範圍以外的值的元素屬性
:read-only input:read-only 選擇只讀屬性的元素屬性
:read-write input:read-write 選擇沒有隻讀屬性的元素屬性
:required input:required 選擇有"required"屬性指定的元素屬性
:root root 選擇文件的根元素
:target #news:target 選擇當前活動#news元素(點選URL包含錨的名字)
:valid input:valid 選擇所有有效值的屬性
:link a:link 選擇所有未訪問連結
:visited a:visited 選擇所有訪問過的連結
:active a:active 選擇正在活動連結
:hover a:hover 把滑鼠放在連結上的狀態
:focus input:focus 選擇元素輸入後具有焦點
:first-letter p:first-letter 選擇每個<p> 元素的第一個字母
:first-line p:first-line 選擇每個<p> 元素的第一行
:first-child p:first-child 選擇器匹配屬於任意元素的第一個子元素的 <p> 元素
:before p:before 在每個<p>元素之前插入內容
:after p:after 在每個<p>元素之後插入內容
:lang(language) p:lang(it) 為<p>元素的lang屬性選擇一個開始值

CSS 導航欄

垂直導航條例項

  • list-style-type:none - 移除列表前小標誌。一個導航欄並不需要列表標記
  • 移除瀏覽器的預設設定將邊距和填充設定為0
  • display:block - 顯示塊元素的連結,讓整體變為可點選連結區域(不只是文字),它允許我們指定寬度
  • float:left - 使用浮動塊元素的幻燈片彼此相鄰
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;
}
 
/* 滑鼠移動到選項上修改背景顏色 */
li a:hover {
    background-color: #555;
    color: white;
}
.active {
    background-color: #4CAF50;
    color: white;
}

水平導航條例項

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #333;
}
 
li {
    float: left;
}
 
li a {
    display: block;
    color: white;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
}
 
/*滑鼠移動到選項上修改背景顏色 */
li a:hover {
    background-color: #111;
}

CSS 下拉選單

HTML 部分:

我們可以使用任何的 HTML 元素來開啟下拉選單,如:<span>, 或 a <button> 元素。

使用容器元素 (如: <div>) 來建立下拉選單的內容,並放在任何你想放的位置上。

使用 <div> 元素來包裹這些元素,並使用 CSS 來設定下拉內容的樣式。

CSS 部分:

.dropdown類使用position:relative, 這將設定下拉選單的內容放置在下拉按鈕 (使用position:absolute) 的右下角位置。

.dropdown-content類中是實際的下拉選單。預設是隱藏的,在滑鼠移動到指定元素後會顯示。 注意min-width的值設定為 160px。你可以隨意修改它。

注意:如果你想設定下拉內容與下拉按鈕的寬度一致,可設定width為 100% (overflow:auto設定可以在小尺寸螢幕上滾動)。

我們使用box-shadow屬性讓下拉選單看起來像一個"卡片"。

:hover選擇器用於在使用者將滑鼠移動到下拉按鈕上時顯示下拉選單。

<style>
/* 下拉按鈕樣式 */
.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

/* 容器 <div> - 需要定位下拉內容 */
.dropdown {
    position: relative;
    display: inline-block;
}

/* 下拉內容 (預設隱藏) */
.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

/* 下拉選單的連結 */
.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

/* 滑鼠移上去後修改下拉菜單鏈接顏色 */
.dropdown-content a:hover {background-color: #f1f1f1}

/* 在滑鼠移上去後顯示下拉選單 */
.dropdown:hover .dropdown-content {
    display: block;
}

/* 當下拉內容顯示後修改下拉按鈕的背景顏色 */
.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
</style>

<div class="dropdown">
  <button class="dropbtn">下拉選單</button>
  <div class="dropdown-content">
    <a href="#">菜鳥教程 1</a>
    <a href="#">菜鳥教程 2</a>
    <a href="#">菜鳥教程 3</a>
  </div>
</div>