什么是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. Codevs 1026 逃跑的拉尔夫

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

  2. 标准C程序设计七---15

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  3. 系统进程的Watchdog

    编写者:李文栋 /rayleeya http://rayleeya.iteye.com/blog/1963408 3.1 Watchdog简介 对于像笔者这样没玩过硬件的纯软程序员来说,第一次看到这个 ...

  4. C++ 使用成员初始化列表的一个小坑

    注意在成员列表中初始化的顺序并不是列表顺序 而是: 在类中声明的顺序! EventLoop::EventLoop() :looping(false), quit(false),_tid(curThre ...

  5. 提高google网站访问速度

    修改:C:\Windows\System32\drivers\etc\hosts文件 # google websites.203.208.46.180 ssl.gstatic.com203.208.4 ...

  6. 多个Nginx如何实现集群(没具体方案,只是初步探究)

    场景: Nginx+Web服务器可以实现负载均衡,但是一台Nginx也是有限的,如果并非量高的话,在他的上层如何实现负载均衡. 如果是DNS或者CDN的话,建多个机房,势必有多个机房数据同步的问题. ...

  7. go语言学习之路五:Go语言内存分配机制make&new

    Go有两种分配内存的机制,规则很简单,下面来简单介绍一下.1.new函数New()函数可以给一个值类型的数据分配内存(不知道什么是值类型请前往切片那一部分),调用成功后返回一个初始化的内存块指针,同时 ...

  8. js创建post请求

    /**js提交post请求:隐藏请求参数**/function postDetail(URL, PARAMTERS) { //创建form表单 var temp_form = document.cre ...

  9. 如何通过SQL注入获取服务器本地文件

    写在前面的话 SQL注入可以称得上是最臭名昭著的安全漏洞了,而SQL注入漏洞也已经给整个网络世界造成了巨大的破坏.针对SQL漏洞,研究人员也已经开发出了多种不同的利用技术来实施攻击,包括非法访问存储在 ...

  10. 小程序 - Template

    关于模板,参见:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/template.html 引入模块 <import ...