第十七天学习:CSS框模型

关键字:框模型

学习计划:

  • CSS框模型简介
    • border特性
    • padding特性
    • margin特性
  • 面积
    • height和width特性
    • line-height特性
    • max-height特性
    • min-height特性
    • max-width特性
    • min-width特性
    • overflow特性

学习记录:

  • CSS框模型(box model)
    • 规定了元素框处理元素内容、内边距、边框和外边距的方式
    • 可以使用CSS分别控制每个框的顶部、底部、左边和右边边框以及页边空白和内边框;并且可以为框的每一边指定不同的宽度和颜色
    • 元素框的最内部分是实际内容,直接包含的内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后面的任何元素。
    • 背景应用于由内容和内边距、边框组成的区域。
    • width和height指的是内容区域的宽度和高度,增加内边距、外边距和外边距不会影响到内容区域的尺寸,但是会增加元素框的总尺寸。
    • 内边距、边框和外边距都是可选的,默认值是零,可以应用于一个元素的所有边,也可以应用于单独的边。
    • 外边距可以是负值,而且在很多情况下都要使用负值的外边距。
  • border特性
    • border特性可用于指定代表元素的框的边框外观,可以改变表框的3种特性:
      • border-color:指示边框的颜色
      • border-style:指示边框应该是实线、虚线或双线,或者是其他的可能值之一
      • border-width:指示边框的宽度
    • border-color特性
      • 用于改变框周围边框的颜色
      • 值:
      • 可以使用下面的特性单独改变边框底部、左侧、顶部、右侧的颜色

        • bordr-bottom-color
        • border-left-color
        • border-top-color
        • border-right-color
    • border-style特性
      • 可用于指定边框的样式
      • 值:                        
        • none(没有的):没有边框(默认值)
        • solid(固体的):由单条实线组成
        • dotted(点线):由一系列的点组成 
        • dashed(虚线):由一系列的短线组成
        • double(双重的):由两条实线组成
        • groove(凹槽):边框看上去如同雕刻进页面中
        • ridge(山脊):边框的外观与值groove相反
        • inset(嵌入) :边框使框看上去如同嵌入页面
        • outset(外凸):边框使框看上去如同位于画布之外
        • hidden(隐藏):与none相同,但是对于表元素存在边框冲突解决方法
      • 可以使用下面的特性单独改变 框的边框底部、左侧、顶部和右侧的样式
        • border-bottom-style
        • border-left-style
        • border-right-style
        • border-top-style
    • border-width特性
      • 为元素的所有边框设置宽度,或者单独为各边边框设置宽度,只有当边框样式不是none时才起作用,边框宽度实际上会重置为0。不允许指定负长度值。
      • border-width特性的值不能是百分比,而必须是一个长度或者下面的值之一:
        • thin(薄的)
        • medium(中等的)默认值
        • thick(粗的)
        • CSS规范中并没有指定thin、medium和thick值的具体宽度(以像素为单位)。
      • 可以使用下面的特性单独改变边框底部、左侧、顶部、右侧的宽度
        • border-bottom-width
        • border-left-width
        • border-top-width
        • border-right-width
    • 利用简写表达边框的特性:
      • border特性允许在一个特性中同时指定线的颜色、样式和宽度,例如:
        • p{border:4px solid red;}
      • 如果使用了这种缩写,则值之间不能有任何内容(除了空格之外)。也可以使用下面的特性单独为框中每一边的线指定颜色、样式和宽度:
        • border-bottom
        • border-top
        • border-left
        • border-right
  • padding特性
    • 定义元素边框与元素内容之间的空白区域
    • padding特性的值可以是长度、百分比或者单词inherit,如果是inherit,则元素内边距与其父元素相同,如果使用百分比,则百分比相对于包含该元素的框。
    • 可以使用下面的特性为框的每一边指定不同的内边距量:
      • padding-bottom
      • padding-let
      • padding-top
      • padding-right
    • 在创建元素的内容和它的边框之间的空白时,padding属性非常有用(即使边框不可见,内边距也可以阻止两个相邻框的内容相互接触)
  • margin特性
    • margin特性是框之间的距离,它的值可以是长度、百分比或者inherit,这些值的意义与padding特性中的值相同
    • 两个框的垂直页边空白接触时,将导致相互折叠,因此块之间的距离不是两个页边空白的总和,而是其中的较大者(如果两个页边空白相等,则可以是其中的任何一个页边空白)。
    • 也可以使用下面的特性为框中每一边上的页边空白设置不同的值:
      • margin-bottom
      • margin-top
      • margin-left
      • margin-right
  • 面积
    • height特性和width特性
      • 用于设置框的高度和宽度,它们能够采用的值包括长度、百分比或者关键字auto(自动)(默认值)
    • line-height特性
      • 是最重要的一个特性,它可用于增加文本行之间空间(行距)
      • 它的值可以是数值、长度或者百分比,较好的方法是为这个特性指定与文本大小相同的度量单位
    • max-width特性和min-width特性
      • max-width和min-width特性分别用于指定框的最大和最小宽度
      • 当希望创建能够伸缩的页面部分以适应用户的屏幕大小时,这两个特性非常有用。
      • max-width特性能够防止框太宽以至于不方便阅读(文本行太长,在屏幕上阅读它们较困难);min-width特性将有助于防止框太窄以至于不可阅读
      • 这两个特性的值可以是数值、长度或百分比,不允许负值。
    • max-height特性和min-height特性
      • max-height和min-height特性分别用于指定框的最大和最小高度
      • 这两个特性的值可以是数值、长度或百分比,不允许负值。
    • overflow属性
      • 规定当内容溢出元素框时发生的事情
      • 可能的值          描述
        • visible:默认值,内容不会被修剪,会呈现在元素框之外
        • hidden:内容会被修剪,并且奇遇内容是不可见的
        • scrol:内容会被修剪,但是浏览器会显示滚动条以便查看其余内容
        • suto :如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容

扩展阅读:

  • 值复制
    • CSS定义了一些规则,允许为外边距指定少于4个值。规则如下:
      • 如果缺少左外边距的值,则使用右外边距的值。
      • 如果缺少下外边距的值,则使用上外边距的值。
      • 如果缺少右外边距的值,则使用上下外边距的值。
    • 下图提供了更直观的方法了解这一点:

问题的记录与解决:

  • border-style特性中hidden的用法?
  • padding值如果是百分比,代表着什么?
  • line-height和height的区别?
    • 如果我们定义test{line-height:1cm},那么这个元素的实际高度将取决于其中内容的多少,假如文字部分在浏览器里面显示一行,那么这个test的实际高度是1cm,如果文字显示为两行,那么这个test的实际高度就是2cm,而且文字的行高是1cm
    • 如果我们定义test{height:2cm},那么这个元素的实际高度一般并不会因为内容的多少而发生改变,如果文字显示为一行,那么这个test的高度仍然是2cm,如果显示为两行,但是文字的行高不够1cm,这个test的高度也不会因为内容的高度小于height而发生改变。不够如果文字内容的高度大于2cm,一般来说这个test的高度还是会相应增加的。 
posted @ 2016-07-25 12:05    Views(151)  Comments(0)    收藏  举报