本人
在校学生
,主学后端,后来发现前端的基础都忘得差不多了才想着写文章回来复习!欢迎留言交流。什么是盒子呢? 拿下举例,我们可以把每个红框都比作一个盒子,他们可以是任意的 HTML 元素。
所谓
盒子模型
:就是把 HTML 页面中的布局元素看作是一个矩形
的盒子,也就是一个盛装内容的容器。 CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括
:边框、外边距、内边距、和 实际内容。
边框有三部分
组成
:边框宽度(粗细) 边框样式 边框颜色
语法:
border: border-width || border-style || border-color;
简写方式:
border: 1px solid red; 没有顺序
边框分开写法:
border-top: 1px solid red; /* 只设定上边框, 其余同理 */
属性 | 作用 | 常用值 |
---|---|---|
border-width | 边框宽度(粗细) | 单位 px |
border-style | 边框的样式 | solid |
border-color | 边框颜色 | 普通颜色 |
为什么要单独说这个呢?可以看到,这是一个
二行二列
的表格,我们设置了他的边框
是 1px 的红色实线。没有发现这样的表格很丑
吗? 因为他的边框让人感到杂乱无章
,因为每个td
都有 4 个边。那我们可不可以让它相邻的两条边共用同一条边呢 ? 当然可以,让它合并就好。
border-collapse:
属性控制浏览器绘制表格边框的方式。它
控制
相邻单元格的边框。
语法:
border-collapse: collapse;
合并
的意思padding 属性用于设置
内边距
,即边框与内容之间的距离。
简写形式:
margin 属性用于设置
外边距
,即控制盒子和盒子之间的距离
margin 简写方式代表的意义跟 padding 完全一致。
外边距可以让块级盒子水平居中,但是必须满足两个条件:
常见的写法,以下三种都可以:
注意:以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加 text-align:center 即可
使用
margin
定义块元素的垂直外边距
时,可能会出现外边距的合并。 主要有两种情况:
当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距 margin-bottom,下面的元素有 上外边距 margin-top ,则他们之间的垂直间距不是 margin-bottom 与 margin-top 之和。取两个值中的 较大者这种现象被称为相邻块元素垂直外边距的合并。
对于两个嵌套关系(父子关系)的块元素,父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷较大的外边距值。 解决方案:
还有其他方法,比如浮动、固定,绝对定位的盒子不会有塌陷问题,后面咱们再总结。
网页元素很多都带有默认的内外边距,而且不同浏览器默认的也不一致。因此我们在布局前,首先要清除下网页元素的内外边距。
* {
padding:0; /* 清除内边距 */
margin:0; /* 清除外边距 */
}
注意:行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。但是转换为块级和行内 块元素就可以了
border-radius 属性用于设置元素的外边框圆角
语法:
border-radius:length;
简写属性
,可以跟四个值,分别代表左上角、右上角、右下角、左下角 ie9+
浏览器支持, 但是不会影响页面布局,可以放心使用.语法:
box-shadow: h-shadow v-shadow blur spread color inset;
注意
外阴影
(outset), 但是不可以写这个单词,否则造成阴影无效语法:
text-shadow: h-shadow v-shadow blur color;