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

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

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

    經驗不在于年限,在于積累---專注互聯網軟件開發

    把工作當事業做,把項目當作品做!

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      55 Posts :: 0 Stories :: 66 Comments :: 0 Trackbacks
    CSS布局常用的方法:float:none|left|right 
    取值:
    none: 默認值。對象不飄浮
    left: 文本流向對象的右邊
    right: 文本流向對象的左邊 

    它是怎樣工作的,看個一行兩列的例子 
    xhtml:
    <div id="wrap">
    <div id="column1">這里是第一列</div>
    <div id="column2">這里是第二列</div>
    <div class="clear"></div> /*這是違背web標準意圖的,只是想說明在它下面的元素需要清除浮動*/
    </div> 
    CSS:
    #wrap{width:100;height:auto;}
    #column1{float:left;width:40;}
    #column2{float:right;width:60;}
    .clear{clear:both;}

    position:static|absolute|fixed|relative
    取值:
    static: 默認值。無特殊定位,對象遵循HTML定位規則
    absolute: 將對象從文檔流中拖出,使用leftright,top,bottom等屬性相對于其最接近的一個最有定位設置的父對象進行絕對定位。如果不存在這樣的父對象,則依據body對象。而其層疊通過z-index屬性定義
    fixed: 未支持。對象定位遵從絕對(absolute)方式。但是要遵守一些規范
    relative: 對象不可層疊,但將依據leftright,top,bottom等屬性在正常文檔流中偏移位置 

    它來實現一行兩列的例子 
    xhtml:
    <div id="wrap">
    <div id="column1">這里是第一列</div>
    <div id="column2">這里是第二列</div>
    </div> 
    CSS:
    #wrap{position:relative;/*相對定位*/width:770px;}
    #column1{position:absolute;top:0;left:0;width:300px;}
    #column2{position:absolute;top:0;right:0;width:470px;} 
    他們的區別在哪? 
    顯然,float是相對定位的,會隨著瀏覽器的大小和分辨率的變化而改變,而position就不行了,所以一般情況下還是float布局!

    CSS常用布局實例

    單行一列
    body{margin:0px;padding:0px;text-align:center;}
    #content{margin-left:auto;margin-right:auto;width:400px;} 

    兩行一列 
    body{margin:0px;padding:0px;text-align:center;}
    #content-top{margin-left:auto;margin-right:auto;width:400px;}
    #content-end{margin-left:auto;margin-right:auto;width:400px;} 

    三行一列 
    body{margin:0px;padding:0px;text-align:center;}
    #content-top{margin-left:auto;margin-right:auto;width:400px;width:370px;}
    #content-mid{margin-left:auto;margin-right:auto;width:400px;}
    #content-end{margin-left:auto;margin-right:auto;width:400px;}

    單行兩列 
    #bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
    #bodycenter#dv1{float:left;width:280px;}
    #bodycenter#dv2{float:right;width:420px;} 

    兩行兩列
    #header{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
    #bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;}
    #bodycenter#dv1{float:left;width:280px;}
    #bodycenter#dv2{float:right;width:420px;} 

    三行兩列
    #header{width:700px;margin-right:auto;margin-left:auto;}
    #bodycenter{width:700px;margin-right:auto;margin-left:auto;}
    #bodycenter#dv1{float:left;width:280px;}
    #bodycenter#dv2{float:right;width:420px;}
    #footer{width:700px;margin-right:auto;margin-left:auto;overflow:auto;clear:both;} 

    單行三列

    絕對定位 
    #left{position:absolute;top:0px;left:0px;width:120px;}
    #middle{margin:0px190px0px190px;}
    #right{position:absolute;top:0px;right:0px;width:120px;} 

    float定位
    xhtml:
    <div id="wrap">
    <div id="column">
    <div id="column1">這里是第一列</div>
    <div id="column2">這里是第二列</div>
    <div class="clear"></div>/*用法web標準不建議,但是記住下面元素需要清除浮動*/
    </div>
    <divid="column3">這里是第三列</div>
    <divclass="clear"></div>/*用法web標準不建議,但是記住下面元素需要清除浮動*/
    </div> 
    CSS:
    #wrap{width:100;height:auto;}
    #column{float:left;width:60;}
    #column1{float:left;width:30;}
    #column2{float:right;width:30;}
    #column3{float:right;width:40;}
    .clear{clear:both;} 

    float定位二
    xhtml
    <div id="center"class="column">
    <h1>Thisisthemaincontent.</h1>
    </div>
    <div id="left"class="column">
    <h2>Thisistheleftsidebar.</h2>
    </div>
    <div id="right"class="column">
    <h2>Thisistherightsidebar.</h2>
    </div>
    CSS
    body{
    margin:0;
    padding-left:200px;/*LCfullwidth*/
    padding-right:190px;/*RCfullwidth CCpadding*/
    min-width:200px;/*LCfullwidth CCpadding*/
    }
    .column{
    position:relative;
    float:left;
    }
    #center{
    width:100;
    }
    #left{
    width:200px;/*LCwidth*/
    right:200px;/*LCfullwidth*/
    margin-left:-100;
    }
    #right{
    width:190px;/*RCwidth*/
    margin-right:-100;
    }

    /***IEFix***/
    *html#left{
    left:190px;/*RCfullwidth*/
    }

    兩行三列 
    xhtml:

    <div id="header">這里是頂行</div>
    <div id="warp">
    <div id="column">
    <div id="column1">這里是第一列</div>
    <div id="column2">這里是第二列</div>
    <div class="clear"></div>
    </div>
    <div id="column3">這里是第三列</div>
    <div class="clear"></div>
    </div> 
    CSS:
    #header{width:100;height:auto;}
    #wrap{width:100;height:auto;}
    #column{float:left;width:60;}
    #column1{float:left;width:30;}
    #column2{float:right;width:30;}
    #column3{float:right;width:40;}
    .clear{clear:both;} 

    三行三列 
    xhtml:
    <div id="header">這里是頂行</div>
    <div id="wrap">
    <div id="column">
    <div id="column1">這里是第一列</div>
    <div id="column2">這里是第二列</div>
    <div class="clear"></div>
    </div>
    <div id="column3">這里是第三列</div>
    <div class="clear"></div>
    </div>
    <div id="footer">這里是底部一行</div>
    CSS:
    #header{width:100;height:auto;}
    #wrap{width:100;height:auto;}
    #column{float:left;width:60;}
    #column1{float:left;width:30;}
    #column2{float:right;width:30;}
    #column3{float:right;width:40;}
    .clear{clear:both;}
    #footer{width:100;height:auto;} 

    PS:這里列出的是常用的例子,而非研究之用,對一每個盒子,我都沒有設置margin,padding,boeder等屬性,是因為我個人覺得,含有寬度定位的時候,最好不好用到他們,除非必不得已,因為如果不是這樣的話,解決瀏覽器兼容問題,會讓你頭疼,而且產生一系列CSS代碼,我覺得這樣的效率和效果都不好! 

    CSS布局高級技巧
    margin和padding總是有可能要用到,而產生的問題如何解決呢?由于瀏覽器解釋容器寬度的方法不同:
    IE6.0FirefoxOpera等是
    真實寬度=width padding border margin
    IE5.X
    真實寬度=width-padding-border-margin 

    IE中有浮動對象的雙倍距離之BUG(IEDoubledFloat-MarginBug),這里還需要具體問題具體解決,下面是解決辦法www.forest53.com/tutorials/tutorials_show.asp?id=31

    很明顯,第一種下很完美的布局在第二種情況下后果是很凄慘的! 
    解決的方法是hack 
    div.content{
    width:400px;//這個是錯誤的width,所有瀏覽器都讀到了
    voice-family:"\"}\"";//IE5.X/win忽略了"\"}\""后的內容
    voice-family:inherit;
    width:300px;//包括IE6/win在內的部分瀏覽器讀到這句,新的數值(300px)覆蓋掉了舊的
    }
    html>body.content{//html>body是CSS2的寫法
    width:300px;//支持CSS2該寫法的瀏覽器(非IE5)有幸讀到了這一句
    }

    div.content{
    width:300px!important;//這個是正確的width,大部分支持!important標記的瀏覽器使用這里的數值
    width(空格)/**/:400px;//IE6/win不解析這句,所以IE6/win仍然認為width的值是300px;而IE5.X/win讀到這句,新的數值(400px)覆蓋掉了舊的,因為!important標記對他們不起作用
    }
    html>body.content{//html>body是CSS2的寫法
    width:300px;//支持CSS2該寫法的瀏覽器有幸讀到了這一句


    列等高技巧
    n行n列布局,每列高度(事先并不能確定哪列的高度)的相同,是每個設計師追求的目標,做法有:背景圖填充、加JS腳本的
    方法和容器溢出部分隱藏和列的負底邊界和正的內補丁相結合的方法。

    背景圖填充法:
    xhtml:
    <div id="wrap">
    <div id="column1">這是第一列</div>
    <div id="column1">這是第二列</div>
    <div class="clear"></div>
    </div>
    css:
    #wrap{width:776px;background:url(bg.gif)repeat-y300px;}
    #column1{float:left;width:300px;}
    #column2{float:right;width:476px;}
    .clear{clear:both;} 

    就是將一個npx寬的一張圖片在外部容器縱向重復,定位到兩列交錯的位置縱向重復,在視覺上產生了兩列高度一樣的錯覺。
    posted on 2010-02-27 13:01 hankchen 閱讀(2858) 評論(0)  編輯  收藏 所屬分類: HTML+CSS

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产免费av片在线无码免费看| 在线观看免费视频网站色| 精品国产sm捆绑最大网免费站| 亚洲mv国产精品mv日本mv| 日本在线看片免费| 亚洲精品国产精品乱码不99| 中文字幕日本人妻久久久免费| 亚洲AV永久无码区成人网站| 无码精品人妻一区二区三区免费看 | 亚洲乱色熟女一区二区三区丝袜| GOGOGO免费观看国语| 亚洲欧洲国产精品香蕉网| 久久久久国色av免费看| 久久亚洲精品无码aⅴ大香| 国产91色综合久久免费分享| 亚洲一区二区三区高清在线观看 | 蜜芽亚洲av无码精品色午夜| 99国产精品永久免费视频| 亚洲男人天堂2022| 四虎永久免费影院在线| 一级免费黄色毛片| 亚洲AV午夜成人影院老师机影院| 亚洲一区免费在线观看| 亚洲欧美日韩综合久久久久| 亚洲日本中文字幕一区二区三区 | 97超高清在线观看免费视频| 久久亚洲AV无码精品色午夜| 成全影视免费观看大全二| 日韩毛片免费一二三| 久久综合图区亚洲综合图区| www.999精品视频观看免费| 看全免费的一级毛片| 亚洲国产成人片在线观看| 三年片在线观看免费大全| 一区二区视频在线免费观看| 久久亚洲中文字幕精品有坂深雪| 国产成人精品免费视频软件| 国产午夜成人免费看片无遮挡 | 永久免费的网站在线观看| 一进一出60分钟免费视频| 亚洲熟妇色自偷自拍另类|