好區別, 因此把一種div寫成ul, 另外一種寫成ol.javascript
在元素的div的佈局上, 你能夠有三種選擇: 天然的文檔流排列, position:absolute, 和float
這就要根據你的佈局效果 動畫的表現方式 以及 jquery在實現上是否方便, 來選擇了.
好比: div輪播,php
通常就以5px, 10px, 20px爲梯度進行設置... 通常方塊形狀, 就設置成正方形, 即寬度和高度相等。css
但這對前端足夠了.
DW 也有代碼提示功能 ctrl+H, 能夠針對js, jquery,php等的提示, 很強大.html
================================================================== 1. 肯定三種選擇器的權重: html標籤的權重=1, 類class=10, id的權重=100 2. 統計每一個css樣式選擇器的權重, 分別把各種選擇器的權重統計起來, 而後相加: 即把該樣式選擇器中的全部的標籤的權重 + 全部的類的權重 + 全部的id的權重 3. 統計權重的時候, 不要管空格, 只要有一個(選擇器), 就算一個, 就加一個 4. 權重高的css樣式, 被優先使用 5. 權重相同的css樣式選擇器, 按照後面的樣式 覆蓋前面的樣式來決定 ================================================================== 6. 所以, 在寫相似 div > ol > li 中的.current, .focus等樣式時, 就不能只寫一個 光光的 .current {....}, 這時,雖然當前的li確實能夠用獲得這個.current, 可是因爲它的css權重更低, 因此跟前面.class ol li相沖突的樣式就不起做用了! 這時, 要寫成: .class ol .current {....} 這樣.current中的樣式 跟 .class ol li中相沖突的樣式纔會被 優先使用! 7. 寫輪播器的時候, 當前 "數字選擇指示器" <ol> <li> 5 </li></ol> 的類 .current的具體 樣式, 不能直接寫到元素中, 要寫成 .current樣式class的 方式, 由於這個 .current 類樣式要經過js 分別用到其他幾個li元素上. 8. 因此, 這也是前面所說的, 寫css樣式的時候, 最好也要遵循 "層次性" 的道理. 不只僅只是層次清晰, 更重要的是, 能確保樣式的可以獲得 有效使用. 這種方法, 也能夠用來 以"層次性" "層級選擇器" 代替 寫 額外的 class和id. 9. 在寫層次的時候, **對最後一級選擇器, 一般只在" 標籤選擇器/類樣式/id選擇器"中, 只選擇寫同樣就行了. 也就是說, 對class, id只寫到它們的父元素那一級就行了, **不要寫多: /* 下面的css選擇器的權重是: .all=10, ol=1 li=1, 因此總的權重是: 10+1+1=12 */ .all ol li { float: left; border: 1px solid #ccc; width: 20px; height: 20px; text-align: center; line-height: 20px; margin-left:10px; cursor: pointer; } /* 下面的css選擇器的權重是: .all=10, ol=1 .current=10, 因此總的權重是: 10+1+10= 21 */ .all ol .current { font-weight: bold; font-size: 2em; color: red; width: 30px; height: 30px; border: 1px solid blue; // 這裏的高度/寬度/邊框就跟上面的相沖突了, 因爲它的權重大,因此才能應用這個 line-height: 30px; // 不然, 若是隻寫 .current, 它的權重爲10, 小於12, 就不能使li的盒子變大! } 10. 寫.current時, 寫到.all ol就能夠了, 不要寫成: .all ol li.current. 由於後一種方式的寫法有兩個問題: 一是 繁瑣, 增長了無謂的冗餘代碼 二是, 容易出錯, 這裏li和.current之間還不能有空格, 不然就表示 祖先/子孫之間的包含關係, 很明顯, li下沒有.current的子元素了.
就是要使他們的 margin-top(或者margin-bottom)的值要不一樣:
.all ol li {
...
margin-top: 10px;
}
.all ol .current {
...
margin-top: 0;
}
// 兩個都要設, 不能只設置其中一個.前端
針對使用頻繁的onmouseover,onmouseout,jQuery使用了 "合成事件" 的方法: hover(enter,leave)方法//模擬光標懸停事件,光標移動到 元素上觸發enter函數,移出元素時觸發leave函數。 <script type="text/javascript"> $(function(){ $("#source").hover(function(){ $("#pointer").text("移入光標");},function(){ $("#pointer").text("移出光標");}); }) </script>
有三種方式:
get([index]); //返回的是dom元素/dom集合
:eq(index) :gt(index) :lt(index) // 經過選擇器來操做 就有大於/小於/等於
eq(index) // 經過過濾器,就只有一種 : "等於".java
attr是操做元素的" 屬性" , 固然能夠用來設置元素的class類, 這個是經過更改 "class"這個屬性來實現的, 它是一個覆蓋過程. 重要的是, attr不只能夠用來設置 class 類樣式, 主要仍是設置其餘屬性, 如src, href等等jquery
css是一種設置 "行內樣式" 的方法, 更直接. 好比要直接操做元素的 某個style樣式, 如width, height, z-index時,
你不能用attr, 由於這個不是屬性, 也不能用addClass等, 因此就只能用css!ajax
addClass是增長/刪除/切換類樣式的方法, 它須要預先設置一個類. 這個主要是用於這個類是動態的增長/
或刪除, "(不會覆蓋原來的已經設置的類)" 如常見的div ul 輪播瀏覽器
三種均可以, 看你的需求而定, 各有各的用途! 應該不會有混淆!dom
通常就是 要求 ####你消失的時候是一會兒就不見了, 而出現的時候是逐漸出現的.
$uli.css('left', '+500px'); $uli.stop(true,false).animate({'left': '0'},300); // css 和 animate的內部實現基本上是同樣的, 區別只是一個是靜態的css, 一個是動態的css變化. // 第一行的 div消失, 是直接使用的 靜態css變化. // 第二行的 div出現, 是使用的 動態 animate css變化.
當一個浮動元素的父容器未設置高度,其中元素浮動後, 會脫離文檔流,使得父容器沒法計算浮動元素的高度,致使父容器高度塌陷。
解決方法有:
1. 單獨給父容器設置一個固定高度。 2. 使父容器觸發BFC,觸發後浮動元素也會計算高度,從而撐開父容器高度。觸發方法能夠設置:float,overflow,inlink-block;display:table-cell等 3. 在浮動元素後增長一個"爲了佈局而存在的" 空的div, 設置這個空的div的 css樣式: clear: both; 4. 給父容器設置一個僞類 div:after{ content:""; display:block; clear:both; }
Z-index屬性只能工做於那些被定義了position屬性(而不論是定義的 relative仍是absolute. fixed)的元素中。這並足夠的重視,尤爲是對於那些新手。
在書寫z-index的時候, 只在同級元素之間寫, 不要在父元素上寫z-index
子元素的z-index 並不會對父級的元素有效
即: 假設 儘管子元素的z-index爲100, 而它們的父容器的z-index爲1,
而跟他的父容器平級的 其餘元素的z-index 爲2, 那麼 其餘元素仍然在父容器及其全部的字元素的上面!
<!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=utf-8" /> <title>pictures display</title> <style type="text/css"> * { list-style:none; } .all { width: 500px; height: 300px; overflow: hidden; position: relative; margin: 30px auto; } .all ul { position: relative; z-index: 1; } .all ul li { position: absolute; } .all ol { position: absolute; z-index: 2; right: 10px; bottom: 10px; } .all ol li { float: left; margin-left:10px; background-color: #666; /* 像這種數字邊框 都要求有 背景底色的*/ border: 1px solid #ccc; width: 20px; height: 20px; text-align: center; line-height: 20px; cursor: pointer; margin-top: 10px; } .all ol .current { font-weight: bold; font-size: 1.2em; color: red; width: 30px; height: 30px; line-height: 30px; border: 1px solid #F93; margin-top: 0; } </style> <script type="text/javascript" src="js/jquery-1.10.2.js"></script> <script type="text/javascript"> $(function(){ var z=10; $('ol li').mouseover(function(){ var idx = $(this).index(); var $uli = $('ul li').eq(idx); $(this).attr('class', 'current'); $(this).siblings().attr('class',''); z++; $uli.css('z-index', z); $uli.css('left', '500px'); $uli.animate({'left': '0'},500); }); }); </script> </head> <body> <div class="all"> <ul> <li><img src="img/red.jpg" width="500" height="300"/>1</li> <li><img src="img/orange.jpg" width="500" height="300" />2</li> <li><img src="img/green.jpg" width="500" height="300" />3</li> <li><img src="img/blue.jpg" width="500" height="300" />4</li> <li><img src="img/purple.jpg" width="500" height="300" />5</li> </ul> <ol> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li class="current">5</li> </ol> </div> </body> </html>