CSS3之盒模型

作者: LemonnYan | 来源:发表于2018-05-27 17:40 被阅读77次

一、CSS盒模型简介

在CSS中主要有以下盒模型:inline、inline-block、block、table、position、float。浏览器把每个元素看作一个盒模型,每个盒模型由以下几个属性组合决定的:display、position、float、width、height、margin、padding和border等,不同的盒模型会产生不同的布局。

二、盒模型解析模式

在css中盒模型被分为两种,第一种是W3C的标准盒模型,另一种是IE的传统模型,相同之处都是对元素计算尺寸的模型,具体说就是对元素的width、height、padding和border以及元素实际尺寸的计算关系,不同之处是两者的计算方法不一致。

1)W3C的标准盒模型
外盒尺寸计算(元素空间尺寸)
Element空间高度=内容高度+內距+边框+外距
Element空间宽度=内容宽度+內距+边框+外距
内盒尺寸计算(元素大小)
Element高度=内容高度+內距+边框(height为内容高度)
Element宽度=内容宽度+內距+边框(width为内容宽度)

2)IE传统下盒模型(IE6以下,不包含IE6版本或QuirksMode下IE5.5+)
外盒尺寸计算(元素空间尺寸)
Element空间高度=内容高度+外距(height包含了元素内容高度、边框、內距)
Element空间宽度=内容宽度+外距(width包含了元素内容宽度、边框、內距)
内盒尺寸计算(元素大小)
Element高度=内容高度(height包含了元素内容高度、边框、內距)
Element宽度=内容宽度(width包含了元素内容宽度、边框、內距)

三、CSS3盒模型属性

css3增添了一个盒模型属性box-sizing,能够事先定义盒模型的尺寸解析方式
语法:box-sizing:content-box|border-box|inherit

参数说明:

  • content-box:默认值,让元素维持W3C标准盒模型,element width/height=border+padding+content width/height。
  • border-box:让元素维持IE传统的盒模型(IE6以下版本盒IE6~7怪异模式),内容的宽度或高度=盒子的宽度或高度-边框-內距,元素的宽度或高度等于元素内容的宽度或高度。
  • inherit:使元素继承父元素的盒模型模式。

box-sizing属性主要用来控制元素的盒模型的解析模式,主要目的是控制元素的总宽度。

content-box和border-box示例效果图:


示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css测试</title>
    <style>
     .content-box{
      width:208px;
      padding:32px;
      border:solid blue 16px;
      box-sizing: content-box;
      margin:20px;
     }
     .border-box{
      width:208px;
      padding: 32px;
      border:solid green 16px;
      box-sizing: border-box;
      margin:20px;
     }
    </style>
</head>
<body>
  <div class="content-box">
    测试测试测试测试测试测试测试测试测试测试测试测试
    测试测试测试测试测试测试测试测试测试测试测试测试
    测试测试测试测试测试测试测试测试测试测试测试测试
  </div>
  <div class="border-box">
    测试测试测试测试测试测试测试测试测试测试测试测试
    测试测试测试测试测试测试测试测试测试测试测试测试
    测试测试测试测试测试测试测试测试测试测试测试测试
  </div>
</body>
</html>

四、css3内容溢出属性

Overflow-x主要是用来定义水平方向的内容溢出的剪切,overflow-y主要用来定义垂直方向内容的剪切。
基本语法:

overflow-x:visible|hidden|scroll|auto|no-display|no-content
overflow-y:visible|hidden|scroll|auto|no-display|no-content

参数说明:

  • visible:默认值,不剪切容器中的任何内容,不添加滚动条,元素将被剪切为包含对象的窗口大小,且clip属性设置失效。
  • auto:在需要时剪切内容并添加滚动条。
  • hidden:内容溢出时,内容隐藏且不显示滚动条
  • scroll:不管内容有没有溢出容器,都会显示滚动条
  • no-display:当内容溢出容器时,不显示元素
  • no-content:当内容溢出容器时不显示内容

五、css3自由缩放属性

resize属性允许用户通过拖动的方式修改元素的尺寸以改变元素的大小。
语法:
resize:none|both|horizontal|vertical|inherit
参数说明:

  • none:用户不能拖动元素修改尺寸大小
  • both:用户可以拖动元素,同时修改元素的宽度和高度
  • horizontal:用户可以拖动元素,仅可以修改元素的宽度
  • vertical:用户可以拖动元素,仅可以修改元素的高度
  • inherit:继承父元素的resize属性值

六、css3外轮廓属性

外轮廓outline在页面中呈现的效果和边框border呈现的效果极其相似,外轮廓线不占用网页布局空间,不一定是矩形,外轮廓属性一种动态样式,只有元素获取到焦点或者被激活时呈现。
语法:
outline:outline-color||outline-style||outline-width||outline-offset||inherit
参数说明

  • outline-color:定义轮廓线的颜色
  • outline-style:定义轮廓线的样式
  • outline-width:定义轮廓线的宽度
  • outline-offset:定义轮廓线的偏移位置的数值,为整数值时表示轮廓框向外偏离多少个像素;为负数值时表示轮廓框向内偏移多少个像素。
  • inherit:元素继承父元素的outline效果

outline制作的边框只能四边出现,不能单边出现,且outline制作的模拟边框不会影响盒模型的大小。

相关文章

  • CSS3Flex和圣杯布局

    一、css3盒模型 css3增加了盒模型属性box-sizing,能够事先定义盒模型的尺寸解析方式。box-siz...

  • 盒模型

    主要有两种盒模型: IE盒模型和标准盒模型。 CSS3的box-sizing可以定义使用哪种盒模型。 IE盒模型的...

  • CSS3 盒子模型

    @(HTML5)[CSS3盒子模型] [TOC] 六 、CSS3盒子模型 盒子阴影 box-shadow h-sh...

  • Day03(css3盒模型,demo 渐变)

    CSS3 盒模型 1.盒模型分为两种:W3C盒模型和IE盒模型 W3C盒模型标准:盒子宽度=内容宽度,就是widt...

  • 前端第四天

    前端第四天 目录: 盒模型之display 盒模型之overflow 盒模型之隐藏 盒模型之border 盒模型之...

  • 5个CSS、HTML5最常见前端面试题

    1、CSS3的盒子模型; 答案:标准盒模型(box-sizing:content-box)、怪异盒模型(box-s...

  • CSS3弹性盒子

    弹性盒模型 弹性盒模型是CSS3新增的属性,设置display属性值为flex的元素为弹性盒模型对象。弹性盒子由弹...

  • [读]响应式布局:CSS3弹性盒flex布局模型

    响应式布局:CSS3弹性盒flex布局模型

  • CSS盒模型

    一、CSS盒模型 标准模型 IE模型 使用CSS3的box-sizing属性设置何种模型 box-...

  • CSS3之盒模型

    一、CSS盒模型简介 在CSS中主要有以下盒模型:inline、inline-block、block、table、...

网友评论

    本文标题:CSS3之盒模型

    本文链接:https://www.haomeiwen.com/subject/fqtijftx.html