盒子模型
1.1 边框线 border
属性 | 描述 |
---|---|
border-style | 边框线类型 |
border-width | 边框线粗细 |
border-color | 边框线颜色 |
border-radius | 圆角效果 |
div{
width: 200px;
height: 200px;
/* border-style: solid;
border-width: 2px;
border-color: #5F9EA0; */
border-top: 2px double green;
border-right: 5px dotted red;
border-bottom: 3px solid cyan;
border-left: 2px dashed #A52A2A;
border: #A52A2A solid 2px ;
}
1.2 背景 background
属性 | 描述 |
---|---|
background-color | 背景颜色 |
background-image:url() | 背景图片 |
background-repeat | 背景是否重复 |
background-position | 背景图片的位置 |
background-size | 背景图片的大小 |
background-attachment | 背景图片的定位属性 |
div{
width: 300px;
height: 300px;
/* background-color: #008000;
background-image: url(imgs/2.jpg);
background-repeat: no-repeat; */
background: #008000 url(imgs/2.jpg) no-repeat;
background-size: 150px 150px;
background-position: center;
/* 该属性通常结合position属性使用,图片的位置会根据浏览器的位置进行显示 */
background-attachment: fixed;
}
1.3 外边距 margin
-
外边距:盒子与盒子之间的举例
-
在外边距中,当两个元素具有相对性的方形设置了间距,那么最终的实际间距取两只之间的较大值
-
当父元素中的第一个子元素使用了margin-top时,会出现塌陷问题(整个父元素会向下移动)
-
出现该现象的原因:
1、第一个子元素
2、margin-top
-
如何处理:
1、让使用margin-top的元素不作为第一个子元素
2、使用内边距来代替外边距
3、给父元素一个边框线
属性 | 描述 |
---|---|
margin:10px; | 元素的四个方向都有10像素的间距 |
margin:10px 20px; | 上下10px 左右20px |
margin:10px 15px 20px; | 上10px 左右15px 下20px |
margin:10px 15px 20px 25px; | 上右下左(顺时针方向) |
可以设置块元素在水平方向居中
margin: 0 auto;
1.4 内边距 padding
盒子中的内容与盒子之间的距离称为内边距。
属性 | 描述 |
---|---|
padding:10px; | 元素的四个方向都有10像素的间距 |
padding:10px 20px; | 上下10px 左右20px |
padding:10px 15px 20px; | 上10px 左右15px 下20px |
padding:10px 15px 20px 25px; | 上右下左(顺时针方向) |
注意:
1、padding属性在使用时,会改变元素所占据的位置(撑开)
2、如果使用padding值后,元素的宽高减去对应的padding后的元素宽高小于元素内容正常显示需要的值,那么就不建议使用padding进行调整。
(例如:元素高100px,内容显示需要50px,padding-top:80px,元素减去padding后的高度为20px,20px<50px,此时就不建议使用padding)
1.5 display属性
在HTML中大多数的标签都是语义化标签,但是标签的数量有限,并不能覆盖所有的可能出现的需求情况。
行元素和块元素之间需要进行相互转换,或者是元素需要同时具备行元素和块元素的特征,那么此时就需要使用display
属性 | 描述 |
---|---|
display:none; | 无display属性,可以起到隐藏的作用(不占空间) |
display:inline; | 将元素转换为行元素 |
display:block; | 将元素转换为块元素 |
display:inline-block; | 将元素转换为行内块元素(可以设置宽高可以在同一行显示) |
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
body,p,div,ul,li{
margin: 0;
padding: 0;
}
div{
width: 300px;
height: 200px;
margin: 0 auto;
background-color: green;
}
p{
display: none;
width: 100px;
height: 100px;
background-color: #008B8B;
}
div:hover p{
display: block;
}
</style>
</head>
<body>
<div>
<p></p>
</div>
</body>
</html>
- 注意点:inline-block属性在IE7及以下不生效
问题:元素使用inline-block属性在同一行排版时会出现两个元素之间有个空格
方案:将使用inline-block属性的元素所在的父元素设置font-size为0,元素的字体大小由单个的子元素自己控制
1.6 visibility属性
属性 | 描述 |
---|---|
visibility:hidden; | 元素隐藏,仍然占据页面位置 |
visibility:visible; | 元素显示(默认值) |