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

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

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

    我是FE,也是Fe

    前端來源于不斷的點滴積累。我一直在努力。

    統計

    留言簿(15)

    閱讀排行榜

    評論排行榜

    使用div模擬出frameset效果

    在史前時代,大家喜歡用frameset來做框架結構。回想起來frameset的優點在于布局的自適應。frameset已經早不是web標準推薦的了。而且弄這么多頁面去實現這個效果也很蹩腳。其實可以用css布局和定位來實現這樣的效果的。下面是一個demo:
    <!doctype html> 
        
    <html xmlns="http://www.w3.org/1999/xhtml" >
         
    <head>
          
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          
    <title>div仿框架布局</title>
          
    <style type="text/css">
           * 
    { margin:0; padding:0; list-style:none;}
           html,body 
    { height:100%; overflow:hidden;}
           
    /*reset panel posotion*/
           .panel
    {position:absolute;top:0px;right:0px;bottom:0px; left:0px; z-index:1;}
           .top 
    { height:50px; background-color:#ccc;}
           .left 
    { top:50px; bottom:50px; width:200px; background-color:#eee;}
           .main 
    { left:200px; top:50px; bottom:50px;background-color:#f5f5f5;}
           .bottom 
    { top:auto;  height:50px;background-color:#ccc;}
           .panel iframe 
    { width:100%; height:100%;}

            
    /* class for hide top*/
           .hidetop .top
    {display:none;}
           .hidetop .left,.hidetop .main
    {top:0px;}

            
    /* class for hide bottom*/
           .hidebottom .bottom
    {display:none;}
           .hidebottom .left,.hidebottom .main
    {bottom:0px;}

           
    /*class for hide left*/
           .hideleft .left
    {display:none;}
           .hideleft .main
    {left:0px;}

           
    /* HACK:*IE6/7 _IE6*/
           html 
    { *padding:50px 0px 50px 0px;}
           .panel
    {*position:relative;}
           .top 
    { *margin-top:-50px; *margin-bottom:0px; }
           .left 
    { *height:100%; *float:left; *top:0px;  }
           .main 
    { *height:100%;  *top:0;*left:0px;_left:-3px;}/*IE 6 float 3px bug*/
            .hidetop
    {*padding-top:0px;}
            .hidebottom
    {*padding-bottom:0px;}
            .hideleft
    {*padding-left:0px;}

          
    </style>
          
    <script type="text/javascript">
            
    function toggleClass(dom,className){
                
    var reg = new RegExp(className,"g"),
                    cn 
    = dom.className,
                    newcn
    = cn.indexOf(className)==-1?(cn+" "+className):cn.replace(reg,"");
                dom.className
    =newcn;
            }
          
    </script>
         
    </head>
         
    <body>
          
    <div class="panel top">頂部內容(iframe上scrolling="yes" style="overflow:visible;"防止IE6出現iframe橫向滾動條)</div>
          
    <div class="panel left">
            
    <input type="button" id="" name="" value="收起/顯示上部" onclick="toggleClass(document.getElementsByTagName('html')[0],'hidetop')" />
            
    <br />
            
    <input type="button" id="" name="" value="收起/顯示左部" onclick="toggleClass(document.getElementsByTagName('html')[0],'hideleft')" />
            
    <br />
            
    <input type="button" id="" name="" value="收起/顯示下部" onclick="toggleClass(document.getElementsByTagName('html')[0],'hidebottom')" />
          
    </div>
          
    <div class="panel main" ><iframe frameborder="0"  scrolling="yes" style="overflow:visible;" src="http://www.baidu.com"></iframe></div>
          
    <div class="panel bottom">底部內容</div>
         
    </body>
        
    </html>

    代碼很簡潔,看著也很舒服,在IE6下也能堅強的正確的顯示著。

    可以參考blueidea論壇里面的這個經典的帖子:

    http://bbs.blueidea.com/thread-2818595-4-1.html

    posted on 2011-06-17 12:26 衡鋒 閱讀(6314) 評論(5)  編輯  收藏 所屬分類: javascriptWeb開發

    評論

    # re: 使用div模擬出frameset效果 2011-06-18 05:59 Shor

    似乎現在用jquery實現類似的功能更加美觀容易. 不知道jquery對老一代瀏覽器的支持如何.  回復  更多評論   

    # re: 使用div模擬出frameset效果 2011-06-18 10:19 陽衡鋒

    @Shor
    jQuery的有borderlayout插件http://layout.jquery-dev.net/。非常好用。對于比較簡單的布局可以采用上述做法。  回復  更多評論   

    # re: 使用div模擬出frameset效果 2011-06-20 17:23 楊文勝

    newcn= cn.indexOf(className)==-1?(cn+" "+className):cn.replace(reg,"");
    這沒太讀懂,解釋一下可以不,陽哥  回復  更多評論   

    # re: 使用div模擬出frameset效果 2011-06-20 17:29 陽衡鋒

    @楊文勝
    這不就是如果className里面有那個class了就把他替換,否則給他加在最后面么。
    if(cn.indexOf(className)==-1){
    newcn=(cn+" "+className):
    }else{
    newcn = cn.replace(reg,"");
    }  回復  更多評論   

    # re: 使用div模擬出frameset效果 2011-09-15 08:33 tb

    剛好用到   回復  更多評論   

    主站蜘蛛池模板: 免费女人高潮流视频在线观看| 亚洲男人天堂av| 国产在线19禁免费观看国产| 最近免费中文在线视频| 久久久免费精品re6| 美女视频黄a视频全免费网站色窝| 国产精品内射视频免费| 一个人看的www视频免费在线观看| 成人嫩草影院免费观看| 又粗又长又爽又长黄免费视频| 国产亚洲精品精品精品| 免费人成大片在线观看播放电影 | 免费中文熟妇在线影片 | 日日摸日日碰夜夜爽亚洲| 苍井空亚洲精品AA片在线播放| 亚洲av乱码中文一区二区三区| 色偷偷亚洲第一综合| 国产精品亚洲专一区二区三区| 深夜福利在线免费观看| 九九九精品视频免费| 中文字幕高清免费不卡视频| 久久久久久久国产免费看| 国产一区二区免费视频| 精品国产免费人成电影在线观看 | 日本高清不卡aⅴ免费网站| 久久美女网站免费| 在线观看免费中文视频| 国产成人免费高清激情视频 | 久久久久国产免费| 精品国产污污免费网站aⅴ| 永久黄网站色视频免费直播| 亚洲日本中文字幕天堂网| 亚洲AV无码精品色午夜果冻不卡 | 亚洲国产成人久久精品影视| 亚洲人成电影在线观看青青| 亚洲精品无码久久久久久| 五月天婷婷免费视频| 99久久久国产精品免费牛牛四川 | 在线毛片片免费观看| 999在线视频精品免费播放观看| 免费视频淫片aa毛片|