zoukankan      html  css  js  c++  java
  • HTML&CSS精选笔记_盒子模型

    盒子模型

    认识盒子模型


    所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。


    网页就是多个盒子嵌套排列的结果。


    内边距出现在内容区域的周围,当给元素添加背景色或背景图像时,该元素的背景色或背景图像也将出现在内边距中。


    外边距是该元素与相邻元素之间的距离。


    如果给元素定义边框属性,边框将出现在内边距和外边距之间。


    规定可元素框处理元素内容、内边框、边框和外边距的方式



    盒子模型相关属性


    设置内容样式属性常用属性值

    上边框
    border-top-style:样式; 
    border-top-宽度; 
    border-top-color:颜色; 
    border-top:宽度 样式 颜色; 


    下边框
    border-bottom-style:样式; 
    border- bottom-宽度; 
    border- bottom-color:颜色; 

    border-bottom:宽度 样式 颜色;

     

    左边框 
    border-left-style:样式; 
    border-left-宽度; 
    border-left-color:颜色; 

    border-left:宽度 样式 颜色;


    右边框
    border-right-style:样式; 
    border-right-宽度;  
    border-right-color:颜色; 

    border-right:宽度 样式 颜色;


    样式综合设置border-style:上边 [右边 下边 左边];none无(默认)、solid单实线、dashed虚线、dotted点线、double双实线
    宽度综合设置border-上边 [右边 下边 左边];像素值
    颜色综合设置border-color:上边 [右边 下边 左边];颜色值、#十六进制、rgb(r,g,b)、rgb(r%,g%,b%)
    边框综合设置border:四边宽度 四边样式 四边颜色; 


    边框属性


    设置边框样式(border-style)
    none:没有边框即忽略所有边框的宽度(默认值)
    solid:边框为单实线
    dashed:边框为虚线
    dotted:边框为点线
    double:边框为双实线
    既可以对盒子的单边进行设置,也可以综合设置四条边的样式
    border-top-style:上边框样式
    border-right-style:右边框样式
    border-bottom-style:下边框样式
    border-left-style:左边框样式
    border-style:上边框样式   右边框样式  下边框样式   左边框样式
    border-style:上边框样式   左右边框样式   下边框样式
    border-style:上下边框样式   左右边框样式
    border-style:上下左右边框样式
    例如<p>只有上边为虚线dashed,其他三边为单实线solid
    p{ borer-style:dashed solid solid solid;}


    p{ border-style:solid;}        /*综合设置四边样式*/
    p{ border-top-style:dashed;}   /*上边样式覆盖*/


    设置边框宽度(border-width
    border-top-width:上边框宽度
    border-right-width:右边框宽度
    border-bottom-width:下边框宽度
    border-left-width:左边框宽度
    border- width:上边框宽度 [右边框宽度 下边框宽度 左边框宽度]


    设置边框颜色(border-color
    border-top-color:上边框颜色
    border-right-color:右边框颜色
    border-bottom-color:下边框颜色
    border-left-color:左边框颜色
    border-color:上边框颜色 [右边框颜色 下边框颜色 左边框颜色]
    设置段落的边框样式为实线,上下边灰色,左右边红色
    p{
          border-style:solid;                       /*综合设置边框样式*/
          border-color:#CCC #FF0000;    /*设置边框颜色:两个值为上下、左右*/
    }
    设置二级标题的边框样式为实线,且下边框为红色,其余边框采用默认文本的颜色
    h2{
    border-style:solid;                 /*综合设置边框样式*/
    border-bottom-color:red;      /*单独设置下边框颜色*/
    }
    注意:设置边框颜色时同样必须设置边框样式,如果未设置样式或设置为none,则其他的边框属性无效。
    综合设置边框
    border-top:上边框宽度 样式  颜色
    border-right:右边框宽度 样式  颜色
    border-bottom:下边框宽度 样式  颜色
    border-left:左边框宽度 样式  颜色
    border:四边宽度 样式  颜色
    像border、border-top等这样,能够一个属性定义元素的多种样式,在CSS中称之为复合属性。
    常用的复合属性有font、border、margin、padding和background等。
    复合属性可以简化代码,提高页面的运行速度,但是如果只有一项值,最好不要应用复合属性,以免样式不被兼容。


    内边距属性


    所谓内边距指的是元素内容与边框之间的距离,也常常称为内填充。
    在CSS中padding属性用于设置内边距,同边框属性border一样,padding也是复合属性
    padding-top:上内边距
    padding-right:右内边距
    padding-bottom:下内边距
    padding-left:左内边距
    padding:上内边距[右内边距 下内边距  左内边距]


    外边距属性


    所谓外边距指的是元素边框与相邻元素之间的距离,即盒子与盒子之间的距离。
    在CSS中margin属性用于设置外边距,它是一个复合属性,与内边距padding的用法类似
    margin-top:上外边距
    margin-right:右外边距
    margin-bottom:下外边距
    margin-left:上外边距
    margin:上外边距 [右外边距  下外边距  左外边距]

    对块元素应用宽度属性width,并将左右的外边距都设置为auto,可使块级元素水平居中,实际工作中常用这种方式进行网页布局,示例代码如下:
    .header{ 960px; margin:0 auto;}


    为了更方便地控制网页中的元素,制作网页时,可使用如下代码清除元素的默认内外边距: 
    *{
    padding:0;         /*清除内边距*/
    margin:0;          /*清除外边距*/
    }
    注意:使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。


    背景属性


    1、设置背景颜色
    background-color属性值可使用预定义的颜色值、十六进制#RRGGBB或RGB代码rgb(r,g,b)设置。background-color的默认值为transparent,这时子元素会显示其父元素的背景。
    2、设置背景图像
    通过background-image属性实现背景图像的设置
    3、设置背景图像平铺
    默认情况下,背景图像会自动向水平和竖直两个方向平铺。如果不希望图像平铺或只沿着一个方向平铺,可以通过background-repeat属性来控制,该属性的取值如下:
    repeat:沿水平和竖直两个方向平铺(默认值)
    no-repeat:不平铺(图像位于元素的左上角,只显示一次)
    repeat-x:只沿水平方向平铺
    repeat-y:只沿竖直方向平铺
    4、设置背景图像的位置
    background-position属性的值通常有两个,中间用空格隔开,水平和垂直方向的坐标。
    background-position属性的取值有多种,具体如下:
    使用不同单位的数值:直接设置图像左上角在元素中的坐标,例如“background-position:20px 20px;”


    使用预定义的关键字:指定背景图像在元素中的对齐方式。
    水平方向值:left、center、right。
    垂直方向值:top、center、bottom。


    使用百分比:按背景图像和元素的指定点对齐
    0% 0%      表示图像左上角与元素的左上角对齐。
    50% 50%    表示图像50% 50%中心点与元素50% 50%的中心点对齐。
    20% 30%    表示图像20% 30%的点与元素20% 30%的点对齐。
    100% 100%  表示图像右下角与元素的右下角对齐,而不是图像充满元素。
    如果只有一个百分数,将作为水平值,垂直值则默认为50%。


    5、设置背景图像固定
    用background-attachment属性来设置背景图像固定,其属性值如下:
    scroll:图像随页面元素一起滚动(默认值)
    fixed:图像固定在屏幕上,不随页面元素滚动


    6、综合设置元素的背景
    背景属性是一个复合属性,可以将背景相关的样式都综合定义在一个复合属性background中
    background:背景色 url("图像") 平铺 定位 固定;
    各个样式顺序任意,中间用空格隔开,不需要的样式可以省略。但实际工作中通常按照背景色、url("图像")、平铺、定位、固定的顺序来书写。


    盒子的宽与高


    使用宽度属性width和高度属性height可以对盒子的大小进行控制。
    width和height的属性值可以为不同单位的数值或相对于父元素的百分比%,实际工作中最常用的是像素值。


    W3C规范,符合CSS规范的盒子模型的总宽度和总高度的计算原则是:
    盒子的总宽度= width+左右内边距之和+左右边框宽度之和+左右外边距之和
    盒子的总高度= height+上下内边距之和+上下边框宽度之和+上下外边距之和


    注意:1、宽度属性width和高度属性height仅适用于块级元素,对行内元素无效(<img />标记和<input />除外)。
    2、计算盒子模型的总高度时,还应考虑上下两个盒子垂直外边距合并的情况。


    元素的类型与转换


    元素的类型


    HTML标记一般分为块标记和行内标记两种类型,它们也称块元素和行内元素。


    块元素
    每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度、高度、对齐等属性,常用于网页布局和网页结构的搭建。
    常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等,其中<div>标记是最典型的块元素。


    行内元素
    行内元素不占有独立的区域,仅仅靠自身的字体大小和图像尺寸来支撑结构,一般不可以设置宽度、高度、对齐等属性,常用于控制页面中文本的样式。
    常见的行内元素有<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<a>、<span>等,其中<span>标记最典型的行内元素。


    注意:在行内元素中有几个特殊的标记——<img />、<input />、<td>,可以对它们设置宽高和对齐属性,有些资料可能会称它们为行内块元素。


    1、<div>标记
    div:块级元素,单独占一行
    span:行内元素,默认在一行上显示
    div是英文division的缩写,意为“分割、区域”
    <div>标记将网页分割为独立的、不同的部分,以实现网页的规划和布局。<div>与</div>之间相当于一个容器,可以容纳段落、标题、表格、图像等各种网页元素。也就是说大多数HTML标记都可以嵌套在<div>标记中,<div>中还可以嵌套多层<div>
    <div>标记通过与id、class等属性配合,然后使用CSS设置样式,可以替代大多数的块级文本标记。


    注意:1、<div>标记最大的意义在于和浮动属性float配合,实现网页的布局,这就是常说的DIV+CSS网页布局。
    2、<div>可以替代块级元素如<h>、<p>等,但是他们在语义上有一定的区别。例如<div>和<h2>的不同在于,<h2>具有特殊的含义,语义较重,代表着标题,而<div>是一个通用的块级元素,主要用于布局。


    特征
    div通常是块及元素
    独自占一行
    独自不能实现复杂效果,必须结合CSS样式进行渲染
    <div>可定义文档中的分区或节
    <div>标签可以把文档分割为独立的,不同的部分
          如果使用id或class来标记<div>,那么该标签的作用会变得更加有效


    2、<span>标记
    <span>标记是行内元素,<span>与</span>之间只能包含文本和各种行内标记,如加粗标记<strong>、倾斜标记<em>等,<span>中还可以嵌套多层<span>。


    <span>标记常用于定义网页中某些特殊显示的文本,配合class属性使用。


    元素的转换
    如果希望行内元素具有块元素的某些特性,例如可以设置宽高,或者需要块元素具有行内元素的某些特性,例如不独占一行排列,可以使用display属性对元素的类型进行转换。
    使用display属性对块元素和行内元素进行转换。其属性值及含义如下:
    inline:此元素显示为行内元素(行内元素默认display属性值)
    block:此元素显示为块元素(块元素默认display属性值)
    inline-block:此元素将显示为行内块元素,可以对其设置宽高和对齐等属性,但是该元素不会独占一行
    none:此元素将被隐藏,不显示,也不占用页面空间,相当于该元素不存在


    注意:<div>被转换成了行内元素,而行内元素只可以定义左右外边距,定义上下外边距时无效。


    块元素垂直外边距的合并
    相邻块元素垂直外边距的合并
    当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和,而是两者中的较大者。这种现象被称为相邻块元素垂直外边距的合并(也称外边距塌陷)。


    嵌套块元素垂直外边距的合并
    对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中的较大者,即使父元素的上外边距为0,也会发生合并。
    如果希望外边距不合并,可以为父元素定义1像素的上边框或上内边距。这里以定义父元素的上边框为例,在父<div>的CSS样式中增加如下代码:
    border-top:1px solid #FCC;       /*定义父div的上边框*/

  • 相关阅读:
    jQuery学习笔记(六)
    jQuery学习笔记(五)
    jQuery学习笔记(四)
    jQuery学习笔记(三)
    jQuery学习笔记(二)
    jQuery学习笔记(一)
    HTMLCSS学习笔记(七)----css精灵 滑动门、圆角及其扩展
    HTMLCSS学习笔记(六)----表格表单及样式重置,特性
    【数据结构】线性表(1)顺序表基础及简单操作
    【数据结构】排序——外部排序(2)
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7582115.html
Copyright © 2011-2022 走看看