HTML和CSS設定動態導航以及CSS中虛擬元素的簡單說明

來源:互聯網
上載者:User

標籤:顯示   行內元素   滑鼠   ref   底線   back   側邊欄   文本   重複   

HTML頁面代碼:

 

 1 <!DOCTYPE html> 2 <html> 3 <head> 4     <title>Test</title> 5     <meta charset="utf-8"> 6     <link rel="stylesheet" type="text/css" href="style.css"> 7     <script type="text/javascript" src="jquery.js"></script> 8     <script 1type="text/javascript"> 9    10     </script>11 </head>12 <body>13     <div id="navigator">14         <ul id="navList">15             <li><a href="#" class="menu">首頁</a></li>16             <li><a href="#" class="menu">新隨筆</a></li>17             <li><a href="#" class="menu">訂閱</a></li>18             <li><a href="#" class="menu">管理</a></li>19         </ul>20     </div>21 </body>22 </html>23 24  

 

CSS樣式代碼:

 1 a:link { 2     color: black; 3     text-decoration: none;  /*設定連結無需底線*/ 4 } 5  6 #navigator{ 7     background-color:#AEAEAE; 8     position:absolute; 9     left:50%;10     margin-left:-200px;11     /*bottom:0px;*/12     /*width:400px;*/13     height:80px;14 }15 #navList{16     min-height:80px;17     overflow:hidden;18 }19 #navList li{20     float:left;21     list-style:none;   /*設定無需無序元素前預設的黑點*/22 }23 24     #navList a{25         display:block;26         width:100px;27         height:80px;28         line-height:80px;29         font-size:16px;30         text-align:center;31         position:relative;32         -webkit-transition:all .4s;33     }34     #navList a:after,#navList a:before{ /*CSS中,E:after表示虛擬元素,多用於設定div之間的間隙*/35         position:absolute;36         display:block;37         bottom:2px;38         opacity:0;             /*隱藏文字兩邊的中括弧*/39         -webkit-transition:all .4s;40     }41 42 #navList a:after{43     content:"]";44     right:20px;45 }46 #navList a:before{47     content:"[";48     left:20px;49 }50 #navList a:link,#navList a:visited,/*設定超連結已經被訪問過時的樣式*/#navList a:active{51     color:#eee;52 }53 54 #navList a:hover{55     color:#f62459;56     text-decoration:none;57 }58 #navList a:hover:after{59     right:0px;60     opacity:1;61 }62 #navList a:hover:before{63     left:0px;64     opacity:1;65 }

 

顯示效果如下:

 

當滑鼠停留在導覽列的連結上時,文字兩旁會顯示紅色中括弧。

 

CSS中虛擬元素說明

以上頁面代碼如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>單列定寬單列自適應結構</title>

<style>

/*設定頁面中所有元素的內外補丁為0,便於便捷的頁面配置*/

*{

margin:0;

padding:0;

}

/*設定頭部資訊以及底部資訊的高度為30px,並添加淺灰色背景*/

#header,#footer{

height:30px;

background-color:#e8e8e8;

}

/*設定頁面內容地區上下外補丁為10px*/

#container{

margin:10px 0;

}

/*設定主要內容地區的寬度為70%,背景色以及文本顏色,並居左顯示*/

.mainBox{

float:left;/*將主要內容地區向左浮動*/

width:70%;/*將mainBox的寬度修改為70%*/

color:#ff0000;

background-color:#333333;

}

/*設定側邊欄的寬度為200px,背景色以及文本顏色,並居右顯示*/

.sideBox{

float:right;/*將側邊欄向右浮動*/

width:200px;/*將sideBox的寬度修改為200px*/

margin-left:-200px;/*添加負邊距使sideBox向左浮動縮排,就是當瀏覽器視窗變小任然不改變sideBox的大小,這時sideBox就會插入到旁邊的mainBox裡,而如果沒有設定,視窗變小時就會換行打亂下面的布局*/

color:#ffffff;/*設定文本顏色*/

background-color:#999999; /*設定背景顏色*/

}

/*清除內容地區的左右浮動,本段重點理解一下(after是什麼意思)*/

#container:after{

display:block;

visibility:hidden;

font-size:0;

line-height:0;

clear:both;

content:"";

}

/*添加地步資訊的對上級標籤元素的浮動的清除*/

#footer{

clear:both;

}

</style>

</head>

<body>

<div id="header">頭部資訊</div>

<div id="container">

<div class="mainBox">

<p>主要內容地區</p>

<p>已經不再只是一行文字了</p>

<p>要放很多很多東西到這個地區中來</p>

<p>不斷的重複啊重複著……</p>

<p>不斷的重複啊重複著……</p>

<p>不斷的重複啊重複著……</p>

<p>不斷的重複啊重複著……</p>

<p>不斷的重複啊重複著……</p>

<p>不斷的重複啊重複著……</p>

<p>不斷的重複啊重複著……</p>

<p>不斷的重複啊重複著……</p>

<p>不斷的重複啊重複著……</p>

</div>

<div class="sideBox">側邊欄</div>

</div>

<div id="footer">底部資訊</div>

</body>

</html>

這段代碼多了紅色部分;現將紅色部分代碼注釋,顯示頁面:

可見當沒有紅色代碼部分時,底部資訊和主要內容部分緊緊貼在一起,之間沒有空隙。

#container:after{

display:block;

visibility:hidden;

font-size:0;

line-height:0;

clear:both;

content:"";

}

這段代碼中的#container:after是針對一個虛擬元素進行CSS樣式設定,HTML頁面並沒有這樣一個div存在。

after是在元素後面的意思,實質是在元素之後新增內容。
這個虛擬元素允許在元素內容的最後面插入產生內容,需要和content屬性一起使用,設定在對象後發生的內容。預設地,這個虛擬元素是inline行內元素,不過可以使用屬性 display 改變這一點。

HTML和CSS設定動態導航以及CSS中虛擬元素的簡單說明

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.