Fangjian

FE / 生活是一种态度

导航
 » 主页
 » 项目
 » Github
 » 关于我

html body 在css中的区别 [html]

08 Apr 2014 » html

在css中我们经常会用到 html,body{} 这种写法,但常常忽略 html 与 body 之间的区别

在css中,<html><body> 的区别往往被忽略,全局样式或者定义在html上,或者 body 上,实际上两者是有区别的

html和body的关联


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
</body>
</html>
  • 标准定义:<html> 是文档的根元素,<head> <body><html> 唯一的两个元素

  • 规范:<head><body> 是兄弟元素,也是需要加以区别的元素

html 和 body是父子关系,在html文档中,:root 选择符对应 html元素


:root {

}
html {

}

提示: :root 选择符的优先级大于html选择符

哪些全局样式应用到 html


1.rem

html {font-size: 62.5%}
body {font-size: 1.4rem}    /*14px*/
h1 {font-size: 2.4rem}      /*24px*/

2.background-color

  • 古怪的background-color 将background-color应用到body以后,即便body里面的元素没有占满视口,背景颜色也会蔓延到整个视口

  • 解决办法:给html设置background-color 设置 height: 100% 可以解决这个问题

如果body及其子元素的高度需要设置为窗口高度,那么html元素上也需要添加

html {height: 100%}

应用到 body 上的全局样式


早期规范中,<body> 有以下行内属性:

iniline attribute  
background background
bgcolor background/background-color
marginleft/margintop margin-left/margin-top
text font

总结:


除了css中存在区别,JavaScript中同样也存在区别。 例如:document.documentElement 对应 HTML, document.body 对应 body