#前端学习笔记#day5 盒子模型
盒子模型 浮动
RGB调配颜色:
语法:RGB(红色,绿色,蓝色)
每一种颜色的范围在0-255(0%-100%)之间
布局:
文档流
网页是个多层结构,一层叠着一层,对于用户来说,只能看到最顶上一层。
这些层中,最底下一层称为文档流,文档流是网页的基础
我们所创建的元素默认都是在文档流中进行排列的
对我们元素来说有两种状态
在文档流中
不在文档流中
元素在文档流中有什么特点:
块元素:块元素会在页面中独占一行
默认宽度是父元素的全部(会把父元素撑满) 比如对body里的div元素加背景,颜色宽度会和body一样宽
默认高度被内容撑开(子元素)
行内元素:行内元素不会独占一行,只占自身的大小
行内元素在页面中左向右水平排列,如果一行中不能容纳下所有行内元素,则会进入第二行
盒模型、框模型(box model)
css将所有元素都设置成了一个矩形的盒子,将元素设置为矩形后,对页面的布局就变成将不同的盒子摆放到不同的位置
每一个盒子都由以下几个部分组成:
内容区(content)
边框(border)
内边距(padding)
外边距(margin) 两个盒子的距离
.box{
width: 100px;
height: 100px;
background-color: salmon;
border-width:10px ;
border-color:rosybrown ;
border-style: solid;
}
solid表示实线
width+border-width的长度才是整个盒子的宽度
border-width有默认值,一般都是3个像素
border-width:10px 20px 30px 40px; 如果有四个值,则表示上 右 下 左
三个值:上 左右 下
两个值:上下 左右
border-top-width: 0;
border-xxx-width
xxx可以是top right bottom left
border-style 指定边框样式,默认值是none没有边框
solid表示实线
dotted 点状虚线
dashed 虚线
double 双线
boder简写属性,没有顺序要求地写出边框所有的相关样式(注意各元素之间没有逗号)
border: solid 50px red;
除了boder以外还有四个boder-xxx
boder-top
boder-right
boder-bottom
boder-left
盒子模型-内边距padding
一个盒子可见框的大小,内容区 内边距和边框共同决定
所以计算盒子大小时,要把三个部分相加
内容区和边框之间的距离
padding-top
padding-right
padding-left
padding-bottom
padding-top: 100px;
内边距设置会影响盒子大小(以上例子是盒子会变长)背景颜色会延到内边距上
(文字会在内容区,子元素会在内容区,子元素设置.inner{width: 100%;
height: 100%; },则子元素会把内容区充满)
盒子模型-外边距margin
外边距不会影响和盒子的大小,但是会影响盒子的位置
margin-top 元素会向下移动
margin-left 元素会向右移动
margin-right 默认情况下不会产生效果
margin-bottom 设置正值,其下边的元素会向下移动
margin可以设置负值,设置负值会向反方向移动
margin简写属性
可以同时设置四个方向的外边距,和padding一样
元素在页面顺序是自左向右排列的,所以默认情况下,如果我们设置左和上外边距,会移动元素自身,而设置右和下会移动其他元素
水平方向布局
元素在父元素中水平方向的位置由以下几个属性共同决定
margin-left
margin-right
boder-left
boder-right
width
padding-right
padding-lef
可以设置成为auto的三个值:width magin-left margin-right
一个元素在其父元素中,水平布局要满足以下等式
margin-left+margin-right+boder-left+boder-right+width+padding-right+padding-left = 其父元素内容区的宽度(必须满足)
以上等式必须满足,如果相加结果不成立,则称为过度约束,等式会自动调整
调整情况:
如果七个值中没有为auto的情况,则浏览器会自动调整margin-right以使得等式满足