css小案例:導航欄特效

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

 

 

 

首先能夠將html代碼寫出: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部分:web

 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 }                       

 

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

1、能夠看出咱們所寫的html部分文字內容爲小寫,而顯示效果爲全大寫,這裏有一個css屬性:text-transform   定義文本的大小寫狀態,此屬性對中文無心義。瀏覽器

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

nonespa

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

capitalizeorm

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

uppercase

定義僅有大寫字母。

lowercase

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

inherit

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

因此這裏經過css部分寫入text-transform: uppercase;來實現。

2、僞元素

  一、 基本語法

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

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) ". " }

  二、進階技巧

  清除浮動是一個時常會遇到的問題,很多人的解決辦法是添加一個空的 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

相關文章
相關標籤/搜索