• 13章 固定宽度布局剖析与制作


    固定宽度布局   页面首先在整体上进行<div>标记的分块,然后对各个块进行css定位,最后再在各个块中添加相应的内容。

    .css的排版观念:
    从网页内容的逻辑关系出发,区分出内容的层次和重要性,根据逻辑关系,把网页的内容使用div或其他适当的html标记组织好,再考虑网页的形式如何与内容相适应。
    13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客
    布局表示为1-((1-2)+1)-1
    减号表示竖直方向排列   括号为组合
    2.单列布局
    (1)放置第一个圆角框
    html代码:
    <div class="rounded">
    <h2></h2>
    <div class="main">
    <p>   </p>
    <//div>
    <div class="footer">
    <p>   </p>
    <//div>
     
    </div>
    (2)设置圆角框的css的样式
    (3)放置其他圆角框
    将上面放置的圆角框再复制2个   并分别设置id为content和footer分表代表内容和页脚
    3.1-2-1固定宽度布局
    13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客
    1.准备html结构
    2.设置css样式
    3.绝对定位:
    #header,#pagefooter,#container
    {
    margin:0 auto;
    760px;
    }
    #container{
    postition:relative;
    }
    #content{
    position:absolute;
    top:0;
    left:0;
    500px;
    }
    #side{
    margin:0 0 0 500px;
    }
    带来的问题
    13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客

     

    当右边的side比左边的content高时,显示效果不会有问题,如果相反content>side,此时content栏已经脱离标准 流,对container这个div的额高度不产生影响,从而pagefooter的位置只根据右边的container高度即side栏栏确定,如果在 content中增加一个圆角框,如上图所示。
     
    4.浮动法
    #header,#pagefooter,#container{
    margin:0 auto;
    760px;
    }
     
    #content{
    float:left;
    500px;
    }
    #content img{
    float:left;
    }
    #side{
    float:left;
    260px;
    }
    #pagefooter{
    cleat:both;
    }

       3.1-3-1固定宽度布局

    13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客

      #header,#pagefooter,#container{

    margin:0 auto;
    760px;
    }
    #navi{
    float:left;
    200px;
    }
    #content{
    float:left;
    360px;
    }
    #content img{
    float:right;
    }
    #side{
    float:left;
    200px;
    }
    #pagefooter{
    clear:both;
    }
     
     
    4.1-((1-2)+1)-1式布局
    13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客
    13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客
     
    结构比较复杂,在写代码的时候,应该尽可能缩进排列代码,并加上易于理解的注释,标清标签的对应
    html代码结构如下
    <body>
    <div id="header">
    <div class="rounded">
    这里省略固定结构的内容代码   圆角框的实现代码
    </div>
    </div><!--end of header-->
    <div id="container">
    <div id="content">
    <div id="banner">
    <div class="rounded">
    这里省略固定结构的内容代码   圆角框的实现代码
    </div>
    </div><!--end of banner-->
     
    <div id="colums">
     
    <div id="col1">
    <div class="rounded">
    这里省略固定结构的内容代码   圆角框的实现代码
    </div>
    </div>
    <div id="col2">
    <div class="rounded">
    这里省略固定结构的内容代码   圆角框的实现代码
    </div>
    </div>
    </div><!--end of colums-->
      </div><!--end of content-->
     
    <div id="side">
     
    <div class="rounded">
    这里省略固定结构的内容代码   圆角框的实现代码
    </div>
    <div class="rounded">
    这里省略固定结构的内容代码   圆角框的实现代码
    </div>
    </div><!--end of side-->
    </div><!--end of container->
     
    <div id="pagefooter">
    <div class="rounded">
    这里省略固定结构的内容代码   圆角框的实现代码
    </div>
    </div><!--end of pagefooter-->
    </body>
     
     
    css样式代码如下
     #header,#pagefooter,#container{
    margin:0 auto;
    760px;
    }
    #container #content{
    float:left;
    560px;
    }
    #container #ontent #colums #col1,
    #container #ontent #colums #col2{
    float:left;
    280px;
    }
    #container #ontent #colums #col1 img{//设置图像的文字环绕方式
    float:left;
    }
     
    #container #ontent #colums #col2 img{
    float:right;
    }
     
     
    #container #side{
    float:left;
    200px;
    }
      #pagefooter{
    clear:both;
    }
     
     4.魔术布局
    13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客

      

    13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客

     从13-28到13-29的转变

    当浏览器窗口逐渐变窄,小于800的时候,右侧的3个数值排列的模块会自动移动到左侧的下面横向排列。当宽度小于600像素的时候,内容不再变窄,而是出现横向滚动条
    1.先改变布局   1-((2-1)+1)-1  改造为1-((2-1)+1)-1只需要把banner从 columns的上面放到下面,注意一点,由于columns中的两列是浮动的,所以对banner增加clear的属性,消除两列的影响
    2.原来右侧的为一个id为side的div会导致side中的div都是标准刘排列,这样即使side在banner下方也不能横排,见side有id选择器改为类选择器,然后将每一个右侧的3个魔术div都设置为.side类别
    3.调整一下宽度,content的宽度是560   side宽度是200像素,现在将content的宽度调整为600像素,col1和col2的宽度调整为300像素,这样砸content的下面正好可以放下3个原来在右边的矩形。
     
     
    修正缺陷
    当浏览器窗口小于600像素的时候,横排已经放不下3个模块了,这是第三个模块被挤到了下面如图
    13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客
    相反地如果超过1000像素是side中的第二个模块会由于向左浮动,会跑到第一个模块的右边
    如图

      13章 固定宽度布局剖析与制作 - 骡子 - stupidmule@126 的博客
     为了避免上面两种情况的发生,需要限制页面内容的宽度,此时要用到css中的两个属性   min-width和max-width

    将最外层的header,container和pagefooter这3个div的宽度设置为100%,使它随着浏览器的窗口变化而变化,然后通过min-width和max
    -width这两个属性的限制其最大和最小宽度,以保证不发生上面显示的两种错误情况。
    #header,#pagefooter,#container{
    margin:0 auto;
    100%;
    min-600px;
    max-800px;
    }
  • 相关阅读:
    Spring.Net AOP的通知类型及通知链
    Spring.Net框架介绍及基本配置(学习笔记一)
    Spring.Net对方法的注入(学习笔记三)
    Spring通过容器获取配置对象及事件注入(学习笔记二)
    SqlServer2008 数据库同步的两种方式(Sql JOB)
    AOPUnity使用初探
    PIABPolicy Injection Application Block
    LINQ查询基础
    C#泛型基础
    [转载]CSS块级元素和行内元素
  • 原文地址:https://www.cnblogs.com/dongguolei/p/7902894.html
Copyright © 2020-2023  润新知