display:inline-block;在这里面的作用,当不加这句的时候背景图片文字整体下移50%
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>背景</title>
<style>
div{
width:558px;
height:559px;
background-image:url(http://img1.sycdn.imooc.com/climg//58dc9d360001d65806500650.jpg);
text-align:center;
display:inline-block;
}
p{margin-top:50%;}
</style>
</head>
<body>
<div>
<p>《长歌行》
<br>
<br>青青园中葵,朝露待日晞。
<br>阳春布德泽,万物生光辉。
<br>常恐秋节至,焜黄华叶衰。
<br>百川东到海,何时复西归。
<br>少壮不努力,老大徒伤悲。
<br>
</p>
</div>
</body>
</html>0
收起
正在回答 回答被采纳积分+1
3回答
好帮手慕慕子
2019-04-10 12:10:21
同学你好,这里可以这样理解
首先为什么会出现设置margin-top导致父子元素一起下落。 因为所有相邻的两个或更多盒元素的margin将会合并为一个margin发生折叠。这里相邻的定义为:同级或者嵌套的盒元素,并且它们之间没有非空内容、padding或Border分隔。
折叠规则是(1)两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。(2)两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。(3)两个外边距一正一负时,折叠结果是两者相加的和。
使用display: inline-block; 会为这个盒子的内容创建新的BFC(块级格式上下文)。创建了新的BFC的元素与它的子元素的外边距不会折叠
BFC是一个独立的布局环境,BFC中的元素布局是不受外界的影响,并且在一个BFC中,块级盒子与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列
这里的父元素设置了display:inline-block;导致父元素创建了新的BFC。所以子元素(文字)设置的margint-top不会影响到父元素
同学这里只需要先了解一下这个概念, 随着同学更深入的学习,对这里理解就会更加明白了。
如果帮助到到了你,欢迎采纳
祝学习愉快~~~
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星