Skip to main content

盒子模型

很简单每一个元素都是一个盒子,从里到外分别为

content 内容

margin 外边距

border 边框

padding 内边距

除了content其它都有top right bottom left

border#

border-width#

可以用2px, 2em 方向表示:border-left-width

也可以关键字表示

关键字说明
thin细边线
medium中等边线
thick宽边线

border-color#

没啥讲的

border-style#

解释
none和关键字 hidden 类似,不显示边框。在这种情况下,如果没有设定背景图片,border-width 计算后的值将是 0,即使先前已经指定过它的值。在单元格边框重叠情况下,none 值优先级最低,意味着如果存在其他的重叠边框,则会显示为那个边框。
hidden和关键字 none 类似,不显示边框。在这种情况下,如果没有设定背景图片,border-width 计算后的值将是 0,即使先前已经指定过它的值。在单元格边框重叠情况下,hidden 值优先级最高,意味着如果存在其他的重叠边框,边框不会显示。
dotted显示为一系列圆点。标准中没有定义两点之间的间隔大小,视不同实现而定。圆点半径是 border-width 计算值的一半。
dashed显示为一系列短的方形虚线。标准中没有定义线段的长度和大小,视不同实现而定。
solid显示为一条实线。
double显示为一条双实线,宽度是 border-width
groove显示为有雕刻效果的边框,样式与 ridge 相反。
ridge显示为有浮雕效果的边框,样式与 groove 相反。
inset显示为有陷入效果的边框,样式与 outset 相反。当它指定到 border-collapsecollapsed 的单元格时,会显示为 groove 的样式。
outset显示为有突出效果的边框,样式与 inset 相反。当它指定到 border-collapsecollapsed 的单元格时,会显示为 ridge 的样式。

border-radius#

可以用px em 10% 来表示,复数无效,

复合写法是左上开始顺时针

支持一个角,两个角度,如 10px/50px

border-radius:10%/30%;

数值的原理就是在四个角画一个半径为xxpx的⚪,和两边相切。

画圆#

所以css画圆就是border-radius=正方形边长/2

所以一个圆如下

.box1{    width: 300px;    border:20px solid black;    height: 300px;    padding: 5px;    box-sizing: border-box;    margin: 20px;    border-radius:150px;  /*等于边长一半*/}

或者border-radius:50%

border-collapse#

是专门用在表格上的,就是表格单元格相邻的地方,边框合并

table,td{    border: 1px solid blue;    border-collapse: collapse;}

box-sizing#

普通模式下box的实际大小是content++margin+border,所以我们想要一个尺寸再加了border,就会超出我们想要的尺寸了

加上box-sizing:border-box;后盒子最后尺寸就不会变了,只会缩小content

.box1{    width: 500px;    border:5px solid black;    height: 400px;    box-sizing: border-box;}

这样最后盒子的实际大小就是width 500px,不然就是510px

padding#

就是内边距,没啥好讲的,就是会影响盒子的大小,当然加了box-sizing后只会缩小盒子了

margin#

外边距和padding差不多

不过可以合理利用auto这个值

比如盒子水平居中,可以设置左右的值为auto就可以了

margin:20px auto;

这里只有块级盒子生效

对于inline 和block-inline无效,但是也有方法,就是给父元素加text-align: center;inline元素被看成内容就行

相邻块级元素margin合并#

相邻的两个块级元素,如果有上下外边距,你会发现它们之间的距离不等于2个margin相加,只会取其中最大的一个margin

解决方案就是给相邻的两边只给其中一个加

清楚网页元素内外边距#

*{margin:0;padding:0;}

一般放在css第一行代码

box-shadow#

盒子阴影

/* x偏移量 | y偏移量 | 阴影模糊半径 | 阴影扩散半径 | 阴影颜色 */box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
/* 插页(阴影向内) | x偏移量 | y偏移量 | 阴影颜色 */box-shadow: inset 5em 1em gold;
/* 任意数量的阴影,以逗号分隔 */box-shadow: 3px 3px red, -1em 0 0.4em olive;