深度理解div+css布局嵌套盒子

1. 网页布局概述

  网页布局的概念是把即将出现在网页中的所有元素进行定位,而CSS网页排版技术有别于传统的网页排版方法,它将页面首先在整体上使用<div>标记进行分块,然后对每个快进行CSS定位以及设置显示效果,最后在每个块中添加相应的内容。利用CSS排版方法更容易地控制页面每个元素的效果,更新也更容易,甚至页面的拓扑结构也可以通过修改相应的CSS属性来重新定位。

 2. 盒子模型

  盒子模型是CSS控制页面元素的一个重要概念,只有掌握了盒子模型,才能让CSS很好地控制页面上每一个元素,达到我们想要的任何效果。

  在盒子模型中,所有页面中的元素都被看做是一个个盒子,它们占据一定的页面空间,在其中放着特定的内容。我们可以通过调整盒子的边框和间距等参数来调节盒子的位置以及大小。页面是由大大小小许多盒子组成的,这些盒子互相之间彼此影响,因此,我们既需要理解每个盒子内部的机构,也需要理解盒子直接的关系以及互相的影响。

3. 盒子模型的组成

  在网页布局中,为了使网页中各个元素能合理地进行组织,通过研究总结出了一套完整的、有效的原则和规范,这就是盒子模型。盒子模型由content(内容)、border(边框)、padding(内边距)、margin(外边距)共4个部分组成。如下图:

 一个盒子实际在页面上占据的空间是由“内容+内边距+外边距+边框”组成的,可以通过设定盒子的border、padding和margin来实现各种各样的排版效果。另外,也不是用<div>定义的网页元素才是盒子,所有的网页元素都可以看做是盒子。网页上的表格、图片、文字等,从盒子模型的角度就是大大小小的盒子排列或嵌套在一起的。

 4.盒子border属性

  盒子border也就是盒子的边框,它包围了盒子padding和内容,形成盒子的边界。border会占据空间,所以在排版计算时一定要考虑border的影响。

  border的属性主要有3个,分别是颜色(color)、宽度(width)、样式(style)。设置border就是对这3个属性进行设置,它们配合好才能达到良好的效果。在使用CSS设置盒子的边框时,可以分别采用border-color、border-width、border-style进行设置。

 border-color:指定边框的颜色,设置方法和color属性一样,可以可以采用颜色名称和十六进制两种方式设置。

 border-width:指定边框的粗细程度

 border-style:指定边框的类型。可以设置none、hidden、dotted、dashed、solid、double等值。

在CSS中设置边框的属性一般有以下4种简写方式。

1.对不同的边框设置不同的属性值

  如果给出两个属性值,那么前者表示上下边框的属性,后者表示左右边框的属性;如果给出3个属性值,那么前者表示上边框的属性,中间数值表示左右边框的属性,后者表示下边框的属性;如果给出4个属性值,那么依次表示上右下左边框的属性,呈顺时针方向排序。例如以下代码:

border-color:red blue;

border-style:dotted solid double dashed;

2.在一行中同时设置边框的宽度、颜色和样式

border:4px red solid;

border-top:2px blue double;

3.对一条边框设置与其他边框的属性

border:4px red solid;

border-top:2px blue double;

这样做的好处是避免使用4条CSS规则分别对盒子的4个边框设置样式,减少了工作量。

4.只设置一条边框的某一属性

border-top-color:blue;

5.盒子padding属性

  盒子padding是盒子的内边距,它一边是盒子内容一边是盒子的边界,即边框与内容之间的空白区域就是内边距padding。

  padding也可以设置4个属性,效果如下:

  (1)设置1个属性值:表示上下左右4个内边距的值。

  (2)设置2个属性值:前者表示上下内边距的值,后者表示左右内边距的值。

  (3)设置3个属性值:前者表示上内边距的值,中间数值表示左右内边距的值,后者表示下内边距的值。

  (4)设置4个属性值:依次表示上右下左内边距的值,呈顺时针方向排序。

  如果需要单独设置某一个方向的内边距,可以使用padding-top、padding-right、padding-bottom、padding-left来设置。

6.盒子margin属性

   盒子margin是盒子的外边距,它碰不到盒子的边界,指的是页面上元素和元素直接的距离。margin和padding的设置是一样的,也可以设置不同的属性个数代表相应的含义。

7. 盒子的浮动与定位(很重要)

  CSS规范首先确定了一种标准的排版方式,可以保证设置的简单化,各种网页元素都按照这种标准的方式进行布局,这就是所谓的“标准流”方式。但仅有标准流方式还不够灵活,是无法实现所有的排版方式的,所以CSS规范还给出了其他的布局方法,如“浮动”属性和“定位”属性等。

   标准流

“标准文件流”简称为“标准流”,是指在不使用其他与排列和定位相关的特殊CSS规则时各种页面元素默认的排列规则。页面元素可以分为两类:

 块级元素(block element):总是以一个块的形式表现出来,并和同级的兄弟依次垂直排列。比如<li>标签,总不会排在同一行,而是和相邻的<li>垂直排列,还有最常用的块级元素div。

 行内元素(inline element):相邻元素之间横向排列,到最右端自动折行。比如<a>标签,<p>标签,<span>标签等。

  标准流就是CSS默认的块级元素和行内元素的排列方式。在一个页面中如果没有出现特殊的排列方式,那么所有的页面元素将以标准流的方式排列,即一个个盒子形成一个序列,同级别的盒子依次在父级盒子中按照块级元素或行内元素的排列方式进行排列,同级父级盒子又依次在它们的父级盒子中排列,以此类推,整个页面如同河流和它的支流,所以称为“标准流”。

*行内元素与块级元素有什么不同? 

区别一:

块级:块级元素会独占一行,默认情况下宽度自动填满其父元素宽度

行内:行内元素不会独占一行,相邻的行内元素会排在同一行。其宽度随内容的变化而变化。

区别二:

块级:块级元素可以设置宽高

行内:行内元素不可以设置宽高

区别三:

块级:块级元素可以设置margin,padding

行内:行内元素水平方向的margin-left; margin-right; padding-left; padding-right;可以生效。但是竖直方向的margin-bottom; margin-top; padding-top; padding-bottom;却不能生效。

区别四:

块级:display:block;

行内display:inline;

可以通过修改display属性来切换块级元素和行内元素。

8. 盒子的定位原则

  掌握盒子在标准流中定位原则需要对margin有很深刻的理解,因为padding只在盒子内部,不会影响到盒子的外部,margin是一个盒子的外边距,它就直接影响与其他盒子直接的关系。

行内元素之间的水平定位:行级元素的水平margin是相邻margin相加的结果;

块级元素之间的垂直定位:块级元素的垂直margin是取相邻margin的最大值

嵌套盒子之间的定位:

9. 盒子的浮动float

  “浮动设置”是指CSS中的float属性的设置,默认值为none,即在默认情况下浮动效果是关闭的,采用标准流方式。浮动的盒子脱离标准流,其宽度不再自动伸展,将根据盒子里面放的内容来决定其宽度。标准流中的其他盒子将顶到浮动盒子的位置。

float属性基本释义:

  该属性的值指出了对象是否浮动以及如何浮动。当该属性不等于none引起对象浮动时,对象将被视作块对象,即display:block;

float属性的参数:

 none:对象不浮动

 left:对象浮在左边

 right:对象浮在右边

如何使后续的盒子不受前面浮动盒子的影响:clear:left/right/both

10.盒子的定位

CSS中的定位:通过在CSS中的position属性,将盒子定位到指定的地方。

position属性定位方式如下:

(1)static:静态定位,是默认值。

(2)relative:相对定位,盒子相对自己原来的位置,通过指定偏移量(水平方向偏移量:lefth和right属性值;垂直偏移量:top和bottom属性值),到达新位置。相对定位对父盒子及兄弟盒子没有影响。

(3)absolute:绝对定位,盒子以最近的一个已经定位的祖先元素为基准进行偏移,如果没有已经定位的祖先,则以浏览器为基准(已经定位是指已经设置position属性)。

(4)fixed:固定定位,它和绝对定位类似,只是以浏览器窗口为基准进行定位,也就是当拖动浏览器窗口的滚动条时,依然保持对象位置不变。

11. div标签与span标签

  CSS排版中经常用到<div>和<span>标签,利用这两个标签,CSS可以很方便地实现各种页面效果。

  <div>和<span>标签一样,都作为容器被广泛应用于html语言中,它们都可以容纳各种各样html元素,从而可以将网页划分成多个不同的独立区块。这两个标签的区别在于:<div>是一个块级元素,它会自动换行,而<span>是一个行内元素,它的前后不会自动换行。<span>没有结构意义,纯粹是应用CSS样式,当其他行内元素都不是适合的时候,就可以使用<span>元素。

12. DIV+CSS布局网页           

  DIV+CSS布局,将页面在整体上使用<div>分块,然后使用CSS对各个分块进行布局,最后在各个块中添加相应的内容。也就是说DIV容器装的是内容,而CSS是作为装饰内容的样式。

  典型的布局版式:比如固定宽度且居中的版式、左中右版式。

  DIV+CSS布局与表格布局的比较:

  通过<table>各个单元格可以轻松划分各个模块,制作简单容易;CSS通过div来划分模块,同时需要调整各模块之间的位置距离及排列。

  表格布局比DIV+CSS布局维护要困难。表格布局代码与内容混合,可读性差,网页文件量大,浏览器解析慢。

时间: 2024-08-02 02:44:40

深度理解div+css布局嵌套盒子的相关文章

&lt;转载&gt;div+css布局教程之div+css常见布局结构定义

在使用div+css布局时,首先应该根据网页内容进行结构设计,仔细分析和规划你的页面结构,你可能得到类似这样的几块: 页面层容器.页面头部.标志和站点名称.站点导航(主菜单).主页面内容.子菜单.搜索框.页脚(版权和有关法律声明). 通常采用DIV元素来将这些结构定义出来,类似这样: <div id="Container"></div> 页面层容器 <div id="header"></div> 页面头部 <di

div css布局兼容性问题

在strict mode中:width是内容宽度 ,也就是说,元素真正的宽度 = margin-left + border-left-width + padding-left + width + padding-right + border-right-width + margin-right; 在quirks mode中:width则是元素的实际宽度 ,内容宽度 = width – (margin-left + margin-right + padding-left + padding-rig

(转)Div+CSS布局入门

在网页制作中,有许多的术语,例如:CSS.HTML.DHTML.XHTML等等.在下面的文章中我们将会用到一些有关于HTML的基本知识,而在你学习这篇入门教程之前,请确定你已经具有了一定的HTML基础.下面我们就开始一步一步使用DIV+CSS进行网页布局设计吧. 所有的设计第一步就是构思,构思好了,一般来说还需要用PhotoShop或FireWorks(以下简称PS或FW)等图片处理软件将需要制作的界面布局简单的构画出来,以下是我构思好的界面布局图. 下面,我们需要根据构思图来规划一下页面的布局

DIV+CSS两种盒子模型(W3C盒子与IE盒子)

在辨析两种盒子模型之前,先简单说明一下什么叫盒子模型. 原理: 先说说我们在网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin), CSS盒子模式都具备这些属性. 这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也就是能装东西的一种箱子,也具有这些属性,所以叫它盒子模式. 特点: 每个盒子都有:边界.边框.填充.内容四个属性: 每个属性都包括四个部分:上.右.下.左:这四部分可同时设置,也可分别设置

div+css 布局技巧总计

一.css 样式 1.float 首先需要了解块级元素(block element).每个块级元素都默认占用一行,在同一行只能添加一个块元素(float 除外).块级元素一般可以嵌套块级元素或者行内元素,如使用 div 布局. float 一般用于 div 布局的情形下,浮动的 div 可以向左或者向右移动,直到它的外边缘碰到其父级元素的框或者另外一个浮动的 div 边框为止.个人理解为:float 将需要换行的块级元素悬浮,使得其可以在同一行中显示. 在 css 中可以通过float: lef

现在主流网站为什么都用div+css布局而不是用table

由于刚刚接触前端,一直觉得table布局在代码上看起来比div+css更整洁,div+css布局的页面,一堆的<div><div><div>...</div></div></div>看起来都让人犯密集恐惧症,那么为什么现在的主流网站还都乐此不疲呢?为什么div+css反而成了一种主流布局方式呢?一直对此不解.这篇文章好像是解决了我的问题,先摘录过来,以便查阅. 以下内容摘自:http://www.divcss5.com/wenji/w

div+css 布局经验 - 最简单的 = 最不变形的(原创技巧)

站酷几年了 一直饱受其恩泽 尤为感激 一直想奉献些什么 但是苦于水平 苦于奔波 今天静下心来 为大家奉献下 自己的div+css 经验 ,以下观点只代表 深海个人立场 希望为初学者提供一条"捷径". 希望广大网友提出宝贵意见 同时不希望将初学的您 带入走火入魔的状态! 1 :css (cascading style sheet): 初学者可以下载一本css 2.0 手册 大概48小时的时间可以看完 试完.至于样式手册上的单词(属性和取值) 多久能背完取决你的努力和英语基础,请注意 无论

div css布局中CSS图片大小自动按比例等比例缩小图片不变形解决技巧(转)

在DIV CSS布局中对于图片列表或图片排版时,图片不是固定宽度高度大小,但图片占位是固定宽度高度,这个时候如果使用CSS固定死图片大小(宽度 高度),这个时候如果图片相对于这个位置不是等比例大小,那么这张图片就会变形,让图片变的不清晰,这个时候想让图片不变形又按比例缩放,如何解决?CSS图片缩小不变形,图片自动缩小,图片按比例等比例缩小不变形解决. 解决方法有两种: 第一种,让图片和布局宽度高度成等比例,这样CSS设置死宽度和高度,图片也是等比例缩小,图片也不会变形. 比如淘宝,要求店铺主上传

SEO为什么要求网页设计师用DIV+CSS布局网页?

通常情况下,SEOer非常喜欢把一个网站做到最细节,在网页设计方面,有时与设计师沟通时,通常会问到:SEO为什么要求网页设计师用DIV+CSS布局网页?有什么好处之类的问题,其实SEO们考虑的问题就是如何让网页的内容更好的让搜索引擎抓取网页的内容,更容易评估网页内容的质量,这样有利于排名.这是SEO们的最基本的目的,当然CSS+DIV的好处并不局限于此,以下为详细的分析: SEO主要就是通过对网站的结构,标签,排版等各方面的优化,使Google等搜索引擎更容易搜索网站的内容,并且让网站的各个网页