什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充(padding)、边框(border)、边界(margin), CSS盒子模式都具备这些属性。

  这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。

  用div来定义语义结构

  现在我要给大家演示的是一个典型的版面分栏结构,即页头、导航栏、内容、版权(如下图)

  其结构代码如下:

  <div id="header"></div>

  <div id="nav"></div>

  <div id="content"></div>

  <div id="footer"></div>

  上面我们定义了四个盒子,按照我们想要的结果是,我们要让这些盒子等宽,并从下到下整齐排列,然后在整个页面中居中对齐,为了方便控制,我们再把这四个盒子装进一个更大的盒子,这个盒子就是BODY,这样代码就变成:

  <body>

  <div id="header"></div>

  <div id="nav"></div>

  <div id="content"></div>

  <div id="footer"></div>

  </body>

  最外边的大盒子(装着小盒子的大盒子)我们要让它在页面居中,并重定义其宽度为760像素,同时加上边框,那么它的样式是:

  body {

  font-family: Arial, Helvetica, sans-serif;

  font-size: 12px;

  margin: 0px auto;

  height: auto;

  width: 760px;

  border: 1px solid #006633;

  }

  页头为了简单起见,我们这里只要让它整个区块应用一幅背景图就行了,并在其下边界设计定一定间隙,目的是让页头的图像不要和下面要做的导航栏连在一起,这样也是为了美观。其样式代码为:

  #header {

  height: 100px;

  width: 760px;

  background-image: url(headPic.gif);

  background-repeat: no-repeat;

  margin:0px 0px 3px 0px;

  }

  导航栏我做成像一个个小按钮,鼠标移上去会改变按钮背景色和字体色,那么这些小小的按钮我们又可以理解为小盒子,如此一来这是一个盒子嵌套问题了,样式代码如下:

  #nav {

  height: 25px;

  width: 760px;

  font-size: 14px;

  list-style-type: none;

  }

  #nav li {

  float:left;

  }

  #nav li a{

  color:#000000;

  text-decoration:none;

  padding-top:4px;

  display:block;

  width:97px;

  height:22px;

  text-align:center;

  background-color: #009966;

  margin-left:2px;

  }

  #nav li a:hover{

  background-color:#006633;

  color:#FFFFFF;

  }

  内容部分主要放入文章内容,有标题和段落,标题加粗,为了规范化,我用H标签,段落要自动实现首行缩进2个字,同时所有内容看起来要和外层大盒子边框有一定距离,这里用填充。内容区块样式代码为:

  #content {

  height:auto;

  width: 740px;

  line-height: 1.5em;

  padding: 10px;

  }

  #content p {

  text-indent: 2em;

  }

  #content h3 {

  font-size: 16px;

  margin: 10px;

  版权栏,给它加个背景,与页头相映,里面文字要自动居中对齐,有多行内容时,行间距合适,这里的链接样式也可以单独指定,我这里就不做了。其样式代码如下:

  #footer {

  height: 50px;

  width: 740px;

  line-height: 2em;

  text-align: center;

  background-color: #009966;

  padding: 10px;

  }

  最后回到样式开头大家会看到这样的样式代码:

  * {

  margin: 0px;

  padding: 0px;

  }

  这是用了通配符初始化各标签边界和填充,(因为有部分标签默认会有一定的边界,如Form标签)那么接下来就不用对每个标签再加以这样的控制,这可以在一定程度上简化代码。最终完成全部样式代码是这样的:

  <style type="text/css">

  <!--

  * {

  margin: 0px;

  padding: 0px;

  }

  body {

  font-family: Arial, Helvetica, sans-serif;

  font-size: 12px;

  margin: 0px auto;

  height: auto;

  width: 760px;

  border: 1px solid #006633;

  }

  #header {

  height: 100px;

  width: 760px;

  background-image: url(headPic.gif);

  background-repeat: no-repeat;

  margin:0px 0px 3px 0px;

  }

  #nav {

  height: 25px;

  width: 760px;

  font-size: 14px;

  list-style-type: none;

  }

  #nav li {

  float:left;

  }

  #nav li a{

  color:#000000;

  text-decoration:none;

  padding-top:4px;

  display:block;

  width:97px;

  height:22px;

  text-align:center;

  background-color: #009966;

  margin-left:2px;

  }

  #nav li a:hover{

  background-color:#006633;

  color:#FFFFFF;

  }

  #content {

  height:auto;

  width: 740px;

  line-height: 1.5em;

  padding: 10px;

  }

  #content p {

  text-indent: 2em;

  }

  #content h3 {

  font-size: 16px;

  margin: 10px;

  }

  #footer {

  height: 50px;

  width: 740px;

  line-height: 2em;

  text-align: center;

  background-color: #009966;

  padding: 10px;

  }

  -->

  </style>

  结构代码是这样的:

  <body>

  <div id="header"></div>

  <ul id="nav">

  <li><a href="#">首 页</a></li>

  <li><a href="#">文 章</a></li>

  <li><a href="#">相册</a></li>

  <li><a href="#">Blog</a></li>

  <li><a href="#">论 坛</a></li>

  <li><a href="#">帮助</a></li>

  </ul>

  <div id="content">

  <h3>前言</h3>

  <p>第一段内容</p>

  <h3>理解CSS盒子模式</h3>

  <p>第二段内容</p>

  </div>

  <div id="footer">

  <p>关于华升 | 广告服务 | 华升招聘 | 客服中心 | Q Q留言 | 网站管理 | 会员登录 | 购物车</p><p>Copyright ?2006 - 2008 Tang Guohui. All Rights Reserved</p>

  </div>

  </body>

---更多SEO知识博客请浏览:雨田SEOER

css盒子模型详解一的更多相关文章

  1. CSS盒模型详解(图文教程)

    本文最初发表于博客园,并在GitHub上持续更新.以下是正文. 盒子模型 前言 盒子模型,英文即box model.无论是div.span.还是a都是盒子. 但是,图片.表单元素一律看作是文本,它们并 ...

  2. CSS中的盒子模型详解

    很多人对盒子模型搞晕头了,下面通过一个简单的代码来分析盒子模型的结构! 为了方便方便观看!在第一个div中画了一个表格,并将其尺寸设置成与div内容大小一样!且设置body的margin和paddin ...

  3. 2017年总结的前端文章——CSS盒模型详解

    CSS的盒模型是CSS的基础,同时也是难点,这个问题经常在面试中会被问到,属于经典问题了.很多博客里讲得也很模糊不清,于是,我在这里重新整理一下. 可以认为每个html标签都是一个方块,然后这个方块又 ...

  4. web@css盒模型详解

    Margin(外边距) - 清除边框外的区域,外边距是透明的./*上 右 下 左*/ 上 左右 下 /*上下 左右*/ 四方 /Border(边框) - 围绕在内边距和内容外的边框.      可以用 ...

  5. CSS盒子模型之详解

    前言:        盒子模型是css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局.一.css盒子模型概念    CSS盒子模型 又称框模型 (Box Model) ,包含了元 ...

  6. css 06-CSS盒模型详解

    06-CSS盒模型详解 #盒子模型 #前言 盒子模型,英文即box model.无论是div.span.还是a都是盒子. 但是,图片.表单元素一律看作是文本,它们并不是盒子.这个很好理解,比如说,一张 ...

  7. ASP.NET Core的配置(2):配置模型详解

    在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvi ...

  8. 深入理解CSS盒子模型

    在CSS中浮动.定位和盒子模型,都是很核心的东西,其中盒子模型是CSS很重要基石之一,感觉还是很有必要把CSS盒子模型相关知识更新一下...... CSS盒子模型<BoxModel>示意图 ...

  9. [转]CSS hack大全&详解

    转自:CSS hack大全&详解 1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的, ...

随机推荐

  1. OTOCI(bzoj 1180)

    Description 给出n个结点以及每个点初始时对应的权值wi.起始时点与点之间没有连边.有3类操作: 1.bridge A B:询问结点A与结点B是否连通.如果是则输出“no”.否则输出“yes ...

  2. ElasticSearch索引自定义类型

    ES可以自动检测字段并设置映射类型.如果设置的索引类型不是我们所需要的,我们可以自行定义. Rest API设置自定义索引 首先通过ES自动映射一个IP地址的字段的类型: <pre name=& ...

  3. Codevs 1026 逃跑的拉尔夫

     时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆车,但他没想到的是那辆车属于警察局,并且 ...

  4. Scrapy学习-9-FromRequest

    用FromRequest模拟登陆知乎网站 实例 默认登陆成功以后的请求都会带上cookie # -*- coding: utf-8 -*- import re import json import d ...

  5. cannot find package "golang.org/x/crypto/pbkdf2" in any of:

    cannot find package "golang.org/x/crypto/pbkdf2" in any of: /Users/zhou/go/src/mos.market/ ...

  6. 死磕 java同步系列之自己动手写一个锁Lock

    问题 (1)自己动手写一个锁需要哪些知识? (2)自己动手写一个锁到底有多简单? (3)自己能不能写出来一个完美的锁? 简介 本篇文章的目标一是自己动手写一个锁,这个锁的功能很简单,能进行正常的加锁. ...

  7. react 起手式

    http://blog.csdn.net/zhouzhiande/article/details/52349344 http://blog.csdn.net/zhouzhiande/article/d ...

  8. [转]文件IO详解(二)---文件描述符(fd)和inode号的关系

    原文:https://www.cnblogs.com/frank-yxs/p/5925563.html 文件IO详解(二)---文件描述符(fd)和inode号的关系 ---------------- ...

  9. Maven实现Web应用集成測试自己主动化 -- 測试自己主动化(WebTest Maven Plugin)

    近期在appfuse看到使用webtest-maven-plugin实现Web应用的集成測试,研究了下.感觉很不错.对于Web应用自己主动构建很有帮助,在性能測试之前能够保证Web应用的基本功能工作正 ...

  10. Mac 下配置 Cocos2d-x 3-x android 的环境

    本人初学Cocos2d 3-x,环境配置,搭建android环境弄了好长时间,走了不少弯路,翻阅了好多人的博客和文档,包括官方文档讲的似乎有些似懂非懂,好多依然是旧的版本,所以把我的整个过程梳理一下. ...