为什么设立position:absolute之后<h1>不是独占一行了?

为什么设立position:absolute之后<h1>不是独占一行了?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>banner</title>
 
<style type="text/css">
*{
margin: 0;
padding: 0;
font-family: Microsoft YaHei UI, sans-serif;
}
 
.banner{
position: relative;
}
 
img{
width: 100%;
height: 675px;
position: absolute;
z-index: 1;
}
 
h1{
text-align: center;
font-size: 48px;
position: absolute;
top: 200px;
left: 0;
right: 0;
z-index: 2;
}
 
p{
text-align: center;
font-size: 24px;
position: absolute;
top: 280px;
left: 0;
right: 0;
z-index: 2;
 
}
 
</style>
</head>
<body>
<section>
<img src="2/images/banner.jpg">
<h1>Weclome to Website</h1>
<p>Lorem ipsum dolor sit amet,consectetur adipisicing edit</p>
</section>
</body>
</html>


这是作业里的banner区域

http://img1.sycdn.imooc.com/climg//58a1b9540001ab1b19201039.jpg

为什么把<h1>绝对定位且不给出  left  和  right 数值,就没有独占一行了?还有为什么这么写了就可以实现水平居中了?

http://img1.sycdn.imooc.com/climg//58a1b9be0001201619100986.jpg



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Python工程师 2017-02-14 10:34:06

absolute属性会使得元素脱离文档流,当元素脱离文档流后会导致元素无法计算自己的宽度和高度,所以只能以inline-block的方式显示,而inline-block就是既可以设置宽高度,也可以有内联元素在同一行显示的特性;这么说能理解么?帮忙采纳一下呗

  • 提问者 xurdy #1
    1、为什么元素脱离文档流后会导致元素无法计算自己的宽度和高度? 2、既然无法计算自己的高度和宽度,那么上述例子中<h1> 宽:503px,高:61px怎么来的?
    2017-02-14 21:21:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师