css-盒子模型

一、padding(内边距)
    元素的内边距在边框和内容区之间。控制该区域最简单的属性是 padding 属性。CSS padding 属性定义元素边框与元素内容之间的空白区域。
    padding-left/right/top/bottom    左内边距/右内边距/上内边距/下内边距
    例如:h1 {
          padding-top: 10px;
          padding-right: 0.25em;
          padding-bottom: 2ex;
          padding-left: 20%;
          }
    可以单独使用控制单独一边的效果,当然也可以合并一起使用
    例如:
        padding:2px 3px 4px 5px;    /*上内边距2px 右内边距3px 下内边距4px 左内边距5px*/
        padding:2px 3px 4px;        /*上内边距2px 右/左内边距3px 下内边距4px*/
        padding:2px 3px;        /*上/下内边距2px 右/左内边距3px*/
        padding:2px;            /*上右下左内边距都为2px*/
二、border(边框)
    在 HTML 中,我们使用表格来创建文本周围的边框,但是通过使用 CSS 边框属性,我们可以创建出效果出色的边框,并且可以应用于任何元素。元素外边距内就是元素的的边框 (border)。元素的边框就是围绕元素内容和内边据的一条或多条线。
    1、border-left/right/top/bottom(与padding类似)
    2、border-style(边框样式)
        border-left/right/top/bottom-style
            例如:border-style:dotted solid double dashed;
            /*上边框是点状 右边框是实线 下边框是双线 左边框是虚线*/
        具体样式:
            none        /*无效果,默认*/
            solid        /*实线*/
            double        /*双实线*/
            dotted        /*点状*/
            dashed        /*虚线*/
            groove        /* 3D 凹槽边框*/
            ridge        /*3D 垄状边框*/
            inset        /*3D inset 边框*/
            outset        /*outset 边框*/
            inherit        /*规定应该从父元素继承边框样式*/
            
    3、border-color(边框颜色)
        border-left/right/top/bottom-color
        例如:p {
              border-style: solid;
              border-color: blue rgb(25%,35%,45%) #909090 red;
            }
    4、border-width(边框宽度)
        border-left/right/top/bottom-width
        例如:p {
            border-style: solid; border-width: 15px 5px 15px 5px;
            }
    5、border-radius(边框半径,可绘制圆角边框)
        例如:div{
            border:2px solid;
            border-radius:25px 50px 75px 100px;
            -moz-border-radius:25px 50px 75px 100px; /* Old Firefox */
            }
            与border的其他属性相似,它也是可以作用在四个角上的(左上,右上,右下,左下)
    6、box-shadow (边框阴影)
        例如:div{box-shadow: 10px 10px 5px red;}    
            表示:水平方向的距离10px(正值:阴影在右边)    /*可以为负值,负值则表示阴影在左边*/
                  竖直方向的距离10px(正值:阴影在左边)    /*可以为负值,负值则表示阴影在上面*/
                  模糊度5px                    
                  阴影颜色red                
    7、border-image(边框图)
        border-image-sourcesource: url(xx.png)
        border-image-width:边框宽/九宫格格宽
        border-image-repeat: stretch(拉伸)/repeat(重复)/round(平铺)
        当然也可以将这三种方式合并在一起,例如:
            div{
                border: 20px solid transparent;
                border-image:url(box.png) 20 round;    /*注意:此种写法width的值不能带单位*/
                /*-webkit-border-image:url(box.png) 20 round;*/
            }
    
三、margin(外边距)
    margin-left/right/top/bottom(与padding类似)
    (略)

四、补充
    outline(轮廓)
        outline-color || outline-style || outline-width
        该属性是复合属性,且不占页面空间,用法如下:
        img { outline-color: orange; outline-style: solid ; outline-width: medium ; }
五、综合
    1、一个区块元素所占的空间总大小:

        X轴:margin-left + border-left + padding-left + width + padding-right + border-right + margin-right
        同理,Y轴:margin-top + border-top + padding-top + height + padding-bottom + border-bottom + margin-bottom
    2、区块元素合并
        无浮动
            竖直方向上排布,相邻元素的Margin会合并,合并后的值是二者指定的间距中的较大值,Padding各自独立;

            当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。请看下图:

            假设有一个空元素,它有外边距,但是没有边框或填充。在这种情况下,上外边距与下外边距就碰到了一起,它们会发生合并:

            如果这个外边距遇到另一个元素的外边距,它还会发生合并:

        有浮动
            padding各自独立;
            竖直/水平方向Margin上都各自独立
    3、内联元素合并
        内联元素:水平方向上排布,一行不够自动排布到下一行,
        Margin:水平方向上各自独立,不合并;竖直方向上无效。
        Padding:水平方向上各自独立;竖直方向上有效但不占用页面空间(即上下两行的padding可能会重叠)
六、其他:
        (1)outline、box-shadow不会占用页面空间,故也不计入盒子模型的计算。
        (2)float会对间距的合并产生影响
        (3)区块若想在父元素中水平居中,margin: 0  auto;    由浏览器自动计算左右间距——平均分配
        (4)为了屏蔽浏览器默认值造成的兼容性问题,页面布局时可以添加 *{margin:0; padding:0}

css-盒子模型的更多相关文章

  1. 深入理解CSS盒子模型

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

  2. CSS盒子模型的理解

    标准的CSS盒子模型包括:内容(content).填充(padding).边框(border).边界(margin) 这些属性,可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子 ...

  3. 每天学点前端——基础篇1:css盒子模型,绝对定位和相对定位

    什么是css盒子模型(Box Model)? W3C中解释为:规定了元素框处理元素内容.内边距.边框和外边距的方式: MDN:文档中的每个元素被描绘为矩形盒子.渲染引擎的目的就是判定大小,属性--比如 ...

  4. CSS 盒子模型概述

    一.简介   CSS 盒子模型(元素框)由元素内容(content).内边距(padding).边框(border).外边距(margin)组成.     盒子模型,最里面的部分是实际内容:直接包围内 ...

  5. 标准的CSS盒子模型?与低版本IE的盒子模型有什么不同的?

    CSS盒子模型:由四个属性组成的外边距(margin).内边距(padding).边界(border).内容区(width和height); 标准的CSS盒子模型和低端IE CSS盒子模型不同:宽高不 ...

  6. 理解CSS盒子模型

    概述 网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin),CSS盒子模型都具备这些属性,也主要是这些属性. 这些属性我们可以把它转移到我 ...

  7. 几个容易出错的css盒子模型细节

    css是前端必须掌握的技能之一.其中的box模型,如图所示: 大体就是border.margin.padding和content,概念挺好理解.但当盒子模型与其他属性一块使用时产生的现象,或许您还难以 ...

  8. <转>HTML+CSS总结/深入理解CSS盒子模型

    原文地址:http://www.chinaz.com/design/2010/1229/151993.shtml 前言:前阵子在做一个项目时,在页面布局方面遇到了一点小问题,于是上stackoverf ...

  9. 聊聊css盒子模型

    css盒子模型原理: 在网页设计中常听的属性名:内容(content).填充/内边距(padding).边框(border).外边距(margin), CSS盒子模式都具备这些属性. 这些属性我们可以 ...

  10. css 盒子模型理解

    盒子模型是html+css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局.下面是自己积累和总结的关于css盒子模型的知识^_^,希望对初学者有用. 一.css盒子模型概念 CSS ...

随机推荐

  1. Dom4J解析xml文件动态转换为List<Bean>或者Map集合

    大家在解析大量相似xml文件的时候是否会遇到这样一个问题:冗余的代码去set定义的实体对象Bean的值,基本都是一样的操作   而且毫无任何代码价值可言所以在这写了一个简单的例子,类封装了几个方法你只 ...

  2. Swift入门篇-结构体

    前面主要是介绍swift语言中基本类型的用法,今天给大家介绍的是swift的结构体的用法,swift中结构体的用法和其他语言的用法,还有不太一样,不过您多敲几遍,就可以理解结构体,结构体在ios开发中 ...

  3. ecshop利用.htaccess实现301重定向的方法

    实现方法如下(空间必须支持对目录中的.htaccess文件解析) 打开 .htaccess 找到 RewriteEngine on 它的下方添加 RewriteCond %{HTTP_HOST} ^需 ...

  4. Ehcache 使用

    自从Ehcache 到了1.2+的版本,就支持分布式缓存了 Spring + Hibernate的结构 ,ehcache的对这几个框架的支持较好,就采用这个缓存方案 下面是配置文件: <ehca ...

  5. 多个App间传递数据

    平台:Android两个App:A,B:需求:在A中点击一个按钮后,启动B并把数据从A传递到B: 代码: App A: MainActivity.java中添加: Button btn2 = (But ...

  6. Maven3路程(三)用Maven创建第一个web项目(2)servlet演示

    上一章用Maven新建了web项目成功后,本文演示在此基础上应用servlet. 1.首先修改pom.xml文件,添加servlet依赖 <project xmlns="http:// ...

  7. (笔记)Linux内核学习(五)之中断推后处理机制

    一 中断 硬件通过中断与操作系统进行通信,通过对硬件驱动程序处注册中断处理程序,快速响应硬件的中断. 硬件中断优先级很高,打断当前正在执行的程序.有两种情况: 硬件中断在中断处理程序中处理 硬件中断延 ...

  8. CodeWarrior环境下中断使用

    对于飞思卡尔CodeWarrior的中断使用,一般有3种方法: 1.把#pragma TRAP_PROC放在中断程序前面,并把中断向量表放到*.prm. 例如: #pragma TRAP_PROC v ...

  9. IT项目经理成长手记

    1.流程化,项目化,工业化: 2.启动,规划,实施,监控,收尾.五个过程 3.需求管理,项目策划,项目监控,集成项目管理,定量项目管理,供应商协议管理,风险管理. 4.项目经理是熬出来的,伟大都是熬出 ...

  10. Ubuntu中QT使用FFmpeg的奇怪问题

    FFmpeg都已经编译安装好了,QT的程序中调用av_register_all却总是在链接阶段报错,经过长时间的摸索,发现时静态链接库的问题,网上给出的答案都只能解决部分问题,所需的全部链接库如下: ...