zoukankan      html  css  js  c++  java
  • 14章 变宽度网页布局剖析于制作

    首先要使内容的整体宽度随着浏览器窗口的变化而变化,因此中间的container容器中的左右两列的总宽度也会发生变化。

    出现的两种方式
    两列按照一定的比例同时变化,还是一列固定,另一列变化。
    命名方法:固定宽度记为f   即fixed       变宽度记为l  即liquid
    如果1-2-1不居中的两列,左边的为固定宽度,右边的边宽度,可以记为1-(f-l)-1
    1.1-2-1等比例变宽布局

    #header,#pagefooter,#container{

    margin:0 auto;
    85%;改为比例宽度
    }
    #content{
    float:left;
    66%;
    }
    #side{
    float:left;
    33%;
    }
    content和side的宽度设置为99%,而不是100%避免宽度大于他们容器的总宽度,而使某个div被挤到下一行中。
    如果希望精确,可以写成99.9%
    要对最大的宽度进行限制。
    #header,#pagefooter,#container{
    margin:0 auto;
    85%;
    min-500px;
    max-800px;
    }
    1-2-1单列变宽布局
    当有一侧为目录时,而不希望他的宽度发生变化。
          浮动方法
     实现原理  在content未免在套一个div,使它的宽度为100%,和container的宽度相同,然后通过将左侧的margin设置为负的300像素,就使它向左平移了300像素,再将content的左侧margin设置为正的300像素,就实现了100%-300px这个无法表达的宽度
     
    代码如下:
    #header,#container,#pagefooter{
    margin:0 auto;
    85%;
    }
    #contentwrap{
    margin-left:-300px;
    float:left;
    100%;
    }
    #content{
    margin-left:300px;
    }
    #side{
    float:right;
    300px;
    }
    #pagefooter{
    clear:both;
    }
    核心的一点是活动宽度列外面套了一层div  设置为contentwrap
    contentwrap的宽度设置为100%宽度,同时将右侧的margin设置为-300px;在content
    的里面,以标准流的方式存在。即实现了100%-300px的宽度。
     
    如图所示14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客
     
    html结构代码
    <body>
    <div id="header">
    <div class="rounded">...这里省略固定结构的代码 圆角框</div>
    </div>
     
    <div id="container">
    <div id="contentwrap">
    <div id="content">
    <div class="rounded">...这里省略固定结构的代码 圆角框</div>
    </div>
    </div>//contentwrap结束
    <div id="side">
    <div class="rounded">...这里省略固定结构的代码 圆角框</div>
    </div>//side结束
    </div>//container结束
     
    <div id="pagefooter">
    <div class="rounded">...这里省略固定结构的代码 圆角框</div>
    </div>
    </div>
    </body>
    1-3-1宽度适应布局
    1三列按比例适应宽度;不作介绍
    2一列固定,其他两列按照比例适应宽度;
    3两列固定,其他一列适应宽度;
     
    2一列固定的情况   
    14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客
     
       outerwrap宽度和container宽度相同,里面的inner以标准刘的方式存在,宽度会自然伸展,由于左侧margin负200,所以宽度就是总卡U年度减去200像素,这样innerwrap里面的navi和content就会以这个新宽度为宽度基准。
    #header,#pagefooter,#container{
    margin:0 auto;
    85%;
    }
    #outerwrap{
    float:left;
    100%;
    margin-left:-200px;
    }
    #innerwrap{
    margin-left:200px;
    }
    #navi{
    float:left;
    40%;
    }
    #content{
    float:right;
    59.5%;
    }
    #side{
    float:right;
    200px;
    }
    #pagefooter{
    clear:both;
    }
    html结构代码省略
    1-3-1中间列宽度固定的变宽布局
     
      中间固定列,左右按照比例适应总宽度。常见的两侧的列固定宽度,中间列变化宽度
    如图所示
    14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客
    左侧的naviwrap设置为50%的宽度,向左浮动,并通过将左侧margin设置为-150像素,向左平移了150像素。然后再里面的navi中左侧margin设置为150像素,补偿回来这150像素。
    接着将content设置为固定宽度,先做浮动,这样就紧贴着navi的边界
    最后将sidewrap做与navi部分相似的处理,设置为50%宽度,向左浮动,这是本来宽度已经超过100%,会被挤到下一行,但是将右侧margin设置为-150像素后你就不会超过总宽度了。
    实际代码中将其中一个设置为49.9%   一个设置为50%;
    css代码如下
    #header,#pagefooter,#congtainer{
    85%;
    margin:0 auto;
    }

      #naviwrap{

    50%;
    float:left;
    margin-left:150px;
    }
    #navi{
    marin-left:150px;
    }
    #content{
    float:left;
    300px;
    }
    #sidewrap{
    49.9%;
    float:right;
    margin-left:-150px;
    }
    #side{
    margin-right:150px;
    }
    #pagefooter{
    clear:both;
    }
     
    1-3-1双侧列宽度固定的变宽布局
     
    常用的布局方式
    14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客
     
    #header,#pagefooter,#congtainer
    {
    85%;
    margin:0 auto;
    }
      #side{
    200px;
    float:right;
    }
    #outerwrap{
    100%;
    margin-left:-200px;
    float:left;
    }
    #innerwrap{
    margin-left:200px;
    }
    #navi{
     
    150px;
    float:left;
    }
     
    #contentwrap{
    float:right;
    100%;
    margin-right:-150px;
    }
    #content{
    margin-right:150px;
    }
    #pagefooter{
    clear:both;
    }
     
    1-3-1中列和侧列宽度固定的变宽布局
    #header,#container,#pagefooter{
    margin:0 auto;
    85%;
    }
    #navi
    {
    float:left;
    150px;
    }
    #content{
    float:left;
    250px;
    }
    #sidewrap{
    float:right;
    margin-right:-400px;
    100%;
    }
    #side{
    margin-right:400px;
    }
    #pagefooter{
    clear:both;
    }
     
    边宽度布局方法总结
     
     
    14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客
     分列布局背景颜色问题
     
  • 相关阅读:
    js事件之event.preventDefault()与event.stopPropagation()用法区别
    [转] The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing
    [转] Visual Studio Code behind a proxy
    [转] js == 与 === 的区别
    [转]说说C#的async和await
    [转]Sublime Text3注册码(可用)
    Oracle 12c
    SQL Server死锁
    Initialize the Storage Emulator by Using the Command-Line Tool
    Microsoft Fakes
  • 原文地址:https://www.cnblogs.com/dongguolei/p/7902874.html
Copyright © 2011-2022 走看看