第8章 布局

CSS布局技术的根本即3个基本概念:定位,浮动,外边距操纵

一 计划布局

1 页面大结构划分————关注内容区域(寻找共同特征而不是视觉表现,寻找重复模式)————在内容中寻找不同布局

二 设计基本结构

  wrapper,header,content,footer

  用外边距让设计居中的问题: .wrapper{width: 920px;margin:0 auto;}

  hack:混杂模式中的IE5和IE6不支持margin:auto;但是IE将text-align: center;误解为将所有东西居中。因此可以让标签中所有元素居中,然后让容器内容重新左对齐。

  body{text-align:center;}

  .wrapper{width: 920px; margin: 0 auto; text-align: left;}

三 基于浮动的布局

  常用的清理浮动的方法是:浮动几乎所有东西,然后再“战略点”进行一次或两次清理,或使用溢出方法。

  两列浮动布局:

<div class="content">

 <div class="primary">
</div>

<div class="secondary">/*次要内容将位于左边,但是将主要内容放在前面一是因为主内容是页面上最重要的部分,所以应该首先出现。其次可以方便屏幕阅读器用户。
</div>

<div class="footer">
</div>

</div>

 IEbug :在符合标准的浏览器中,如果元素内容太大,会超出框之外;但在IE中,整个元素会扩展,迫使一列退到另一列下面。原因是ie考虑元素内容的尺寸而不是元素本身的尺寸。引起内容扩展的因素可能是很小的东西引起,比如设置了斜体,在紧密的布局中就会导致浮动元素下退。其他的IEbug 如像素文本偏移和双外边距浮动以及各浏览器的取整错误都会导致浮动元素下降。

  因此,可以不使用水平外边距或内边距设置隔离带,而是让一个元素左浮动,另一个右浮动。

  

.content {
    overflow: hidden;
}

.content .primary {
  width: 650px;
  padding-right: 20px;
  float: right;  display:inline;/*防止ie中双外边距浮动bug*/
}

.content .secondary {
  width: 230px;
  float: left;   display:inline;
} 

三列浮动布局:相似于两列布局,区别在于在主内容div添加了两个新div.

固定宽度,流式和弹性布局:

    流式布局:尺寸以百分数设置,高效使用空间

         缺点: 窗口宽度较小时 ,行难以阅读--添加以像素或em 为单位的min-width;

              窗口宽度较大时,行变得较长也难以阅读----使用百分比设置内边距或外边距;只横跨容器的一部分;设置max-width;

           Liquid fold工具:计算占比

弹性布局:以em为单位相对于字号设置元素宽度。字号增加时布局随之增大。

        缺点:不能充分利用空间,可能导致水平滚动条出现。----容器div添加100%的max-width(ie6中实现用js)

        技巧:设置基字号,使1em约为10px;例:font-size:62.5%;(浏览器默认你字号16像素)

        其他:容器宽度em,其他用百分比。方便修改布局总尺寸但不用修改每个像素宽度。

     流式和弹性对固定宽度图像影响问题:1使用背景图像而不是图像元素。2 {width:100%;overflow:hidden;}3 将图像添加到没有任何尺寸的页面,设置图像百分比宽度,用max-width避免失真。

四 faux列

    ///暂空//

五 高度相同的列

    设置大的底内边距,用数值相似的负外边距消除这个高度,20像素差值形成底边;容器overflow:hidden;列将在最高点被裁切。

    最后定位底部边框。

  

    

    <style>
        .wrapper{
            width:100%;
            overflow:hidden;
            position:relative;
            }
        .box{
            width:250px;
            float:left;
            margin-left:20px;
            padding-left:20px;
            padding-right:20px;
            padding-top:20px;
            padding-bottom:520px;
            margin-bottom:-500px;
            background:url(img/top.gif) no-repeat  top left ;
            display:inline;/*IE双外边距浮动*/
            }
        .bottom{
            position:absolute;
            bottom:0;
            width:290px;
            height:20px;
            margin-left:-20px;
            background:url(img/bottom.gif) no-repeat  bottom left;
            }
    </style>
</head>

<body>
<div class="wrapper">

<div class="box">
    <h2>标题</h2>
    <p>内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</p>
    <div class="bottom"></div>
</div>

<div class="box">
    <h2>标题</h2>
    <p>内容内容内容内容内内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</p>
    <div class="bottom"></div>
</div>

<div class="box">
    <h2>标题</h2>
    <p>内容内容内容内容内容内容内容内容内容</p>
    <div class="bottom"></div>
</div>
</div>

六 CSS3列

  css3 创建等高文本列:column-count;column-width;column-gap;

   可用空间小于已定义列宽时,列不会围绕,而是减少列数。例如用此属性创建三列布局,如果空间不够现实三列,就会减少到两列。

时间: 2024-10-09 16:39:37

第8章 布局的相关文章

Android的学习第六章(布局二--RelativeLayout)

今天我们来说一下Android布局中的Relativelayout布局(相对布局) 根据英译过来意思是相对布局,很容易理解,这一样布局使用的是元素与元素之间的微调做到布局的 含义:通过元素与元素之间的微调进行布局; 好处:可以进行细节上的处理 坏处:元素之间的关系过强,可能一个元素的改变其他元素的情况发生 我们看一下下面的一个代码布局案例 <!-- 第一个相对布局这里我们可以当做最大父元素 设置了宽度高度占满父元素 --> <RelativeLayout xmlns:android=&q

Android的学习第六章(布局一LinearLayout)

今天我们来说一下Android五大布局-LinearLayout布局(线性布局) 含义:线性布局,顾名思义,指的是整个Android布局中的控件摆放方式是以线性的方式摆放的, 主要作用:主要对整个界面进行基本设置使用 重要属性:android:orientation 值:horizontal 元素水平摆放  |  vertical 元素垂直摆放 看代码: <!-- 第一个线性布局, 我们可以视为html中的div,用于对于整个界面进行布局 这里面 xmlns:android和xmlns:tool

Android的学习第六章(布局一TableLayout)

今天我们来简单的说一下Android不居中的TableLayout布局(表格布局) 表格布局的意思就是将我们的布局看做为一个表格,主要用于对控件进行整齐排列 我们看一个简单的案例 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=&q

深入浅出ExtJS 第六章 布局

1 6.1 布局的用途 2 //决定把什么东西放到什么位置; 3 var vieport = new Ext.Viewport({ 4 layout:'border', //使用BorderLayout的布局方式(边界布局);可以自动检测浏览器的大小变化和自动调整布局中每个部分的大小; 5 items:[{ 6 region:'north', //指定组件的具体位置; 7 height:40, 8 html:'<h1>顶部</h1>' 9 },{ 10 region:'west',

第四章 布局管理

摘要: 涉及到布局管理中的一些函数 ---------------------------------------------------------- 1. void QWidget::setLayout ( QLayout * layout ) Sets the layout manager for this widget to layout.  //设置布局管理器为widget布局管理 If there already is a layout manager installed on th

第三十一章 布局与风格

基本原则 格式化的基本原理 格式化的借本原理指出,好的布局凸显程序的逻辑结构. 任何计算机对程序的解读 布局是关于程序结构的有用暗示. 好布局有什么用 以某种风格来写程序并不仅仅是处于美观考虑.用习惯的方式写程序有着心理因素--程序员有着强烈的意识,觉得其他程序员都会遵循这些论述规矩. 把布局当作一种信仰 布局不仅涉及美学,同时也有了逻辑问题的味道,意即对编程格式的争论听起来更像是宗教斗争,而非在讨论哲学. 良好布局的目标 准确表现代码的逻辑结构: 始终如一地表现代码的逻辑结构: 改善可读性:

前端开发工程师 - 04.页面架构 - CSS Reset &amp; 布局解决方案 &amp; 响应式 &amp; 页面优化 &amp;规范与模块化

04.页面架构 第1章--CSS Reset 第2章--布局解决方案 居中布局 多列布局 全屏布局 第3章--响应式 浏览网页使用的设备屏幕大小迥异,如何保证页面在不同设备上都正常显示呢? --  解决方法:响应式 优点:无需为不同设备编写对应的页面 --> 降低开发成本.维护成本 缺点:页面中某些部分在某些设备上会被隐藏(资源加载了,但是只是用CSS隐藏了) 为什么在手机端的页面会很小呢? 所有的移动端的页面都引入了viewport视窗 刚开始所有的元素都是加载到一个比较大的viewport视

Python 学习日志9月18日

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC"; color: #000000 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Hel

《深入理解Windows Phone 8.1 UI控件编程》

<深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的动画.掌握布局原理.列表虚拟化原理.高性能列表实现.图表编程.控件原理等. 目录如下: <深入理解Windows Phone 8 .1 UI控件编程>目录 第1章 深入解析程序界面 1.1 XAML的原理 1.1.1 XAML的概念 1.1.2 XAML页面的编译 1.1.3 动态加载XAML 1