Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[css] 第85天 怎么让body高度自适应屏幕?为什么? #593

Open
haizhilin2013 opened this issue Jul 9, 2019 · 10 comments
Open
Labels
css css

Comments

@haizhilin2013
Copy link
Collaborator

第85天 怎么让body高度自适应屏幕?为什么?

@haizhilin2013 haizhilin2013 added the css css label Jul 9, 2019
@KongXiaoYan03
Copy link

html,body{height:100%}

@pokerLife
Copy link

同楼上,html,body同时设置成100%才有效,html百分比是相对于浏览器而言的,其他元素相对于父元素。

注意:这样设置会使-webkit-overflow-scrolling: touch;不起作用,之前遇到过这种问题,不对的请指正。

@nowherebutup
Copy link

body{
height: 100vh;
}

@dondonZh
Copy link

body{height:100%}

@haizhilin2013
Copy link
Collaborator Author

@nowherebutup @dondonZh 只写body应该不行吧?

@xiangshuo1992
Copy link
Contributor

@nowherebutup @dondonZh 只写body应该不行吧?

100vh是可以的,在任何地方,100%的话需要从HTML开始。

@JiangXue93
Copy link

不知道我理解对不对

为何只设置body{height:100%}不行?
height:100%是相对于父元素来说的,如果只设置body的高度属性,由于其父元素是html高度未设置,且并非浏览器窗口高度,所以只设置body为100%是不能达到效果的,必须html,body都设置100%。而body{height: 100vh}直接把高度设置成了视口高度,与html大小无关,所以只在body设置vh是可行的。

@jiamianmao
Copy link

不知道我理解对不对

为何只设置body{height:100%}不行?
height:100%是相对于父元素来说的,如果只设置body的高度属性,由于其父元素是html高度未设置,且并非浏览器窗口高度,所以只设置body为100%是不能达到效果的,必须html,body都设置100%。而body{height: 100vh}直接把高度设置成了视口高度,与html大小无关,所以只在body设置vh是可行的。

贤弟理解很到位。

@Konata9
Copy link

Konata9 commented Aug 24, 2019

DOM 元素的 height 当设为百分比时,只有当父元素有一个定高的值时才会生效,否则不起作用。
因此要让 body 高度自适应就必须要在 html 上设置定高。而 html 的父级就是浏览器,html 的宽高由浏览器决定。浏览器的宽高是定值,因此需要给 htmlbody 同时设置 100%

另外也可以给 body 设置一个 min-height: 100vh;body在高度不够时可以撑满整个屏幕。(做验证可以使用 borderbackground 即便是高度不足时,浏览器也会天,填满颜色。

https://codepen.io/Konata9/pen/OJLWKJp?editors=1111

@smile-2008
Copy link

body{
height: 100vh;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
css css
Projects
None yet
Development

No branches or pull requests

10 participants