CSS3为CSS技术的升级版本、最新版本。

就CSS而言,它是一个模块,是一个庞大而又复杂的模块,但是在CSS3中,将这一个庞大的模块分解为一个个容易理解的同时又很精简的小模块,同时CSS3中又添加了一些新的模块,所以CSS3朝着模块化的方向发展。

CSS3中比较重要的模块有:选择器、盒子模型、背景和边框、文字特效、2D/3D转换、动画、多列布局、用户界面。

CSS3的选择器常用的和CSS选择器差不多。

CSS3 盒子模型

盒子模型是CSS3很重要的一个模型,它是指元素以何种方式显示以及元素间如何交互。

一个盒子是由元素的内容、内边距、边框、外边距构成的,所以在浏览器上看到的每一个元素都可以理解为一个盒子。多个盒子通过不同的方式排列(上下、并列、嵌套等)后就形成了我们看到的网页。

盒子组成结构图:

类似于CSS的框,有图可以看出,一个盒子的宽度=左右外边距+左右边框+左右内边距+内容宽度。如果两个盒子是嵌套的,那么两个盒子(盒子B嵌套在盒子A中)边框之间的举起为A的内边距+B的外边距。

盒子模型中实实在在我们可以看到的有边框、元素。内边距和外边距都是虚的,我们只能看到它们对元素的影响,所以盒子模型中只能定义两类颜色:边框和背景颜色。

盒子模型中可以定义三类距离:边框值、外边距值、内边距值,从而在一定程度上修饰元素。

注:

  • 大部分元素的盒子属性(margin,padding)默认都为0。
  • 有部分元素的盒子属性(margin,padding)默认值不为0,所以有必要时应先定义这些属性为0.
  • input元素的的边框属性定义为0一般是为了美化输入框和按钮。

我们可以通过盒子模型简单的美化一下(应该比默认情况下的要好看一点吧)

同样,我们也可以对表格、图片等元素的边框等定义不同的样式。

对一个盒子模型,样式定义好后就要考虑放哪了?所以就要对盒子进行定位。

盒子的定位有三种形式:

  1. 在普通流下的定位

    • html元素默认的定位方式
    • 行内元素在同一行内横向排列
    • 块级元素则是竖向排列
  2. 在浮动属性下的定位
  3. 在定位属性的定位

注:盒子的默认定位是普通流下的定位。

如果我们不给元素加边框(如下图左)。但是当加上元素边框时,就变成了下面的右图了,看起来很拥挤,当某个元素有背景色时,就会看出元素重叠了。

  

所以适当的调整元素的边框、外边距、内边距,可以使各个元素之间的布局更合理。

还需要注意的是,有时我们定义了元素的边框、外边距、内边距,也会造成元素之间的重叠。

这时我们可以使用display属性了,这个属性可以控制元素是以行元素显示还是块元素显示或者不显示。

display属性

属性 特点
block
  • 总是在新行上开始。
  • 高度,行高以及顶和底边距都可控制。
  • 宽度缺省是它的容器的100%,除非用width设定一个宽度。
inline
  • 和其他元素都在一行上。
  • 高,行高及顶和底边距不可改变。
  • 宽度就是它的文字或图片的宽度,不可改变。
none
  • 元素将不会被显示,也不会占据文档中的位置。
  • 类似于visibility: hidden。
  • 主要用于下拉菜单、tab面板等需要隐藏的地方。
……………………… …………………………………

需要定义display属性的地方:

  • 让一个行内元素从新的一行开始。
  • 让一个块元素和其他元素保持在一行。
  • 控制行元素的宽度(例如垂直列表、导航栏等)。
  • ……

我们定义多个行元素时,它们位于同一行:

当我们给这些行元素样式定义中加上display: block时,它们就会按照块元素的显示方式显示:

CSS自学笔记(10):CSS3盒子模型的更多相关文章

  1. CSS学习篇核心之——盒子模型

    概述 关于CSS的一些基础知识我们在前面文章中已经有所了解,这篇文章我们主要来学习下CSS中的核心知识盒子模型的知识. 盒子模型 元素框的最内部分是实际的内容(element),直接包围内容的是内边距 ...

  2. CSS的W3C标准的盒子模型和低版本IE浏览器的盒子模型

    CSS中盒子模型的组成由内容区(content).内边距(padding).边框(border).外边距(margin)组成.内边距可细分为 padding-top.padding-right.pad ...

  3. CSS设计指南之理解盒子模型

    原文:CSS设计指南之理解盒子模型 一.理解盒模型 每一个元素都会在页面上生成一个盒子.因此,HTML页面实际上是由一堆盒子组成的.默认情况下,每个盒子的边框不可见,背景也是透明的,所以我们不能直接看 ...

  4. CSS3盒子模型

    web前端必须了解的CSS3盒子模型 1.需要了解的属性以及属性值 display:box或者display:inline-box box-orient:horizontal | vertical ( ...

  5. JAVA自学笔记10

    JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口 ...

  6. Css3盒子模型-css学习之旅(5)

    主要内容: 盒子模型内边距,外边距,边框,外边距合并 主要包括:margin(外边距)padding(内边距) border(边框)centent(内容) 内边距:padding,paddinglef ...

  7. 【转】CSS(10)盒子模型

    CSS中, Box Model叫盒子模型(或框模型),Box Model规定了元素框处理元素内容(element content).内边距(padding).边框(border) 和 外边距(marg ...

  8. css笔记17:盒子模型加强版的案例

    1.先看看经典案例效果图,导出思路: 分析:思路 基本结构 <div> <ul> <li><img src=""/> </li ...

  9. css笔记16:盒子模型的入门案例

    1.案例一: 效果图如下: (1)box1.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...

随机推荐

  1. mysql 建表、查表、查表结构

    进入数据库: mysql> use sunshine_blog;输出: Database changed 查数据库表: mysql> show tables;输出: +---------- ...

  2. UVa230 Borrowers (STL)

     Borrowers  I mean your borrowers of books - those mutilators of collections, spoilers of the symmet ...

  3. Unix主机syslog配置

    将下面的内容附加到/etc/syslog.conf文件中(注意*和@之间是有空格的): *.* @ip 修改/etc/services文件中的syslog服务的端口号为上面提到的Syslog监听端口. ...

  4. 处理编译错误"0" is an invalid value for the "DebugInformation" parameter of the "DCC"

    在编译“MustangpeakCommonLib-master.zip”时,遇到了这个问题.网上搜了一下: 处理编译错误"0" is an invalid value for the "DebugIn ...

  5. (五)boost库之随机数random

    (五)boost库之随机数random boost库为我们提供了许多的日常随机数生成器: 1.uniform_smallint:在小整数域内的均匀分布 2.uniform_int:在整数域上的均匀分布 ...

  6. C语言的本质(17)——回调函数

    如果函数的参数是一个函数指针,我们可以通过这个函数指针传递一个函数的地址给另外一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数(Callback Function).回调函数不是由 ...

  7. 如何确定Ubuntu下是否对某个CVE打了补丁

        前些日子在月赛中,拿到了一台Ubuntu14.04的服务器,但并不是root权限,需要提权.我Google了一下,找到了CVE-2015-1318,CVE-2015-1328,CVE-2015 ...

  8. Erp第三章:管理问题与MRP、MRP2、ERP

    1企业管理者经常头疼问题:一.“产供销”严重脱节 .       二.财务数据和业务数据对不上号 2.MRP(物料需求计划,Material Requiremengts Planning),MRP2( ...

  9. Javascript 【JSON对象】

    var box = JSON.parse(json);     //将字符串解析为JSON var json = JSON.stringify(box);    //讲JSON转换为字符串 var b ...

  10. 异步消息处理机制——Handler用法

    Handler 1. Message Messsge是线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程之间交换数据,Message的what字段,除此之外还可以使用arg1和arg2字段 ...