<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tinguo002

     

    CSS浮動(dòng)屬性Float詳解

    來(lái)源
    http://paranimage.com/css-float-attribute/

    什么是CSS Float?

    float 是 css 的定位屬性。在傳統(tǒng)的印刷布局中,文本可以按照需要圍繞圖片。一般把這種方式稱為“文本環(huán)繞”。在網(wǎng)頁(yè)設(shè)計(jì)中,應(yīng)用了CSS的float屬性的頁(yè)面元素就像在印刷布局里面的被文字包圍的圖片一樣。浮動(dòng)的元素仍然是網(wǎng)頁(yè)流的一部分。這與使用絕對(duì) 定位的頁(yè)面元素相比是一個(gè)明顯的不同。絕對(duì)定位的頁(yè)面元素被從網(wǎng)頁(yè)流里面移除了,就像印刷布局里面的文本框被設(shè)置為無(wú)視頁(yè)面環(huán)繞一樣。絕對(duì)定位的元素不會(huì) 影響其它元素,其它元素也不會(huì)影響它,無(wú)論它是否和其它元素挨著。

    像這樣在一個(gè)元素上用CSS設(shè)置浮動(dòng):

    #sidebar { float: right; }

    fload屬性有四個(gè)可用的值:Left 和Right 分別浮動(dòng)元素到各自的方向,None (默認(rèn)的) 使元素不浮動(dòng),Inherit 將會(huì)從父級(jí)元素獲取float值。

    Float的用處

    除了簡(jiǎn)單的在圖片周圍包圍文字,浮動(dòng)可用于創(chuàng)建全部網(wǎng)頁(yè)布局。

    web layout CSS浮動(dòng)屬性Float詳解

    Float對(duì)小型的布局同樣有用。例如頁(yè)面中的這個(gè)小區(qū)域。如果我們?cè)谖覀兊男☆^像圖片上使用Float,當(dāng)調(diào)整圖片大小的時(shí)候,盒子里面的文字也將自動(dòng)調(diào)整位置:

    reflow example 1 CSS浮動(dòng)屬性Float詳解

    同樣的布局可以通過(guò)在外容器使用相對(duì)定位,然后在頭像上使用絕對(duì)定位來(lái)實(shí)現(xiàn)。這種方式中,文本不會(huì)受頭像圖片大小的影響,不會(huì)隨頭像圖片的大小而有相應(yīng)變化。

    reflow example 2 CSS浮動(dòng)屬性Float詳解

    清除Float

    清除(clear)是浮動(dòng)(float)的相關(guān)屬性.一個(gè)設(shè)置了清除Float的元素不會(huì)如浮動(dòng)所設(shè)置的一樣,向上移動(dòng)到Float元素的邊界,而是會(huì)忽視浮動(dòng)向下移動(dòng)。如下,一圖頂千言。

    unclearedfooter CSS浮動(dòng)屬性Float詳解

    上例中,側(cè)欄向右浮動(dòng),并且短于主內(nèi)容區(qū)域。頁(yè)腳(footer)于是按浮動(dòng)所要求的向上跳到了可能的空間。要解決這個(gè)問(wèn)題,可以在頁(yè)腳(footer)上清除浮動(dòng),以使頁(yè)腳(footer)待在浮動(dòng)元素的下面。

    #footer { clear: both; }

    clearedfooter CSS浮動(dòng)屬性Float詳解

    清除(clear)也有4個(gè)可能值。最常用的是 both,清楚左右兩邊的浮動(dòng)。left 和 right 只能清楚一個(gè)方向的浮動(dòng)。none 是默認(rèn)值,只在需要移除已指定的清除值時(shí)用到。inherit 應(yīng)該時(shí)第五個(gè)值,不過(guò)很奇怪的是 IE 不支持(這個(gè)不奇怪吧,IE 從來(lái)都這么特立獨(dú)行吧 -糖伴西紅柿注)。只清除左邊或右邊的浮動(dòng),實(shí)際中很少見,不過(guò)絕對(duì)有他們的用處。

    directionalclearing CSS浮動(dòng)屬性Float詳解

    偉大的塌陷

    使用浮動(dòng)(float)的一個(gè)比較疑惑的事情是他們?cè)趺从绊懓麄兊母冈氐摹H绻冈刂话?dòng)元素,那么它的高度就會(huì)塌縮為零。如果父元素不包含任何的可見背景,這個(gè)問(wèn)題會(huì)很難被注意到,但是這是一個(gè)很重要的問(wèn)題。

    collapse CSS浮動(dòng)屬性Float詳解

    塌陷的直觀對(duì)立面更不好,看看下面的情況:

    whywecollapse CSS浮動(dòng)屬性Float詳解

    當(dāng)上面的塊級(jí)元素自動(dòng)擴(kuò)展以適應(yīng)浮動(dòng)元素時(shí),段落間的文本流中會(huì)出現(xiàn)非自然的空白換行,而且沒(méi)有有效的方法來(lái)修正這個(gè)問(wèn)題。對(duì)于這種情況,設(shè)計(jì)師的抱怨會(huì)更甚于對(duì)塌陷的抱怨(沒(méi)理解,不是設(shè)計(jì)完成之后才會(huì)進(jìn)行頁(yè)面編碼嗎?- 糖伴西紅柿)。

    為了防止怪異的布局和跨瀏覽器的問(wèn)題,塌陷問(wèn)題幾乎總是被要處理的。我們?cè)谌萜髦械母?dòng)元素之后,容器結(jié)束之前來(lái)清除浮動(dòng)。

    清除浮動(dòng)的技術(shù)

    如果你很明確的知道接下來(lái)的元素會(huì)是什么,可以使用 clear:both; 來(lái)清除浮動(dòng)。這個(gè)方法很不錯(cuò),它不需要 hack,不添加額外的元素也使得它有良好的語(yǔ)義性。當(dāng)然事情并不是都可以這樣解決的,工具箱中還是需要另外幾個(gè)清除浮動(dòng)的工具。

    空div方法從字面來(lái)看,是一個(gè)空的 div。
    。有時(shí)可能會(huì)用
    或者一些其他元素,但是 div 是最常用的,因?yàn)樗鼪](méi)有瀏覽器默認(rèn)樣式;沒(méi)有特殊功能,而且一般不會(huì)被 css 樣式化。這個(gè)方法因?yàn)橹皇菫榱吮憩F(xiàn),對(duì)頁(yè)面沒(méi)有上下文涵義而被純語(yǔ)義論者嘲笑。誠(chéng)然,從嚴(yán)格的角度來(lái)說(shuō)他們是對(duì)的,但是這個(gè)方法有效而且沒(méi)有任何傷害。

    overflow 方法在父元素上設(shè)置 overflow 這個(gè) css 屬性。如果父元素的這個(gè)屬性設(shè)置為 auto 或者 hidden,父元素就會(huì)擴(kuò)展以包含浮動(dòng)。這個(gè)方法有著較好的語(yǔ)義性,因?yàn)樗恍枰~外元素。但是,如果需要增加一個(gè)新的 div 來(lái)使用這個(gè)方法,其實(shí)就和空 div 方法一樣沒(méi)有語(yǔ)義了。而且要記住,overflow 屬性不是為了清除浮動(dòng)而定義的。要小心不要覆蓋住內(nèi)容或者觸發(fā)了不需要的滾動(dòng)條。

    簡(jiǎn)單清除方法使用了一個(gè)聰明的 css 偽選擇符(:after)來(lái)清除浮動(dòng)。比起在父元素上設(shè)置 overflow,只需要給它增加一個(gè)額外的類似于”clearfix”的類。這個(gè)類使用如下 css:

    			.clearfix:after {
       				content: ".";
       				visibility: hidden;
       				display: block;
       				height: 0;
       				clear: both;
    			}

     

    這會(huì)在清除浮動(dòng)的父元素之后應(yīng)用一點(diǎn)看不見的內(nèi)容。這不是全部?jī)?nèi)容,還需要一些額外的代碼來(lái)適應(yīng)那些老舊的瀏覽器。

    不同的情況需要不同的浮動(dòng)清除方法。以一個(gè)具有不同樣式塊的網(wǎng)格為例。

    grid blocks CSS浮動(dòng)屬性Float詳解

    為了從視覺上較好的把相似的塊聯(lián)系起來(lái),需要在必要的地方開啟新行,這里是顏色改變的地方。如果每個(gè)顏色組都有一個(gè)父元素的話,我們可以使用 overflow 或者 簡(jiǎn)單清除方法。或者,在每組之間用一個(gè)空div方法。額外的 div 之前并不存在,可以自己試試來(lái)看看哪個(gè)方法好。

    grid blocks cleared CSS浮動(dòng)屬性Float詳解

    浮動(dòng)的問(wèn)題

    浮動(dòng)因脆弱而飽受詬病。大多數(shù)的脆弱性來(lái)自于 IE6 及其一系列的浮動(dòng)相關(guān) bug。因?yàn)樵絹?lái)越多的設(shè)計(jì)師不再支持 IE6 了,你也可以不關(guān)注它了。不過(guò)對(duì)于那些要關(guān)注的人來(lái)說(shuō),這里有些大概。

    推倒是浮動(dòng)元素內(nèi)的元素(大多是圖片)比浮動(dòng)元素本身寬造成的現(xiàn)象。大多數(shù)的瀏覽器會(huì)在浮動(dòng)之外渲染圖片,但是不會(huì)有伸出來(lái)的部分影響其他布局。IE 會(huì)擴(kuò)展浮動(dòng)來(lái)包含圖片,精彩大幅度地影響布局。一個(gè)普遍的例子是突破伸出主內(nèi)容之外把側(cè)欄推到下面。pushdown2 CSS浮動(dòng)屬性Float詳解

    快速修正:確保不是圖片造成這種情況,使用 overflow:hidden 來(lái)切除多余的部分。

    雙倍邊距bug處理 IE6 時(shí),另一個(gè)需要記住的事情是,如果在和浮動(dòng)方向相同的方向上設(shè)置外邊距(margin),會(huì)引發(fā)雙倍邊距。快速修正:給浮動(dòng)設(shè)置 display:inline; 而且不用擔(dān)心,它依然是塊級(jí)元素。

    3像素間距是指挨著浮動(dòng)元素的文本會(huì)神奇的被踢出去3像素,好像浮動(dòng)元素的周圍有一個(gè)奇怪的力場(chǎng)一樣。快速修正:在受影響的文本上設(shè)置寬度或高度。

    IE7 中,底邊距 bug是當(dāng)浮動(dòng)父元素有浮動(dòng)子元素時(shí),這些子元素的底邊距會(huì)被父元素忽略掉。快速修正:用父元素的底內(nèi)補(bǔ)白(padding)代替。

    posted @ 2012-07-20 14:29 一堣而安 閱讀(202) | 評(píng)論 (0)編輯 收藏

    Oracle截取字符串和查找字符串

     來(lái)源:
    http://www.cnblogs.com/gsk99/archive/2011/06/14/2080573.html

    oracle 截取字符(substr),檢索字符位置(instr) case when then else end語(yǔ)句使用 收藏

    常用函數(shù):substr和instr
    1.SUBSTR(string,start_position,[length])   
    求子字符串,返回字符串
    解釋:string 元字符串
           start_position   開始位置(從0開始)
          
    length 可選項(xiàng),子字符串的個(gè)數(shù)
    For example:
    substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符

    substr("ABCDEFG", 2); //返回:CDEFG,截取從C開始之后所有字符
    substr("ABCDEFG", 0, 3);
    //返回:ABC,截取從A開始3個(gè)字符
    substr("ABCDEFG", 0, 100);
    //返回:ABCDEFG,100雖然超出預(yù)處理的字符串最長(zhǎng)度,但不會(huì)影響返回結(jié)果,系統(tǒng)按預(yù)處理字符串最大數(shù)量返回。
    substr("ABCDEFG",
    0, -3); //返回:EFG,注意參數(shù)-3,為負(fù)值時(shí)表示從尾部開始算起,字符串排列位置不變。


    2.INSTR(string,subString,position,ocurrence)查找字符串位置
    解釋:string:源字符串
         
    subString:要查找的子字符串
          position:查找的開始位置
         
    ocurrence:源字符串中第幾次出現(xiàn)的子字符串
    For example:
    INSTR('CORPORATE FLOOR','OR', 3,
    2)中,源字符串為'CORPORATE FLOOR', 目標(biāo)字符串為'OR',起始位置為3,取第2個(gè)匹配項(xiàng)的位置;返回結(jié)果為 14 '

    posted @ 2012-07-11 16:32 一堣而安 閱讀(298) | 評(píng)論 (0)編輯 收藏

    jquery中對(duì) iframe的操作

    來(lái)源:

     

    http://www.cr173.com/html/13126_1.html

    jquery中對(duì) iframe的操作

    我們先看一下 JQUERY中的對(duì)像 contents() 的幫助文件


    contents()
    概述
    查找匹配元素內(nèi)部所有的子節(jié)點(diǎn)(包括文本節(jié)點(diǎn))。如果元素是一個(gè)iframe,則查找文檔內(nèi)容


    示例
    描述:
    查找所有文本節(jié)點(diǎn)并加粗

    HTML
    代碼:
    <p>Hello <a >John</a>, how are
    you doing?</p>jQuery
    代碼:
    $("p").contents().not("[nodeType=1]").wrap("<b/>");結(jié)果:
    <p><b>Hello</b>
    <a >John</a>, <b>how are you
    doing?</b></p>描述:
    往一個(gè)空框架中加些內(nèi)容

    HTML 代碼:
    <iframe
    src="/index-blank.html" width="300" height="100"></iframe>jQuery
    代碼:
    $("iframe").contents().find("body")
    .append("I'm in an iframe!");



    去掉iframe 的邊界 frameborder="0"


    1 內(nèi)容里有兩個(gè)ifame


    <iframe id="leftiframe"...</iframe>
    <iframe
    id="mainiframe..</iframe>


    leftiframe中jQuery改變mainiframe的src代碼:

    $("#mainframe",parent.document.body).attr("src","

    2 如果內(nèi)容里面有一個(gè)ID為mainiframe的ifame
    <iframe
    id="mainifame"...></ifame>
    ifame包含一個(gè)someID
    <div
    id="someID">you want to get this content</div>
    得到someID的內(nèi)容


    $("#mainiframe").contents().find("someID").html()html 或者
    $("#mainiframe").contains().find("someID").text()值


    2 如上面所示
    leftiframe中的jQuery操作mainiframe的內(nèi)容someID的內(nèi)容

    $("#mainframe",parent.document.body).contents().find("someID").html()或者
    $("#mainframe",parent.document.body).contents().find("someID").val()


    Jquery獲取到 iframe 所屬的父窗口的里面的id為xuan的 標(biāo)簽的


    $(window.parent.document).find("#xuan").html(x);//


    //js創(chuàng)建 元素 并追加到 父元素的 Iframe中的 元素中的dom操作問(wèn)題:


    詳見鏈接:http://www.cssrain.cn/?p=1376


    iframe中直接調(diào)用父窗口中的方法:假設(shè)父窗口有個(gè)add的方法


    self.parent.add();


    ===============================================================


    IE和Firefox對(duì)iframe document對(duì)象的差異性


    在IE6、IE7中,我們可以使用document.frames[ID].document來(lái)訪問(wèn)iframe子窗口中的document對(duì)象,可是這是不符合W3C標(biāo)準(zhǔn)的寫法,也是IE下獨(dú)有的方法,在Firefox下卻不可以使用,F(xiàn)irefox下使用的是符合W3C標(biāo)準(zhǔn)的document.getElementById(ID).contentDocument方法,今天我在寫實(shí)例的時(shí)候,通過(guò)IE8進(jìn)行測(cè)試,IE8也是使用的符合W3C標(biāo)準(zhǔn)的
    document.getElementById(ID).contentDocument 方法。所以我們可以寫一個(gè)在IE和Firefox下通用的獲取iframe
    document對(duì)象的函數(shù)—getIFrameDOM:



    functiongetIFrameDOM(id){returndocument.getElementById(id).contentDocument||document.frames[id].document;}

    P.S.:如果我們要獲取iframe的window對(duì)象,而不是document對(duì)象,可以使用document.getElementById(ID).contentWindow的方法。這樣我們就可以使用子窗口中的window對(duì)象了,比如子窗口中的函數(shù)。


    在子窗口使用父窗口的函數(shù),獲取父窗口document對(duì)象



    在子窗口中,我們可以通過(guò)parent就可以獲得父窗口的window對(duì)象,如果假如我們?cè)诟复翱谟幸粋€(gè)函數(shù)為getIFrameDOM,我們可以通過(guò)parent.getIFrameDOM來(lái)調(diào)用,同理我們使用parent.document就可以在子窗口中訪問(wèn)父窗口的document對(duì)象了。


    使用JavaScript進(jìn)行iframe的DOM操作實(shí)例


    首先,我們?cè)诟复翱谥幸雰蓚€(gè)iframe子窗口,ID分別為wIframeA、wIframeB,地址分別為:a.html、b.html。
    父窗口主要HTML代碼如下:



    <div id="pHello" style="margin:10px
    auto;width:360px;height:30px;">此處可通過(guò)iframeB的JavaScript函數(shù),來(lái)替換哦~</div>
    <iframe id="wIframeA" name="myiframeA" src="a.html" scrolling="no"
    frameborder="0"></iframe> <iframe id="wIframeB" name="myiframeB"
    src="b.html" scrolling="no" frameborder="0"></iframe>


    在子窗口A、B中我放了一個(gè)ID為hello的P,以方便我們進(jìn)行DOM操作演示,子窗口A、B的主要HTML代碼如下:



    <p id="hello">Hello World!</p>

    1、在iframe中,父窗口操作子窗口的DOM


    建好了父窗口跟子窗口,這樣我們可以在父窗口中,通過(guò)以下iframeA()函數(shù)來(lái)把子窗口A更換P的背景顏色為紅色:



    functioniframeA(){//給子窗口A改變ID為hello的背景色vara=getIFrameDOM("wIframeA");a.getElementById('hello').style.background="red";}functiongetIFrameDOM(id){//兼容IE、Firefox的iframe
    DOM獲取函數(shù)returndocument.getElementById(id).contentDocument||document.frames[id].document;}

    2、在iframe中,子窗口操作父窗口的DOM


    在子窗口中,我們可以方便的進(jìn)行父窗口DOM操作,只需要在DOM操作之前添加亦歌parent對(duì)象的方法就可以啦,如:在上面的子窗口B中,我們可以使用下面的代碼把,父窗口中ID為“pHello”的內(nèi)容給替換掉:

    -------------------


    3、在iframe中,子窗口A操作子窗口B的DOM


    既然子窗口可以操作父窗口的window對(duì)象和document對(duì)象,那么子窗口也可以操作另外的子窗口的DOM啦~斷橋殘雪在子窗口B中可以直接使用parent直接調(diào)用父窗口中的getIFrameDOM函數(shù)獲得子窗口A的document對(duì)象,這樣要修改子窗口A的內(nèi)容就很簡(jiǎn)單啦,如以下的代碼:


    vara=parent.getIFrameDOM("wIframeA");


    ===================================================================================


    一個(gè)iframe高度自動(dòng)變化的問(wèn)題搞了我半天,網(wǎng)上找了下資料,不是很好,結(jié)合了一下jquery(版本1.3.2),4行代碼即可,完美兼容IE、Firefox、Opera、Safari、Google
    Chrome,js如下:


    function  heightSet(thisFrame){
         
    if($.browser.mozilla || $.browser.msie){
              bodyHeight
    =window.frames["thisFrameName"].document.body.scrollHeight;
         
    }else{
              bodyHeight
    =thisFrame.contentWindow.document.documentElement.scrollHeight;
             
    //這行可代替上一行,這樣heightSet函數(shù)的參數(shù)可以省略了
              //bodyHeight =
    document.getElementById("thisFrameId").contentWindow.document.documentElement.scrollHeight;
         
    }
           document.getElementById("thisFrameId").height=bodyHeight; 

    }

    <iframe id="mainFrame" name="mainFrame" frameborder="0" 
    scrolling="no" src=""onload="heightSet(this)">

          </iframe>


    引用

    this關(guān)鍵字在各種瀏覽器似乎有不同的意思,FF和IE必須要通過(guò)iframe的名字去得到內(nèi)部頁(yè)面高度,而其他瀏覽器則可以用this或ID


    引用

    都在說(shuō)一個(gè)異步的問(wèn)題,如果你ajax用得特別多,但又不想每次都去設(shè)置,那動(dòng)態(tài)改變iframe肯定達(dá)不到你的代碼清潔要求,沒(méi)辦法,要么你就脫離iframe。我只能說(shuō)說(shuō)一般處理方式,畢竟ajax或動(dòng)態(tài)表單在一般應(yīng)用中只占小數(shù)比例,異步請(qǐng)求后只需在后面加上:




    Js代碼
    parent.window.heightSet();

    posted @ 2012-07-11 16:31 一堣而安 閱讀(4143) | 評(píng)論 (0)編輯 收藏

    CSS定義字體行間距

    CSS定義字體行間距 line-height:xxpx;

    CSS定義字體間距

    下面我們講述一下CSS的文本屬性,還是先來(lái)看一下文本屬性的詳細(xì)列表:

     

    屬性屬性含義屬性值
    Word-spacing定義了各個(gè)單詞之間的間距Normal<length>必須以長(zhǎng)度為單位
    Letter-spacing   定義了每個(gè)字母之間的間距同上
    Text-decoration定義文字的“裝飾”樣式None|underline|overline|

    line-through|blink

    Vertical-align定義了元素在垂直方向

    上的位置

    Baseline|sub|super|top|text-top|middle|bottom|text-bottom

    <percentage>

    text-transform使文本轉(zhuǎn)換為其它形式Capitalize|uppercase|lowercase|none
    Text-align定義了文字的對(duì)齊方式Left|right|center|justify
    Text-indent定義了文本的首行的縮進(jìn)方式<length>|<percentage>
    Line-height定義了文本的行高Normal|<unmber>|<length>|

    <percentage>

    我們可以從表中看到在這里可以定義文本的文字間距、字母間距、裝飾、對(duì)齊方式、縮進(jìn)方式和行高等屬性。

    舉個(gè)例子來(lái)看看吧:

    CODE:

    <p style="letter-spacing:5px;text-align:justify;text-indent: 4em;line-height:17pt">我們看到經(jīng)過(guò)文本屬性處理的文本字與字之間多了間距,行與行之間多了行高,對(duì)齊方式變成了兩端對(duì)齊,并且段首又多縮進(jìn)了兩格。</p>

    letter-spacing設(shè)置了字間距為5px,其中5px為一個(gè)長(zhǎng)度單位;text-align設(shè)置了對(duì)齊方式為兩端對(duì)齊;indent設(shè)置了縮進(jìn)格為4em;line-height設(shè)置了行高為17pt

    從上面的例子,我們可以看出利用CSS的文本屬性可以方便的對(duì)頁(yè)面中的文本進(jìn)行排版。

    posted @ 2012-07-07 10:25 一堣而安 閱讀(603) | 評(píng)論 (0)編輯 收藏

    HTML小技巧將table邊框改為細(xì)線

    來(lái)源:
    http://www.cnblogs.com/binaryworms/archive/2010/03/25/1695339.html

    HTML小技巧將table邊框改為細(xì)線

    HTML制作新手在用TABLE表格時(shí),會(huì)碰到如何改變邊線粗線,因?yàn)槟J(rèn)的TABLE邊線設(shè)置即使是1px 是很粗的。因此會(huì)使用其他一些方法來(lái)制作出細(xì)線邊框,這里介紹一種利用CSS來(lái)實(shí)現(xiàn)細(xì)線的方法,很有效,而且兼容所有瀏覽器。

    細(xì)線表格如果單純?cè)O(shè)置邊框,很難保證瀏覽器兼容。常見的做法是利用 CSS2 的 "border-collapse:collapse;" 屬性合并表格邊框;并對(duì) table 元素設(shè)置左邊框和上邊框,對(duì) th 和 td 元素設(shè)置右邊框和下邊框。

    HTML:

    <table>     <tr>         <th>table head (row1, col1)</th>         <th>table head (row1, col2)</th>         <th>table head (row1, col3)</th>     </tr>     <tr>         <td>table data (row1, col1)</td>         <td>table data (row1, col2)</td>         <td>table data (row1, col3)</td>     </tr>     <tr>         <td>table data (row2, col1)</td>         <td>table data (row2, col2)</td>         <td>table data (row2, col3)</td>     </tr>
    </table>

    CSS:

    table{border-collapse:collapse;border-spacing:0;border-left:1px solid #888;border-top:1px solid #888;background:#efefef;}
    th,td{border-right:1px solid #888;border-bottom:1px solid #888;padding:5px 15px;}
    th{font-weight:bold;background:#ccc;}

    posted @ 2012-07-05 16:53 一堣而安 閱讀(2440) | 評(píng)論 (0)編輯 收藏

    css排版時(shí)出現(xiàn):里面的div設(shè)置margin-top值時(shí)外面div會(huì)向下移動(dòng)相應(yīng)距離這是為什么

    來(lái)源:
    http://zhidao.baidu.com/question/263160712.html

    css排版時(shí)出現(xiàn):里面的div設(shè)置margin-top值時(shí)外面div會(huì)向下移動(dòng)相應(yīng)距離這是為什么 請(qǐng)哪位高手幫幫忙
    <body>
    <div class="logon">
          <div  class="log_bk">
    
          </div>
    </div>
    </body>
    
    body { margin:0 auto; padding:0px; background:#0A76B0;}
    #logon{ background:url(../images/logon-bk.jpg) no-repeat left top; 
                height:865px; width:1251px;}
    .log_bk{ background:url(../images/01.png) no-repeat left top; height:380px; 
                  height:270px; margin:300px 0 180px 460px;}
    
    因?yàn)楸尘笆菆D案所以要設(shè)置高度,我把#logon的背景定位在頂部也不行。
     
    滿意回答 
    設(shè)置logon的padding: 1px
    因?yàn)閘ogon和log_bk垂直方向的margin合并了,如果設(shè)置了logon的padding為1px就可以避免margin合并。

    追問(wèn)

    好了,剛才把padding值加到里面的div了,不過(guò)兩個(gè)div的margin值為什么會(huì)合并呢?
     

    回答

    恩,剛才我寫錯(cuò)了,寫成里面的了。。
    這個(gè)是css標(biāo)準(zhǔn)規(guī)定的,垂直方向的margin會(huì)合并。
    比如你有很多段落,margin是10px,其實(shí)第一段上面的margin和最后一段下面的margin是10px,且段與段之間的margin也是10px,css標(biāo)準(zhǔn)就是為了保持這個(gè)margin一致才規(guī)定垂直方向margin要合并。
    margin合并時(shí)會(huì)取最大的那個(gè)margin,所以合并后logon的margin-top也成了300px了。
     

    posted @ 2012-07-05 16:52 一堣而安 閱讀(2644) | 評(píng)論 (0)編輯 收藏

    CSS實(shí)現(xiàn)垂直居中的5種方法

    來(lái)源
    http://www.qianduan.net/css-to-achieve-the-vertical-center-of-the-five-kinds-of-methods.html

    CSS實(shí)現(xiàn)垂直居中的5種方法

    利用 CSS 來(lái)實(shí)現(xiàn)對(duì)象的垂直居中有許多不同的方法,比較難的是選擇那個(gè)正確的方法。我下面說(shuō)明一下我看到的好的方法和怎么來(lái)創(chuàng)建一個(gè)好的居中網(wǎng)站。

    使用 CSS 實(shí)現(xiàn)垂直居中并不容易。有些方法在一些瀏覽器中無(wú)效。下面我們看一下使對(duì)象垂直集中的5種不同方法,以及它們各自的優(yōu)缺點(diǎn)。(可以看看測(cè)試頁(yè)面,有簡(jiǎn)短解釋。)

    方法一

    這個(gè)方法把一些 div 的顯示方式設(shè)置為表格,因此我們可以使用表格的 vertical-align property 屬性。

    <div id="wrapper">
    <div id="cell">
    <div class="content">
    		Content goes here</div>
    </div>
    </div>
    #wrapper {display:table;}
    #cell {display:table-cell; vertical-align:middle;}

    優(yōu)點(diǎn):
    content 可以動(dòng)態(tài)改變高度(不需在 CSS 中定義)。當(dāng) wrapper 里沒(méi)有足夠空間時(shí), content 不會(huì)被截?cái)?/p>

    缺點(diǎn):
    Internet Explorer(甚至 IE8 beta)中無(wú)效,許多嵌套標(biāo)簽(其實(shí)沒(méi)那么糟糕,另一個(gè)專題)

    方法二:

    這個(gè)方法使用絕對(duì)定位的 div,把它的 top 設(shè)置為 50%,top margin 設(shè)置為負(fù)的 content 高度。這意味著對(duì)象必須在 CSS 中指定固定的高度。

    因?yàn)橛泄潭ǜ叨龋蛟S你想給 content 指定 overflow:auto,這樣如果 content 太多的話,就會(huì)出現(xiàn)滾動(dòng)條,以免content 溢出。

    <div class="content">
    	Content goes here</div>
    #content {
    	position:absolute;
    	top:50%;
    	height:240px;
    	margin-top:-120px; /* negative half of the height */
    }

    優(yōu)點(diǎn):
    適用于所有瀏覽器
    不需要嵌套標(biāo)簽

    缺點(diǎn):
    沒(méi)有足夠空間時(shí),content 會(huì)消失(類似div 在 body 內(nèi),當(dāng)用戶縮小瀏覽器窗口,滾動(dòng)條不出現(xiàn)的情況)

    方法三

    這種方法,在 content 元素外插入一個(gè) div。設(shè)置此 div height:50%; margin-bottom:-contentheight;。
    content 清除浮動(dòng),并顯示在中間。

    <div id="floater"></div>
    <div id="content">
    	Content here
    </div>
    #floater	{float:left; height:50%; margin-bottom:-120px;}
    #content	{clear:both; height:240px; position:relative;}

    優(yōu)點(diǎn):
    適用于所有瀏覽器
    沒(méi)有足夠空間時(shí)(例如:窗口縮小) content 不會(huì)被截?cái)啵瑵L動(dòng)條出現(xiàn)

    缺點(diǎn):
    唯一我能想到的就是需要額外的空元素了(也沒(méi)那么糟,又是另外一個(gè)話題)

    方法四

    這個(gè)方法使用了一個(gè) position:absolute,有固定寬度和高度的 div。這個(gè) div 被設(shè)置為 top:0; bottom:0;。但是因?yàn)樗泄潭ǜ叨龋鋵?shí)并不能和上下都間距為 0,因此 margin:auto; 會(huì)使它居中。使用 margin:auto;使塊級(jí)元素垂直居中是很簡(jiǎn)單的。

    <div id="content">
    	Content here</div>
    #content {
    	position:absolute;
    	top:0;
    	bottom:0;
    	left:0;
    	right:0;
    	margin:auto;
    	height:240px;
    	width:70%;
    }

    優(yōu)點(diǎn):
    簡(jiǎn)單

    缺點(diǎn):
    IE(IE8 beta)中無(wú)效
    無(wú)足夠空間時(shí),content 被截?cái)啵遣粫?huì)有滾動(dòng)條出現(xiàn)

    方法五

    這個(gè)方法只能將單行文本置中。只需要簡(jiǎn)單地把 line-height 設(shè)置為那個(gè)對(duì)象的 height 值就可以使文本居中了。

    <div id="content">
    	Content here</div>
    #content {height:100px; line-height:100px;}

    優(yōu)點(diǎn):
    適用于所有瀏覽器
    無(wú)足夠空間時(shí)不會(huì)被截?cái)?/p>

    缺點(diǎn):
    只對(duì)文本有效(塊級(jí)元素?zé)o效)
    多行時(shí),斷詞比較糟糕

    這個(gè)方法在小元素上非常有用,例如使按鈕文本或者單行文本居中。

    哪個(gè)方法?

    我最喜歡的是方法三,缺點(diǎn)不多。因?yàn)?content 會(huì)清除浮動(dòng),所以可以在它上面放置別的元素,并且當(dāng)窗口縮放時(shí),
    居中的 content 不會(huì)把另外的元素蓋住。看例子

    <div id="top">
    <h1>Title</h1>
    </div>
    <div id="content">
    	Content Here</div>
    #floater	{float:left; height:50%; margin-bottom:-120px;}
    #top		{float:right; width:100%; text-align:center;}
    #content	{clear:both; height:240px; position:relative;}

    現(xiàn)在你知道是怎么回事了,現(xiàn)在我們開始創(chuàng)建一個(gè)簡(jiǎn)單但是有趣的網(wǎng)站。最終的樣子是這樣的:

    步驟一
    以語(yǔ)義化標(biāo)簽開始是很好的。下面是我們的頁(yè)面構(gòu)成:

    #floater/*把 content 置中*/
    #contred/*centre 盒*/
    #side
    #logo
    #nav/*無(wú)序列表*/
    #content
    #bottom/*放置版權(quán)等*/

    這是我用到的 xhtml 代碼:

    A Centred Company
    <div id="centered">
    <div id="side">
    <div id="logo">
    			<strong><span>A</span> Company</strong></div>
    <ul id="nav">
    	<li><a href="#">Home</a></li>
    	<li><a href="#">Products</a></li>
    	<li><a href="#">Blog</a></li>
    	<li><a href="#">Contact</a></li>
    	<li><a href="#">About</a></li>
    </ul>
    </div>
    <div id="content">
    <h1>Page Title</h1>
    Holisticly re-engineer value-added outsourcing after process-centric collaboration and idea-sharing.
    			Energistically simplify impactful niche markets via enabled imperatives.
    			Holisticly predominate premium innovation after compelling scenarios.
    			Seamlessly recaptiualize high standards in human capital with leading-edge manufactured products.
    			Distinctively syndicate standards compliant schemas before robust vortals.
    			Uniquely recaptiualize leveraged web-readiness vis-a-vis out-of-the-box information.
    <h2>Heading 2</h2>
    Efficiently embrace customized web-readiness rather than customer directed processes.
    			Assertively grow cross-platform imperatives vis-a-vis proactive technologies.
    			Conveniently empower multidisciplinary meta-services without enterprise-wide interfaces.
    			Conveniently streamline competitive strategic theme areas with focused e-markets.
    			Phosfluorescently syndicate world-class communities vis-a-vis value-added markets.
    			Appropriately reinvent holistic services before robust e-services.</div>
    </div>
    <div id="bottom">
    	Copyright notice goes here</div>

    步驟二:
    現(xiàn)在我們開始用一些基本的 CSS 來(lái)給頁(yè)面添加樣式。把以下代碼放入在我們的 html 頁(yè)面頂部被引入的 style.css。

    html, body {
    	margin:0; padding:0;
    	height:100%;
    }
     
    body {
    	background:url('page_bg.jpg') 50% 50% no-repeat #FC3;
    	font-family:Georgia, Times, serifs;
    }
     
    #floater {
    	position:relative; float:left;
    	height:50%;	margin-bottom:-200px;
    	width:1px;
    }
     
    #centered {
    	position:relative; clear:left;
    	height:400px; width:80%; max-width:800px; min-width:400px;
    	margin:0 auto;
    	background:#fff;
    	border:4px solid #666;
    }
     
    #bottom {
    	position:absolute;
    	bottom:0; right:0;
    }
     
    #nav {
    	position:absolute; left:0; top:0; bottom:0; right:70%;
    	padding:20px; margin:10px;
    }
     
    #content {
    	position:absolute; left:30%; right:0; top:0; bottom:0;
    	overflow:auto; height:340px;
    	padding:20px; margin:10px;
    }

    在我們能夠把 content 垂直居中之前, body 和 html 應(yīng)該被拉伸到 100% 的高度。由于 height
    在 padding 和 margin 之內(nèi),所以我們要把它們?cè)O(shè)成 0 以防止因?yàn)楹苄〉?margin 出現(xiàn)滾動(dòng)條。

    floater 的 margin-bottom 是 content 高度(400px)的一半, -200px。

    現(xiàn)在可以看到一下效果:

    #centred 的寬度為 80%。這可以市網(wǎng)頁(yè)隨著顯示器的大小而變化。一般稱作流體布局。設(shè)置 min-width 和
    max-width 以避免網(wǎng)頁(yè)過(guò)大或者過(guò)小。 但是 IE 不支持 min/max-width。顯然可以用固定寬度來(lái)代替。

    因?yàn)?#centred 是相對(duì)定位的,在它里面我們可以用絕對(duì)定位來(lái)定位元素。設(shè)置 #content 的 overflow:auto;
    以避免滾動(dòng)條的出現(xiàn)。IE 不怎么喜歡 overflow:auto; 除非我們指定高度(不是 top 和 bottom 的定位,也不是 %)
    因此我們給它指定高度。

    步驟三
    最后要做的就是再添加點(diǎn)樣式,讓頁(yè)面好看點(diǎn)。從目錄開始吧。

    #nav ul {
    	list-style:none;
    	padding:0; margin:20px 0 0 0; text-indent:0;
    }
     
    #nav li {
    	padding:0; margin:3px;
    }
     
    #nav li a {
    	display:block; background-color:#e8e8e8;
    	padding:7px; margin:0;
    	text-decoration:none; color:#000;
    	border-bottom:1px solid #bbb;
    	text-align:right;
    }
     
    #nav li a::after {
    	content:'»'; color:#aaa; font-weight:bold;
    	display:inline; float:right;
    	margin:0 2px 0 5px;
    }
     
    #nav li a:hover, #nav li a:focus {
    	background:#f8f8f8;
    	border-bottom-color:#777;
    }
     
    #nav li a:hover::after {
    	margin:0 0 0 7px; color:#f93;
    }
     
    #nav li a:active {
    	padding:8px 7px 6px 7px;
    }

    需要注意的是 #centred 的圓角。 CSS3 中,應(yīng)該有 border-radius 屬性來(lái)設(shè)定圓角的半徑(可參考 CSS3之旅: border-radius(圓角) – 糖伴西紅柿)。現(xiàn)在的
    流行的瀏覽器都還不支持,除非用 -moz(Molilla Firefox) 或者 -webit(Safari/Webkit) 前綴.

    兼容性注意事項(xiàng)
    如你所想,IE 是唯一添麻煩的瀏覽器。
    #floater 必須指定寬度,否則在任意版本 IE 中,它都啥也不干
    IE 6 中目錄被周圍太多的空間打斷
    IE 8 有多余空間(作者遺漏)

    更多的想法
    利用居中的網(wǎng)頁(yè)可以做很多有意思的事情。我在重新設(shè)計(jì) SWFObject Generator 2.0 (使用 SWFObject2.0 生成代碼)使用了這個(gè)想法。這里有另外的一個(gè)想法。

    資料
    以下是我參考的一些資料,推薦閱讀。

    Understanding vertical-align, or “How (Not) To Vertically Center Content”
    Vertical centering using CSS
    Vertical Centering in CSS

    糖伴西紅柿說(shuō):
    水平居中經(jīng)常用,其實(shí)垂直居中也很有用的。平時(shí)用的最多的應(yīng)該是方法五了,算是個(gè)小技巧吧。

    posted @ 2012-07-05 16:42 一堣而安 閱讀(238) | 評(píng)論 (0)編輯 收藏

    html文字滾動(dòng)代碼

    來(lái)源:http://www.cnblogs.com/yangzhixiao/archive/2011/07/22/2113731.html

    代碼如下<MARQUEE>滾動(dòng)文字</MARQUEE>

     

    <marquee style="WIDTH: 388px; HEIGHT:  200px" scrollamount="2" direction="up" >
    < div align="left" ><br />
    < /div >
    < center ><font face="黑體"  color="#008000" size="4" ></font ></center >
    < div align="left" ><br />
    < /div >
    < center >
    < p ><font color="#ff6600" size="4"  >滾動(dòng)文字</font ></p >
    < p ><font color="#ff4500" size="4"  >滾動(dòng)文字</font ></p >
    < p ><font color="#ff3300" size="4"  >滾動(dòng)文字</font ><br />
    < br />
    < /p >
    < /marquee >

     


    marquee 參數(shù):
    BGColor:滾動(dòng)文本框的背景顏色。
    Direction:滾動(dòng)方向設(shè)置,可選擇Left、Right、up和down。
    scrolldelay:每輪滾動(dòng)之間的延遲時(shí)間,越大越慢。
    scrollamount:一次滾動(dòng)總的時(shí)間量,數(shù)字越小滾動(dòng)越慢。
    Behaviour:滾動(dòng)的方式設(shè)置,三種取值:Scroll(循環(huán)滾動(dòng))  lide(單次滾動(dòng))、Alternate(來(lái)回滾動(dòng))。
    Align:文字的對(duì)齊方式設(shè)置。可選擇Middle(居中)、Bottom(居下)還是Top(居上)。
    Width:滾動(dòng)文本框的寬度,輸入一個(gè)數(shù)值后從后面的單選框選擇in  Pixels(按像素)或是in Percent(按百分比)。
    Height:滾動(dòng)文本框的高度,輸入一個(gè)數(shù)值后從后面的單選框選擇in  Pixels(按像素)或是in Percent(按百分比)。
    loop:滾動(dòng)次數(shù)。默認(rèn)為infinite
    hspace、vspace:前后、上下的空行。

     

           滾動(dòng)字幕會(huì)讓很多人感到興奮,特別是第一次使用滾動(dòng)字幕時(shí),會(huì)愛不釋手。滾動(dòng)字幕我也做得不少了,對(duì)它也不會(huì)興奮了,所以現(xiàn)在也用得不多了。有不少朋友常 問(wèn)到這是怎么做的,現(xiàn)在做一個(gè)詳細(xì)的專題,讓你更全面地了解一下。
    滾動(dòng)字幕在FrontPage的組件里有,但是FrontPage這個(gè)軟件只能支持單行文字,一出現(xiàn)多行文字它就無(wú)能為力了,而且它只能支持一行滾動(dòng)! (如果出現(xiàn)只能滾動(dòng)一行的情況,解決辦法是把這段代碼嵌入到JavaScript的document.write里面,請(qǐng)看下面例d的詳細(xì)說(shuō)  明)Dreamweaver也只能用編寫HTML代碼的方法。所以強(qiáng)烈建議用記事本打開網(wǎng)頁(yè)源代碼來(lái)編輯。

     

    1.建立第一個(gè)滾動(dòng)字幕。代碼:
    <marquee scrollAmount=2  width=300>靚麗風(fēng)景線</marquee>
    效果如: 靚麗風(fēng)景線

     

    2.各參數(shù)詳解:
    a)scrollAmount。它表示速度,值越大速度越快。如果沒(méi)有它,默認(rèn)為6,建議設(shè)為1~3比較好。
    b)width和height,表示滾動(dòng)區(qū)域的大小,width是寬度,height是高度。特別是在做垂直滾動(dòng)的時(shí)候,一定要設(shè)height的值。
    c)direction。表示滾動(dòng)的方向,默認(rèn)為從右向左:←←←。可選的值有right、down、up。滾動(dòng)方向分別為:right表示→→→,up 表示↑,down表示↓。
    d)scrollDelay,這也是用來(lái)控制速度的,默認(rèn)為90,值越大,速度越慢。通常scrollDelay是不需要設(shè)置的。
    e)behavior。用它來(lái)控制屬性,默認(rèn)為循環(huán)滾動(dòng),可選的值有alternate(交替滾動(dòng))、slide(幻燈片效果,指的是滾動(dòng)一次,然后停止 滾動(dòng))

     

    3.實(shí)例:
    a)如何給滾動(dòng)字幕加超鏈接?這跟平時(shí)的超鏈接是完全一樣的。只要在文字外面加上<a   href=***>和</a>就可以了。如下效果,代碼是<marquee scrollAmount=2   width=300><a   href=http://www.cctv.com>中央電視臺(tái)</a></marquee>,點(diǎn)擊中央電視臺(tái)就可以進(jìn)入 了:
    中央電視臺(tái)

     

    b)如何制作當(dāng)鼠標(biāo)停留在文字上,文字停止?jié)L動(dòng)?
    代碼如:
    <marquee scrollAmount=2 width=300  onmouseover=stop() onmouseout=start()>文字內(nèi)容</marquee>
    效果如:
    文字內(nèi)容

     

    c)交替效果。代碼如:
    <marquee scrollAmount=2 width=99  behavior=alternate>文字內(nèi)容</marquee>
    效果如:
    文字內(nèi)容

     

    d)多行文本向上滾動(dòng)。代碼如:
    <marquee scrollAmount=2 width=300 height=160   direction=up>·早晨好啊!<br>·空氣好清新啊<br>·你還好嗎<p>·<a   href=http://www.cctv.com>靚麗風(fēng)景線</a></marquee>
    效果如:
    ·早晨好啊!
    ·空氣好清新啊
    ·你還好嗎
    ·靚麗風(fēng)景線

     

    ·注意:如果你的網(wǎng)頁(yè)經(jīng)過(guò)了FrontPage編輯,保存之后,只能滾動(dòng)一行,這時(shí)候你發(fā)現(xiàn)你原 來(lái)的代碼順序已經(jīng)變了,My  god!解決的辦法是,找出原來(lái)的代碼,把它嵌入到JavaScript的document.write中即可,上述代碼寫為:
    <script>document.write('<marquee  scrollAmount=2 width=300  height=160  direction=up>·早晨好啊!<br>·空氣好清新啊<br>·你還好嗎 <p>·<a   href=http://www.cctv.com>靚麗風(fēng)景線</a></marquee>')<  /script>

     

    e)改變滾動(dòng)字幕的顏色?可以用樣式表來(lái)控制。如下效果,代碼是<marquee  scrollAmount=2  width=300><a   style=color:CC6600>你還好嗎</a></marquee>。
    你還好嗎

     

    圖片滾動(dòng)
    用<img  src=相對(duì)路徑/文件名>的語(yǔ)句。并且要注意圖片名不要中文,要注意區(qū)分英文大小寫。

     

    圖片做超鏈接
    用<a   href=>和</a>把<img>包圍,并且img必須設(shè)border=0,否則圖片會(huì)出現(xiàn)藍(lán)框。正確的例子如:&amp; lt;a href=http://www.webshu.com><img src=http://www.cnblogs.com/j/01.jpg   border=0></a>
    其中a  href=表示超鏈接,這是最常用的。練習(xí)的方法也很簡(jiǎn)單,就是平時(shí)用FP或DW做網(wǎng)頁(yè)的時(shí)候,要多查看源代碼。

     

    多張圖片排列滾動(dòng)
    通常圖片和圖片之間用<br>(回行)或<p  style=margin-top:9>(精確調(diào)整圖片間的距離)來(lái)鏈接。也可以把你的圖片先用表格排版,然后把這個(gè)表格的所有語(yǔ)句也加入到 marquee中,讓這個(gè)表格來(lái)滾動(dòng)。 

     

    代碼<script>document.write('<marquee  scrollAmount=2 width=340 height=160 direction=up onmouseover=stop()  onmouseout=start()><a href=http://www.webshu.com><img  src=http://www.cnblogs.com/j/01.jpg   border=0></a></marquee>')</script>

    posted @ 2012-07-05 11:52 一堣而安 閱讀(495) | 評(píng)論 (0)編輯 收藏

    后臺(tái)json傳遞

    來(lái)源:http://m.tkk7.com/jlins-you/archive/2012/06/22/381292.html


    json除了可以用于前臺(tái)傳遞,還可用于后臺(tái)之間傳遞。它可以傳遞List,Map,Bean等類型的數(shù)據(jù)。


    例如: User u1=new User();


    u1.setUsername("zy");
    u1.setPassword("123");
    User
    u2=new
    User();
    u2.setUsername("msl");
    u2.setPassword("456");
    List list =
    new ArrayList(); //把兩個(gè)對(duì)象放進(jìn)list中
    list.add(u1);
    list.add(u2);


    JSONArray jsonArray = JSONArray.fromObject( list ); //把list放進(jìn)json數(shù)組
    Map map = new HashMap();
    map.put("message", "111");

    map.put("users", jsonArray); //把json數(shù)組做為一個(gè)值放進(jìn)Map中
    JSONObject jsonObject =
    JSONObject.fromObject(map); //把map放進(jìn)json對(duì)象中
    PrintWriter out =
    response.getWriter();
    out.print(jsonObject); //
    傳遞json


    傳遞的json格式為:
    {"message":"111","users":[{"password":"123","username":"zy"},{"password":"456","username":"msl"}]}




    在接收端的java文件中取:



    returnJson是從輸入流中得到的json格式的字符串。輸出為:


    {"message":"111","users":[{"password":"123","username":"zy"},
    {"password":"456","username":"msl"}]}



    if(returnJson !=null&& returnJson !=""){



    String
    strJson = returnJson.replace("?(", "").replace(")", "").replace(";",
    "");

    if(strJson.startsWith("{")){

    JSONObject
    jsonObject = JSONObject.fromObject(strJson);
    JSONArray jsonArray =
    JSONArray.fromObject(jsonObject.get("users"));

    for (int i =
    0, len = jsonArray.size(); i < len; i++) {

    JSONObject jsonUser =
    jsonArray.getJSONObject(i);
    User vo = (User)JSONObject.toBean(jsonUser,
    User.class);
    System.out.println(vo.getUsername()+":"+vo.getPassword());
    }

    }

    }



    更多信息請(qǐng)查看 java進(jìn)階網(wǎng)http://www.javady.com

    posted @ 2012-06-29 19:54 一堣而安 閱讀(162) | 評(píng)論 (0)編輯 收藏

    jquery動(dòng)態(tài)添加刪除div--事件綁定,對(duì)象克隆

    來(lái)源 :http://blog.csdn.net/guanghua2009/article/details/6644272

     我想做一個(gè)可以動(dòng)態(tài)添加刪除div的功能。中間遇到一個(gè)問(wèn)題,最后在phpchina問(wèn)答區(qū)版主的熱心幫助下解答了(答案在最后)        使用到的jquery方法和思想就是:事件的綁定和銷毀(unbind),另外還可以使用clone,通過(guò)克隆可以很好的解決這個(gè)問(wèn)題          相關(guān)描述如下

    功能:點(diǎn)擊增加,自動(dòng)添加一個(gè)iptdiv 點(diǎn)擊 iptdiv后的 X 自動(dòng)刪除當(dāng)前div

    問(wèn)題:默認(rèn)存在的(也就是頁(yè)面加載進(jìn)來(lái)的)的那個(gè)iptdiv 后的 X 點(diǎn)擊有效,可以刪除當(dāng)前 iptdiv  但是 jquery 動(dòng)態(tài)添加進(jìn)的 iptdiv 則點(diǎn)擊沒(méi)有效果。請(qǐng)各位大俠給看看,提供些意見。我要的就是動(dòng)態(tài)添加和刪除div 問(wèn)題代碼如下: 
    <script type="text/javascript" src="jquery.js"></script>
    <body>
    <form action="" method="post" enctype="multipart/form-data">
    <label>請(qǐng)選擇上傳的圖片</label>
    <a href="javascript:addimg()" >增加圖片</a>
    <div id="mdiv">
    <div >
    <input type="file" name="img[]" /><a href="#" name="rmlink">X</a>
    </div>
    </div>
    <input type="submit" name="submit" value="上傳圖片" />
    </form>
    <script type="text/javascript" >
    $(document).ready(function(){
    $("a[name=rmlink]").click(function(){
    $(this).parent().remove();
    })
    })
    function addimg(){
    $("#mdiv").append('<div ><input type="file" name="img[]" /><a href="#" name="rmlink">X</a></div>');
    }
    </script>
     

    用jquery方法的綁定偵聽和銷毀來(lái)解決動(dòng)態(tài)div的增加刪除:

    正確代碼:
    <script type="text/javascript" >
    $(document).ready(function(){
     bindListener();
    })
    
    function addimg(){
     $("#mdiv").append('<div ><input type="file" name="img[]" /><a href="#" name="rmlink">X</a></div>');
    
     // 為新元素節(jié)點(diǎn)添加事件偵聽器
      bindListener();
    }
    
    // 用來(lái)綁定事件(使用unbind避免重復(fù)綁定)
    function bindListener(){
     $("a[name=rmlink]").unbind().click(function(){
      $(this).parent().remove();
        })
    }
    </script>
    
    這中間就是存在一個(gè)事件綁定的過(guò)程,如果沒(méi)有的話通過(guò)js加進(jìn)來(lái)的div內(nèi)不事件并不會(huì)被執(zhí)行,添加了偵聽事件功能后才能正確運(yùn)行
     

    用jquery的clone方法來(lái)解決動(dòng)態(tài)div的增加刪除:

    這里還有更好的寫法,我做了些許的修改,也許弄巧成拙了。但是功能實(shí)現(xiàn)了,更多的請(qǐng)參考phpchina論壇的幫助:http://bbs.phpchina.com/viewthread.php?tid=180911&extra=&page=1

    <body>
    <div style="display:none;">
    <!--clone div start-->
        <div >
            <input type="file" name="img[]" /><a href="#" name="rmlink">X</a>
        </div>
    </div>
    <!--clone div end-->
    <form action="dowater.php" method="post" enctype="multipart/form-data">
    <label>請(qǐng)選擇上傳的圖片</label>
    <a href="#" id="addimg" >增加圖片</a>
    <div id="mdiv">
        <div >
        <input type="file" name="img[]" /><a href="#" name="rmlink">X</a>
        </div>
    </div>
    <input type="submit" name="submit" value="上傳圖片"  />
    </form>
    <script type="text/javascript" >
    var temp; 
    $(document).ready(function(){        
     temp = $(".iptdiv:first");
     $("a[name=rmlink]").click(function(){
      $(this).parent().remove();
        })
     $("#addimg").click(function(){
      temp.clone(true).appendTo($("#mdiv"));
     })
    })
    </script>
    </body>

    posted @ 2012-06-29 19:53 一堣而安 閱讀(3997) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共17頁(yè): First 上一頁(yè) 9 10 11 12 13 14 15 16 17 下一頁(yè) 

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 麻豆国产人免费人成免费视频| 亚洲一区二区三区夜色| 久久亚洲av无码精品浪潮| 成年女人色毛片免费看| 日韩在线看片免费人成视频播放| 免费一区二区三区四区五区| 在线观看91精品国产不卡免费| 一区国严二区亚洲三区| 亚洲第一AAAAA片| 久久国产亚洲电影天堂| 亚洲国产精品久久久久网站 | 国产传媒在线观看视频免费观看| 亚洲高清无码在线观看| 久久精品国产亚洲| 国产精品亚洲片夜色在线| 亚洲av无码片区一区二区三区| 亚洲aⅴ无码专区在线观看春色| 亚洲国产成人综合精品| 成人免费av一区二区三区| 成人免费无码H在线观看不卡| 1000部拍拍拍18免费网站| 美女视频黄a视频全免费| 国产乱子伦精品免费女| 久久精品视频亚洲| 亚洲人成色777777老人头| 成全动漫视频在线观看免费高清版下载 | 亚洲欧洲日产专区| 美女被艹免费视频| 国产区在线免费观看| 国产成人yy免费视频| 精品国产免费观看| 亚洲国产成人片在线观看无码 | 伊人久久大香线蕉免费视频| 中文字幕影片免费在线观看| 日韩在线免费播放| 亚洲av无码成h人动漫无遮挡| 亚洲精品国产精品| 久久一本岛在免费线观看2020| 在线永久免费观看黄网站| 亚洲小视频在线观看| 污污污视频在线免费观看|