盒子模型
HTML每个元素都可以看做一个盒子,
盒子包括 content,padding,border,margin
方向 :top, right, bottom, left
内容相关属性:
- width:宽度
- min-width :最小宽度,浏览器窗口小于最小宽度是,可以滚动查看
- max-width : 最大宽度
- height:高度
- min-height : 最小高度
- max-height: 最大高度
内边距相关padding:
- padding-top
- padding-right
- padding-bottom
- padding-left
- 缩写属性:padding: 10px,20px,30px,40px(顺时针,上右下左)
- 四个值: 顺时针,上右下左
- 三个值 : 上右下,没有左,左边跟随着右边的值
- 两个值: 上和右(下跟随上,左跟右)
- 一个值: 全部方向都是相同的值
外边距相关margin:
- margin-top
- margin-right
- margin-bottom
- margin-left
- 缩写属性:margin: 10px,20px,30px,40px(顺时针,上右下左)
- 四个值: 顺时针,上右下左
- 三个值 : 上右下,没有左,左边跟随着右边的值
- 两个值: 上和右(下跟随上,左跟右)
- 一个值: 全部方向都是相同的值
- 上下margin传递->父子:
- margin-top传递
- 如果块级元素的顶部线和父元素的顶部线层叠,那么这块级元素的margin-top的值会传递给父级元素
- margin-bottom传递
- 如果块级元素的低部线和父元素的低部线层叠,那么这块级元素的margin-bottom的值会传递给父级元素
- 解决:
- 父元素设置padding-top/padding-bottom
- 给父元素设置border
- 触发BFC: 设置一个元素的overflow为auto/hidden (常用)
- BFC:(block format context 块级格式化上下文)
-
类似结界
-
如何触发BFC
- 浮动可以触发
- 设置一个元素的overflow为auto/hidden
- margin-top传递
- 上下margin折叠->兄弟:
- 垂直方向上相邻的2个margin(margin-top, margin-bottom) 有可能会合并成1一个margin,这种情况叫做折叠(collapse)
- 水平方向上margin永远不会折叠
- 折叠后最终值计算规则
- 两个值进行比较,取最大值
- 防止折叠
- 只设置一个元素的margin
- 上下margin折叠的用处
- 比如连续段落之间的margin,恰好需要这种折叠
![]()
border(边框)
- 边框宽度
- border-top-width ,border-right-width .border-bottom-width .border-left-width
- 简写:border-width
- 边框颜色
- border-top-color....
- 简写:border-color
- 边框样式
- border-top-style.....
- 简写 border-style
- 取值
- none 无样式
- dotted 点
- dashed 虚线
- solid 实线
- double 双线
- groove
- ridge
- inset
- outside
- border -top/border -right/border -bottom/border -left: 1px red solid
- 全部简写: border :1px red solid
边框的形状:
- 矩形:
-
.box1 { width: 100px; height: 100px; background-color: blue; border-top: 20px orangered solid; border-left: 20px red solid; }
![]()
-
- 三角形
-
/* 上箭头三角形 */ .box3 { width: 0px; height: 0px; border-top: 100px solid orangered; /* transparent 透明 */ border-left: 100px solid transparent; /* 旋转 transform: rotate(角度deg);*/ transform: rotate(-45deg); }
![]()
-
圆角效果:
- radius 半径,周围
- border-* -*-radius: 20px 10px
- * :方向 top,left.bottom.right
- 后面设置两个参数,第一个是水平方向的半径,第二个是垂直方向的半径
- 还可以设置百分比
- border-radius 参考的是当前元素的border+padding+content
-
border-top-left-radius: 50px 25;![]()
/* 圆角 */.box4 {width: 100px;height: 100px;background-color: red;
/* border-top-left-radius: 50px;border-bottom-left-radius: 50px;border-top-right-radius: 50px;border-bottom-right-radius: 50px; *//* 简写 圆形*/border-radius: 50px;/* 等同 *//* border-radius: 50%; */}![]()
行内非替换元素注意点
- 在行内非替换元素 width, height, margin-bottom, margin-top 不起作用
- 在行内非替换元素作用特殊: padding-top, padding-bottom 上下会多出来区域,但是这个区域不占空间
- 在行内非替换元素作用特殊: border-top, border-bottom 上下会多出来区域,但是这个区域不占空间
- 解决: display: inline-block
盒子尺寸box-sizing
- content-box 内容盒子,指设置宽高指的是内容的宽高
- border-box 指设置宽高指的是内容+内边距+边框的宽度
outline 表示元素的外轮廓
- 不占据空间, 默认显示在border的外面
- outline相关非属性有:
- outline-width
- outline-style :取值和border一样,比如solid, dottedd等
- outline-color
- 应用实例 :
- 去除a元素, input元素, textarea元素的focus轮廓效果
元素的阴影:shadow
盒子阴影box-shadow
box-shadow: offset-x offset-y [blur [spread]] [color] [inset]
- box-shadow 属性用于向盒子添加一个或多个阴影效果
- offset-x: 阴影的水平方向偏移量.正数向右偏移,负数向左偏移.
- offset-y: 阴影的垂直偏移量,正数向下偏移,负数向上偏移.
- blur:模糊半径, 阴影模糊度,不能取负数.
- spread:阴影大小.正数阴影扩大(阴影盒子大小小于盒子大小),负数阴影缩小
- color: 颜色
- inset: 表示添加内阴影,默认为外阴影
-
.box { width: 200px; height: 200px; background-color: #ffffff; border: 1px solid #ffffff; margin: 0 auto; /* 设置多个阴影 */ /* 方法一 */ /* box-shadow: 5px 5px 10px , -5px 0 10px ; */ /* 方法二 */ box-shadow: 0 10px 10px 10px rgba(0, 0, 0, 0.5); }
![]()
-
文字阴影 text-shadow
text-shadow: h-shadow v-shadow blur color;
- h-shadow: 设置水平阴影的位置(x轴方向),必需要设置的参数;允许负值。
- v-shadow : 设置垂直阴影的位置(y轴方向),必需要设置的参数,允许负值。
- blur: 阴影模糊的距离(半径大小),可选择设置的参数。
- color : 阴影的颜色,可选择设置的参数。
注释:text-shadow 属性可以向文本添加一个或多个阴影。该属性是逗号分隔的阴影列表,每个阴影有两个或三个长度值和一个可选的颜色值进行规定。省略的长度是 0。
水平居中
- text-align :
-
-
margin : 0 auto
- 原理: margin-left/ margin-right初始值为0 ,设置为auto,会平分/占据剩余的空间
-
![]()
word-break: 让单词可以断开









浙公网安备 33010602011771号