方法一:使用float
.father{
width: 660px
height: 150px
margin: 0 auto
border: 2px solid red
overflow: hidden
}
.son{
width: 150px
height: 150px
float: left
text-align: center
line-height: 150px
margin-right: 20px
}
.last{
margin-right: 0
}
<div class="father">
<div class="son" style="background-color: pink">son1</div>
<div class="son" style="background-color: rebeccapurple">son2</div>
<div class="son" style="background-color: sandybrown">son3</div>
<div class="son last" style="background-color: slategrey">son4</div>
</div>
登录后复制
原本的浮动之后再设置外边距,外层盒子的宽度会不够导致最后一个盒子在第二排显示
为什么不显示?
原因:父元素:660px <150px4 + 20px4 = 680px
因此还需要再重新定义最后一个盒子的右外边距为0
方法二:使用 display:inline-block
.father{
width: 660px
height: 150px
margin: 0 auto
border: 2px solid red
font-size: 0
}
.son{
width: 150px
height: 150px
display: inline-block
*display: inline
*zoom: 1
text-align: center
line-height: 150px
margin-right: 20px
font-size: 14px
}
.last{
margin-right: 0
}
<div class="father">
<div class="son" style="background-color: pink">son1</div>
<div class="son" style="background-color: rebeccapurple">son2</div>
<div class="son" style="background-color: sandybrown">son3</div>
<div class="son last" style="background-color: slategrey">son4</div>
</div>
登录后复制
但是使用 display:inline-block会出现一些情况,比如
可以这么理解页面布局就是一个空房间,要往里面放纸盒子
每个纸盒子之间要有间隔,这就是外间距
纸盒子里面要放东西,这些东西与纸盒子四壁的距离就是内边距
纸盒子的四个壁就是border
负边距:
<!DOCTYPE html><html>
<head>
<meta charset="UTF-8">
<title>负边距</title>
<style type="text/css">
* {
margin: 0
padding: 0
}
#div1 {
width: 780px
height: 380px
margin: 0 auto
border: 3px solid lightblue
overflow: hidden
margin-top: 10px
}
.box {
width: 180px
height: 180px
margin: 0 20px 20px 0
background: lightgreen
float: left
}
#div2{
margin-right: -20px
}
</style>
</head>
<body>
<div id="div1">
<div id="div2">
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
<div class="box">
</div>
</div>
</div>
</body>
</html>
实际效果!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)