css小案例:導航欄特效


css小案例:導航欄特效,實現如下圖所示效果;

 

 

 

首先可以將html代碼寫出:

1 <nav class="cl-effect-1">
2     <a href="#">Umbrella</a>
3     <a href="#">Ineffable</a>
4     <a href="#">Lilt</a>
5     <a href="#">Mellifluous</a>
6     <a href="#">Serendipity</a>
7 </nav>

css部分:

 1 nav{
 2         text-align: center;
 3 }
 4 nav a {
 5         position: relative;
 6         display: inline-block;
 7         margin: 15px 25px;
 8         outline: none;
 9         color: #fff;
10         text-decoration: none;
11         text-transform: uppercase;
12         letter-spacing: 1px;
13         font-weight: 400;
14         text-shadow: 0 0 1px rgba(255,255,255,0.3);
15         font-size: 1.35em;
16 }
17             
18 nav a:hover,
19 nav a:focus {
20         outline: none;
21 }
22 .cl-effect-1 a {
23         margin: 0 10px;
24             padding: 10px 20px;
25 }
26             
27 .cl-effect-1 a::before {
28         position: absolute;
29         top: 0;
30         left: 0;
31         width: 100%;
32         height: 2px;
33         background: #fff;
34         content: '';
35         -webkit-transition: top 0.3s;
36         -moz-transition: top 0.3s;
37         transition: top 0.3s;
38 }
39             
40 .cl-effect-1 a::after {
41         position: absolute;
42         top: 0;
43         left: 0;
44         width: 2px;
45         height: 2px;
46         background: #fff;
47         content: '';
48         -webkit-transition: height 0.3s;
49         -moz-transition: height 0.3s;
50         transition: height 0.3s;
51 }
52             
53 .cl-effect-1 a:hover::before {
54         top: 100%;
55         opacity: 1;
56 }
57             
58 .cl-effect-1 a:hover::after {
59         height: 100%;
60 }                       

 

代碼很簡單,下面就其中的要素重點來解析。

一、可以看出我們所寫的html部分文字內容為小寫,而顯示效果為全大寫,這里有一個css屬性:text-transform   定義文本的大小寫狀態,此屬性對中文無意義。

    取值:capitalize | uppercase | lowercase | none | inherit

none

默認。定義帶有小寫字母和大寫字母的標准的文本。

capitalize

文本中的每個單詞以大寫字母開頭。

uppercase

定義僅有大寫字母。

lowercase

定義無大寫字母,僅有小寫字母。

inherit

規定應該從父元素繼承 text-transform 屬性的值。

所以這里通過css部分寫入text-transform: uppercase;來實現。

二、偽元素

  1、 基本語法

  在了解進階的應用之前,先來了解一下語法規則。平常僅僅需要將這兩個偽元素用於添加一些自定義字符時,只需使用偽類使用的單冒號寫法,以保證瀏覽器的兼容性:

Html代碼 

1 p:before  {}  

  不過,在 CSS3 中為了區別偽元素和偽類為偽元素使用了雙冒號,因此如果使用了 display 或者 width 等屬性時使得顯示脫離了原本元素后,建議按照標准雙寫。過於老的瀏覽器可能會存在支持問題,不過偽元素大多是配合 CSS3 使用,就無所謂向下兼容了:

Html代碼 

1 img::after {}  

  這兩個偽類下特有的屬性 content ,用於在 CSS 渲染中向元素邏輯上的頭部或尾部添加內容。注意這些添加不會改變文檔內容,不會出現在 DOM 中,不可復制,僅僅是在 CSS 渲染層加入。比較有用的是以下幾個值:

·  [String] - 使用引號包括一段字符串,將會向元素內容中添加字符串。示例:

Html代碼 

1 a:after { content: "↗"; }  

·  attr() 調用當前元素的屬性,可以方便的比如將圖片的 Alt 提示文字或者鏈接的 Href 地址顯示出來。示例:

Html代碼 

1 a:after { content:"(" attr(href) ")"; } 

·  url() / uri() 用於引用媒體文件。示例:

Html代碼 

1 h1::before { content: url(logo.png); }  

·  counter() –  調用計數器,可以不使用列表元素實現序號功能。具體請參見 counter-increment counter-reset 屬性的用法。示例:

Html代碼 

1 h2:before { counter-increment: chapter; content: "Chapter " counter(chapter) ". " }

  2、進階技巧

  清除浮動是一個時常會遇到的問題,不少人的解決辦法是添加一個空的 div 應用 clear:both; 屬性。現在,無需增加沒有意義的元素,僅需要以下樣式即可在元素尾部自動清除浮動:

Html代碼

1 .clear-fix { *overflow: hidden; *zoom: 1; }  
2 
3 .clear-fix:after { display: table; content: ""; width: 0; clear: both; }  

  許多人喜歡給 blockquote 引用段添加巨大的引號作為背景,這種時候我們就可以用 :before 來代替 background 了,即可以給背景留下空間,還可以直接使用文字而非圖片:

Html代碼 

 1  blockquote::before {  
 2 
 3  content: open-quote;  
 4 
 5  position: absolute;  
 6 
 7  z-index: -1;  
 8 
 9  color: #DDD;  
10 
11  font-size: 120px;  
12 
13  font-family: serif;  
14 
15  font-weight: bolder;  
16 
17  }  

 

  用 :before :after 偽類結合更多 CSS3 強大的特性,還可以完成非常多有意思的特效和 Hack

 

 

取值:capitalize | uppercase | lowercase | none | inherit


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM