盒子模型
文档中的每个元素都会生成一个矩形框,我们成为元素框。这个框体用来描述元素在文档布局中所占的空间。
默认的情况下,各个元素的排布在视觉上不会出现重叠。但是如果元素框是手动定位的那家如有可能出现重叠。
- 内容区:用来存放具体的内容。
- 宽度:用来定义内容区的宽度。
- 高度:用来定义内容区的高度。
- 内边距:用来定义内容区和边框的距离。
- 边框:边框是内容区或内边距周围的一条或多条线。
- 外边距:定义元素和元素之间的距离。
宽度
元素的宽度指的是内容区左边界到右边界的距离。
格式: width:value
值:
- auto,默认值。无特定的宽度指。
- 对于块状元素来说,auto是父元素的宽度。
- 对于行内元素和行内块状元素来说,auto是内容的宽度。
- px,像素
- em,按照当前的字体大小来进行计算。
- %,相对于包含的块元素的宽度来计算的。
高度
元素的高度指的是内容区的上边界到下边界的距离。
格式:height:value
- auto,默认值。没有特定的高度。
- 块状元素,看行高。
- 行内元素,即使设置了行高也不会影响高度但是会影响垂直的距离。
- px,像素值
- em,按照当前的字体大小来进行计算。
- %,相对于包含的块元素的高度来进行计算。
宽度、高度的最大值和最小值
- 元素的内容区域可以使用min-width和min-height来定义最小值。(不能小于它)
- 元素的内容区域可以使用max-width和max-height来定义最大值。(不能超过它)
宽度和高度可以用在块状元素和行内块状元素。
内边距
适用于所有的元素(块状、行内),元素默认没有内边距(0px)。
内边距使用padding属性:
- px,像素
- em,当前字体大小。
- %,使用百分比来设置内边距,水平、垂直都是相对于父级元素的宽度来计算的。
简写格式:
-
padding:top/right/bottom/left -
padding:top/bottom left/right -
padding:top left/right bottom -
padding: top right bttom left注意:顺序是顺时针。
单内边距:
padding-toppadding-rightpadding-bottompadding-left
行内元素&行内块状元素的内边距
行内元素上设置的左右边距可以正常使用。但是上下内边距对行高没有影响。
行内块状元素可以正常的设置内边距。
边框
- 边框有三个要素:宽度(
border-width)、样式(border-style)、颜色(border-color)
- 宽度,默认为medium。具体宽度由浏览器自己决定。一般是2px或3px,我们使用
border-width来进行设置。 - 样式,默认为none,所以即使有边框宽度但是没有样式仍然看不到边框。使用
border-style来设置。 - 颜色,默认的边框颜色,是元素自身的文本的颜色。使用
border-color来进行设置。
边框样式
- 边框样式的取值:
- none,没有样式,如果说为none时即使有宽度也不会显示出来边框。
- solid,实线。
- 简写格式:
border-style:top/right/bottom/leftborder-style:top/bottom left/rightborder-style:top right/left bottomborder-style:top right bottom left
- 单边设置样式
- border-top-style
- border-left-style
- border-right-style
- border-bottom-style
边框宽度
-
边框宽度取值为:
px,像素
em,相对于元素字体大小来设置。
-
简写格式:
border-width:top/right/bottom/leftborder-width:top/bottom left/rightborder-width:top right/left bottomborder-width:top right bottom left
-
单边设置样式
- border-top-width
- border-left-width
- border-right-width
- border-bottom-width
边框颜色
简写格式:
border-color:top/right/bottom/leftborder-color:top/bottom left/rightborder-color:top right/left bottomborder-color:top right bottom left
单边设置样式
-
border-top-color
-
border-left-color
-
border-right-color
-
border-bottom-color
边框的颜色可以为透明:
transparent
简写属性
border-top:width style colorborder-bottom:width style colorborder-left:width style colorborder-right:width style color
设置整个边框
border:width style color
我现在要一个三角形。
div {
width: 0px;
height: 0px;
border: 100px solid red;
border-top-color: yellow;
border-right-color: blue;
border-bottom-color: pink;
/* 宽高设置为0,当要实现三角形时,将另外三个边框颜色设置为透明transparent */
}
内联元素的边框
行内元素左右边框可以正常使用,但是上下边框对行高没有影响。
外边距
CSS中设置任何元素的外边距都可以使用margin属性。外边距是添加在边框的外侧。
外边距是0。但是浏览器会给很多元素提供预设的样式其中就包括外边距。比如p标签、body标签。ul
- 外边距取值
- px,像素
- em,相对于字体的大小。
- %,像对于父元素的宽度来进行设置。
- 简写格式:
margin:top/right/bottom/leftmargin:top/bottom left/rightmargin:top left/right bottommargin:top right bottom left
- 单独的设置外边距
- margin-top:上外边距
- margin-right:右外边距
- margin-bottom:下外边距
- margin-left:左外边距。
__注意: __
- 元素的外边距可以设置为负值,但是设置为负值之后有可能让元素从父元素中冒出来。
- html、body都是块状元素,并且body一般有8px的外边距。