zoukankan      html  css  js  c++  java
  • css杂谈

    position:absolute这个是绝对定位;
    
    是相对于浏览器的定位。 比如:position:absolute;left:20px;top:80px; 这个容器始终位于距离浏览器左20px,距离浏览器上80px的这个位置。 position:relative是相对定位,是相对于前面的容器(父容器)定位的。这个时候不能用top left在定位。应该用margin。 比如:<div class="1"></div><div class="2"></div> 当1固定了位置。1的样式float:left;100px; height:800px; 2的样式为float:left; position:relative;margin-left:20px;50px; 2的位置在1的右边,距离120px
    ——————————————————————————————————————————————————————————————————————————————————————

    左右固定,中间自适应布局(方法5以后进阶,实现中间栏优先加载)

    html代码:

    <div id="left">左边栏</div>
    <div id="right">右边栏</div>
    <div id="main">主内容</div>

    方法一:利用绝对定位方法(不推荐)

    css部分:

    body {margin: 0;padding: 0; height: 100%;}
    #left,#right {position: absolute; top:0;  220px; height: 100%;background:pink;}
    #left {left: 0;}
    #right { right:0;}
    #main {margin: 0 230px; height: 100%;}

    这种方法是最简单,也是麻烦最多的,如果中间栏含有最小宽度限制,或是含有宽度的内部元素,当浏览器宽度小到一定程度,会发生层重叠的情况。

    方法二:采用的是浮动布局

    css部分:

    #left,#right { float: left;  220px; height: 200px; background: blue;} 

    #right { float: right;} 

    #main { margin: 0 230px;background: red; height: 200px;}

    这种方法我利用的就是浮动原理,左右定宽度分别进行左浮动和右浮动,此时主内容列(中间列没有定度)主会自动插入到左右两列的中间,最要注意的一点是,中间列一定要放在左右两列的后面

    方法三:margin方法

    css部分:

    #left{ 200px; float:left;margin-right:-200px; background-color:#FF9900}

    #main{ auto;background:#00FF00;margin:0 220px;}

    #right{ 200px;margin-left:-200px; float:right; background-color:#CCCC00}

    左右设置后,使用margin 

    方法四:个人感觉最简单方法:

    css部分:

    #left{ 200px; float:left;}

    #mid{ auto;}

    #right{ 200px; float:right;}

    中间使用auto;左右分别左右浮动

    方法五:实现中间栏优先加载(重要部分优先加载)

    html部分:

    <div class="main-2">

         <div class="main-wrap-2">main-wrap</div>

    </div>

    <div class="sub-2">sub</div>

    <div class="extra-2">extra</div>

    css部分:

    .main-2{ float:left; 100%;margin-bottom:-3000px; padding-bottom:3000px;background:#F90;}

    .main-wrap-2{  margin:0 200px 0 150px;  }

    .sub-2{ float:left; margin-left:-100%; 150px; background:#6C0; margin-bottom:-3000px; padding-bottom:3000px;}

    .extra-2{ float:left; margin-left:-200px; 200px; background:#F9F; margin-bottom:-3000px; padding-bottom:3000px;}

    优先加载关键在于重要内容在html里面必须在前面,所有main部分移到了最上面

    较完整内容可以参考——双飞翼布局:

    <style type="text/css">
                *{ margin:0; padding:0px;}
                .header{ background:#666; text-align:center;}
                .body{ overflow:hidden;*zoom:1;}
                .wrap-2{ margin-top:30px;}
                .wrap-2 .main-2{ float:left; 100%;margin-bottom:-3000px; padding-bottom:3000px;background:#F90;}
                .wrap-2 .main-wrap-2{  margin:0 200px 0 150px;  }
                .wrap-2 .sub-2{ float:left; margin-left:-100%; 150px; background:#6C0; margin-bottom:-3000px; padding-bottom:3000px;}
                .wrap-2 .extra-2{ float:left; margin-left:-200px; 200px; background:#F9F; margin-bottom:-3000px; padding-bottom:3000px;}
                .footer{ background:#666; text-align:center;}
            </style>

    <div class="wrap-2">
                <div class="header">Header</div>
                <div class="body">
                    <div class="main-2"><div class="main-wrap-2"><p>main-wrap</p><p>main-wrap</p></div></div>
                    <div class="sub-2"><p>sub</p><p>sub</p><p>sub</p></div>
                    <div class="extra-2"><p>extra</p><p>margin-left:350px; background:#CC0;margin-left:350px; background:#CC0;</p></div>
                </div>
                <div class="footer">Footer</div>
            </div>

    方法六:中间栏优先加载,采用css3 方法:

    [html]<!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>自适应宽度,左右两栏固定宽度,中间栏优先加载</title>
    <style>
    .container{
            display:-moz-box;
            display:-webkit-box;
            }
    div{
            padding:10px;
            -moz-box-sizing:border-box;
            -webkit-box-sizing:border-box;                
            }        
    .sider_l{
            250px;
            -moz-box-ordinal-group:1;
            -webkit-box-ordinal-group:1;                
            background:limegreen;
            }
    .middle_content{
            -moz-box-flex:1;
            -webkit-box-flex:1;
            -moz-box-ordinal-group:2;
            -webkit-box-ordinal-group:2;
            background:lightpink;                
            }        
    .sider_r{
            250px;
            -moz-box-ordinal-group:3;
            -webkit-box-ordinal-group:3;                
            background:green;                
            }                        
    </style>
    </head>

    <body>
            <div class="container">
                <div class="middle_content">优先加载主内容区</div>
            <div class="sider_l">左边栏</div>
                    <div class="sider_r">右边栏</div>            
        </div>
    </body>
    </html>
    [/html]

    方法七:中间栏优先加载position:absolute方法

    <style type="text/css">
    html,body{100%;height:100%;margin:0;padding:0;}
    .content{100%;height:100%;position:relative;background:#CFF;overflow:hidden;}
    .left{200px;height:100%;background:#0F0;position:absolute;z-index:1001;top:0;left:0;}
    .center-ct{height:100%;background:#60F;position:absolute;z-index:900;top:0;left:0;margin:0;100%;}
    .center{margin:0 200px;}
    .right{200px;height:100%;background:#FF0;position:absolute;z-index:1000;right:0;top:0;}
    </style>
    </head>

    <body>
    <div class="content">
    <div class="center-ct">
        <div class="center">
        center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center center
        </div>
    </div>
    <div class="left">left</div>
    <div class="right">right</div>
    </div>
    </body>
    </html>

    ————————————————————————————————————————————————————————————————

    CSS中100%和auto区别

    一直对100%和auto概念比较模糊,今天写左右固定,中间自适应布局 博客时绝对有必要弄清除:

    转载一个解释:

    1. 100% 并不包含margin-left  margin-right的属性值,直接取其父容器的宽度加上含margin-left /margin-right的值。

        如果设置了margin那新的width值是容器的宽度加上margin的值。

      (细心观察)就会发现加了  margin相对应的边就会多出设置的空白。而且会多出横向滚动条因为宽度已经超出了屏幕的范围。(这条相对于父容器是body)。

    2. auto包含margin-left/margin-right的属性值。

        其值包含margin-left /margin-right的值。auto总是占据整行!!!

        这其中margin的值已经包含其中了(也就是一整行)如果要设置margin的值那就用一整行然后减去margin的值就得到了现在的宽度了。

        减去的这个值就是相应边得空白。显著的特征是这个没有横向滚动条出现也就是宽度没有增加。

    3. 在IE6下显示不正常,但是在IE8和IE9下显示正常,可能是IE8和IE9对100%的解析与IE6不同所致。

         但是两者对auto的解析是一致的

    ————————————————————————————————————————————————————————————————————

    <!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 type="text/css" title="">
    *{
     margin:0;
     padding:0;
    }
    html{
     padding:0;
     _padding:100px 0 0 0px;
     100%;
     height:100%;
     scrollbar-face-color:#9CC7F7;
     scrollbar-highlight-color:#fff;
     scrollbar-shadow-color:#eeeeee;
     scrollbar-3dlight-color:#eeeeee;
     scrollbar-arrow-color:#fff;
     scrollbar-track-color:#fff;
     scrollbar-darkshadow-color:#fff;
    }
    body{
     _padding:100px 0 0 200px;
     _padding:/**/0;
     100%;
     height:100%;
     expression( documentElement.clientWidth <= 1024 ? (documentElement.clientWidth == 0 ? (body.clientWidth <= 1024 ? "1010" : "1260") : "1010px") : "1260" );

    }

    #container {
        100%;
     min-1010px;
     max-1260px
     expression( documentElement.clientWidth <= 1024 ? (documentElement.clientWidth == 0 ? (body.clientWidth <= 1024 ? "1010" : "1260") : "1010px") : "1260" );

    }


    /*----------------头部开始--------------------*/
    #header {
        100%;
     height:131px;
     position:absolute;
     left:0;
     top:0;
     margin:0;
     background:blue;
    }
    #headertitle{
        text-align:right;
     padding-right:10px;
     height:100px;
     background:url(../images/header_r1_c1.jpg) no-repeat;
     background-position:top left;
    }/*头部帮助|简体|繁体|FAQ*/

    #headernav{
        height:31px;
     background-color:#0066CC;
    }
    #nav li {
        float:left;
    }
    #nav li a {
        display:block;
     100px;
     height:25px;
     text-align:center;
     background:url(../images/nav_r2_c1.jpg);
     margin-right:1px;
     padding-top:5px;
    }
    #nav li a:hover {
     background:url(../images/nav_r2_c2.jpg);
    }/*主导航效果*/

    /*----------------/头部-------------------------------*/

    /*---------------------------中间内容开始------------------*/
    #wrapper {
        100%;
     height:100%;
     margin:0;
    }

    /*左边导航*/
    #leftnav {
        position:absolute;
     left:0;
     top:131px;
     160px;
     height:100%;
     border:1px solid #FFFFFF;
     background:blue repeat-y;
    }
    #lefttitle{
        background:url(../images/lefttitle_r3_c1.jpg) no-repeat;
     160px;
     height:30px;
     text-align:center;
     padding-top:16px;
    }
    #lefttitle img {
        margin-right:5px;
     }
     
    #leftbtn {
        margin:20px auto;
    }
     
    #btn {
        list-style:none;
     text-align:center;
     140px;
     }
    #btn li {
        padding:0px 0 2px 0;
    }
    #leftbg {
        background:url(../images/leftbj_r7_c2.jpg) no-repeat;
     background-position:bottom left;
     height:268px;
    }

    /*--------------页脚-------------------*/
    #footer {
     100%;
     height:20px;
     border-top:1px solid #000;
     background:#000;
     color:#FFFFFF;
     text-align:center;
     position: absolute;
     bottom:0;
    }
    .clearer{
    clear:both;
    }
    html,body,h1 {
         font-family:Simsun, Tahoma, Verdana, Arial;
      font-size:12px;
      line-height:20px;
      text-decoration:none;
    }

    #header#headertitle h1 {
         color:#FFFFFF;
    }
    #header#headertitle h1 a {
         color:#FFFFFF;
      text-decoration:none;
    }
    #header#headertitle h1 a:hover {
         color: #00FFFF;
      text-decoration:underline;
    }
    #nav li a{
         color:#FFFFFF;
      text-decoration:none;
    }
    #nav li a:hover{
         color:#00FFFF;
    }
    #lefttitle {
         color:#FFFFFF;
      font-weight:bolder;
      font-size: 14px;
     }
     
    #btn li a{
     color:#FFFFFF;
     text-decoration:none;
     text-align: center;
    }
    #btn li a:hover{
     display:block;
     80px;
     height:20px;
     background-color:#99CCFF;
     color:#FFFFFF;
    }   

    </style>
    </head>

    <body>
    <div id="container"><!--最外层开始-->

       <div id="header"><!--头部开始-->
          <div id="headertitle"><!--头部帮助开始-->
            <h1><a href="#">简体</a> | <a href="#">繁体</a> | <a href="#">帮助</a> | <a href="#">FAQ</a></h1>
          </div><!--/头部帮助-->
      
       <div id="headernav"><!--头部导航开始-->
         <ul id="nav">
        <li><a href="#">首页</a></li>
        <li><a href="#">股票</a></li>
        <li><a href="#">基金</a></li>
        <li><a href="#">债券指数</a></li>
        <li><a href="#">组合</a></li>
        <li><a href="#">报价</a></li>
        <li><a href="#">经济数据</a></li>
        <li><a href="#">财经新闻</a></li>
        <li><a href="#">财经报刊</a></li>
        <li><a href="#">研究报告</a></li>
      </ul>
       </div><!--/头部导航-->
       </div>
       <!--/头部-->
      
       <div id="wrapper"><!--中间内容层开始-->
      
          <div id="leftnav"><!--左边导航层开始-->
          <div id="lefttitle"><!--左边导航标题-->
       <img src="images/t1.gif" align="absbottom" />债券指数</div>
          <!--/左边导航标题-->
      
       <div id="leftbtn"><!--左边导航按钮-->
         <ul id="btn">
            <li><a href="#">指数系列</a></li>
         <li><img src="images/t2.gif" /></li>
         <li><a href="#">指数概览</a></li>
         <li><img src="images/t2.gif" /></li>
         <li><a href="#">指数分析</a></li>
         <li><img src="images/t2.gif" /></li>
         <li><a href="#">行情序列</a></li>
         <li><img src="images/t2.gif" /></li>
         </ul>
       </div><!--/左边导航按钮-->
      
       <div id="leftbg"></div><!--左边背景-->
       <div class="clearer"></div>
      
       </div><!--/左边导航层-->
      
       <div id="content"><!--右边内容层开始-->
       </div><!--/右边内容层-->
      
       </div><!--/中间内容层-->

          <!--/页脚-->
    </div><!--/最外层-->
    <div class="clearer"></div>
    <div id="footer"><!--页脚开始-->
    </div>

    </body>
    </html>

  • 相关阅读:
    struts2+ajax实现异步刷新
    ajax实现异步刷新
    AJAX学习总结
    Java中的日期工具类
    jsp页面中用户注销的写法
    封神台靶场:第七章:GET THE PASS! 【技能点:进程中抓下管理员明文密码】
    封神台靶场:第六章:SYSTEM!POWER!【配套课时:webshel​​l控制目标实战演练】
    封神台靶场:第五章:进击!拿到Web最高权限!【配套课时:绕过防护上传木马实战演练】
    封神台靶场:第四章:为了更多的权限!留言板!【配套课时:cookie伪造目标权限 实战演练】
    封神台靶场:第三章:爆破管理员账户登录后台【配套课时:burp到支付和暴破 实战演练】
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/2777460.html
Copyright © 2011-2022 走看看