美文网首页
css布局-基础,单列,双列,三列

css布局-基础,单列,双列,三列

作者: 愁容_骑士 | 来源:发表于2017-02-17 21:06 被阅读0次

什么是布局

现有样式

  • 文档流
  • 浮动
  • 定位

不能满足人们的需求.

人们需要:

  • 导航栏+内容
  • 导航栏+内容+广告栏
  • 从上到下、从左到右、定宽、自适应...

CSS 2 并没有提供原生支持,所以需要将一些属性组合起来,以实现布局

“DIV + CSS 布局”?

国外一般不这么叫.<div> 是一个无语义的标签,适合用来做与内容无关的事情.

只能用<div> 吗?

  • 不一定
  • 尽量使用有语义的标签

常见布局(pc)

  • 固定宽度布局

    所有的内容都在页面宽度范围内,最多使用.

    优点: 简单,每个分区的宽度都可以固定.
    缺点:浏览器宽度小于内容宽度时,会出现滚动条.

  • 弹性(fluid)布局

无固定宽度.一般需要百分比来适配
优点:页面好看.
缺点:无论设计还是实现,都比较复杂,要考虑多种情况

  • 响应式布局 —— 多终端(PC、Pad、Phone)

常见具体布局

  1. 单列布局

实现:
#定宽
width: 1000px; 或 max-width: 1000px;
#水平居中
margin-left: auto; margin-right: auto; 

max-width 和 width的区别:

  • 前者在浏览器宽度小于max-width情况下,显示宽度为浏览器宽度.
  • 后者在浏览器宽度小于width情况下,宽度不变,下方出现滚动条.

优化:
省标签,便于控制局部 范例

通栏

给通栏加背景色 范例

通栏优化:
给 body 设置min-width 去掉滚动背景色 bug

内部元素水平居中
.parent{text-align:center;}
.child{display: inline-block;}

如果child高度不一致,需要设置 vertical-align:top实现顶部对齐.

IE 6 不支持 inline-block :

.child{*display: inline; *zoom: 1;}

bfc可以让元素呈现块级特性,即使是行内元素
使用zoom1可以触发bfc.设置height,width,
加*表示ie浏览器识别

范例

  1. 双列布局

一列固定宽度,另外一列自适应宽度


如何实现

浮动元素 + 普通元素margin 范例

<style>
    #content:after{
      content: '';
      display: block;
      clear: both;
    }
    .aside{
      width: 200px;
      height: 500px;
      background: yellow;
      float: left;
    }
    .main{
      margin-left: 210px;
      height: 400px;
      background: red;
    }
    
    #footer{
      background: #ccc;
    }
  
  </style>
  <div id="content">
    <div class="aside">aside</div>
    <div class="main">content</div>
  </div>
  <div id="footer">footer</div>

如果侧边栏在右边:

.aside{float: right;}
.main{ margin-right: 210px;}

注意:考虑到浏览器的渲染顺序,

  <div id="content">
    <div class="aside">aside</div>
    <div class="main">content</div>
  </div>`

aside和main顺序不可更改.

  1. 三列布局

两侧两列固定宽度,中间列自适应宽度


如何实现

范例

    #content:after{
      content: '';
      display: block;
      clear: both;
    }
    .menu{
      width: 100px;
      height: 500px;
      background: pink;
      float: left;
    }
    .aside{
      width: 200px;
      height: 500px;
      background: yellow;
      float: right;
    }
    .main{
      margin-left: 110px; /*为什么要加margin-left*/
      margin-right: 210px;
      height: 400px;
      background: red;
    }
    
    #footer{
      background: #ccc;
    }

  <div id="content">
    <!-- 注意main的位置 -->
    <div class="menu">aside</div>
    <div class="aside">aside</div>
    <div class="main">content</div>
  </div>
  <div id="footer">footer</div>

相关文章

  • 1-11.CSS布局

    单列 单列通栏 双列布局 双列在右布局 一个三栏布局 圣杯布局 双飞翼布局 实现页面

  • CSS布局测试

    单列布局单列布局 带导航条的单列实现:代码 双列布局,侧边栏固定,主栏目自适应双列布局 三列布局:左右是固定宽度,...

  • css布局-基础,单列,双列,三列

    什么是布局 现有样式 文档流 浮动 定位 不能满足人们的需求. 人们需要: 导航栏+内容 导航栏+内容+广告栏 从...

  • 总结随笔

    网页布局 - 单列布局 - 双列布局 - 三列布局 - 混合布局 单列布局 其中单列布局最为简单,一般应用于搜索引...

  • 常见的CSS布局

    1.单列布局:http://js.jirengu.com/casulimege/3/2.双列布局3.普通三列布局:...

  • CSS布局

    HTML CSS + DIV实现整体布局必备知识利用HTML和CSS实现常见的布局 单列布局 css 实现竖直居中...

  • Css布局练习

    双列布局,某一列自适应宽度。 若我们想做下图所示的Css布局: Css:body{ width:500px; ma...

  • css单列布局

    前提知识: margin属性: 单列布局1 将全屏平均分成上中下三部分,宽度为浏览器窗口宽度。效果: 代码: ht...

  • Java基础之常用集合

    集合分为单列集合(Collection)和双列集合(Map),先说单列集合Collection Collecti...

  • css-布局

    css基础的知识看完后,我们就要学习如何布局,这里详细的总结一下最近了解的布局方式。 一 单列水平居中 1.子元素...

网友评论

      本文标题:css布局-基础,单列,双列,三列

      本文链接:https://www.haomeiwen.com/subject/yrilwttx.html