分享

CSS: HTML 和 Body 的区别

 leong 2018-08-14

在 CSS 中,<html><body> 的区别往往被忽略,全局样式或者定义在 <html> 上,或者定义在 <body> 上。实际上,两者是有区别的,不论是 CSS 老鸟还是新手,都应该了解。

 

HTML 和 Body 如何关联

Html代码  收藏代码
  1. <!DOCTYPE html>    
  2. <html lang="en">    
  3.   <head>  
  4.     <!-- Metadata and such -->  
  5.   </head>  
  6.   
  7.   <body>  
  8.     <!-- Where the content begins -->  
  9.   <body>  
  10. </html>  

 根据标准定义<html> 是文档的根元素,<head><body><html> 唯一的两个子元素。按照规范<head> 才是和 <body> 相对照、需要加以区别的元素。

 

因此,<html><body> 是父子关系。在 HTML 文档中,:root 选择符对应 <html> 元素。

Html代码  收藏代码
  1. :root {  
  2. }  
  3.   
  4. html {    
  5. }  

 

需要注意的是,:root 选择符(伪类)的优先级大于 html 选择符(0, 0, 1, 0) vs (0, 0, 0, 1)

 

哪些全局样式应该应用在 HTML

Html代码  收藏代码
  1. html {    
  2.   font-size: 62.5%;  
  3. }  
  4.   
  5. body {    
  6.   font-size: 1.4rem; /* =14px */  
  7. }  
  8.   
  9. h1 {    
  10.   font-size: 2.4rem; /* =24px */  
  11. }  

 

古怪的 background-color

CSS 中有一些古怪的行为,将 background-color 应用到 <body> 以后,即便 <body> 里的元素没有占满视口,背景颜色也会蔓延到整个视口

html 设置 background-color 可以解决这个问题。

 

height: 100%

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

Html代码  收藏代码
  1. html,    
  2. body {    
  3.   height: 100%;  
  4. }  

 

 

 

哪些全局样式应该应用在 Body

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

  • background
  • bgcolor
  • marginbottom
  • marginleft
  • marginright
  • margintop
  • text

这些行内属性对应的 CSS 样式应该应用在 <body>

Inline Attribute CSS Property
background background
bgcolor background
background-color
marginbottom margin-bottom
marginleft margin-left
marginright margin-right
margintop margin-top
text font

 

总结

本文列举了一些 <html><body> 在 CSS 中的区别,在 JavaScript 中同样存在区别,例如 html 对应 document.documentElementbody 对应 document.body

了解二者的区别可以帮助我们更有效的编写 CSS。欢迎补充。

 

参考链接

via CSS-Tricks - HTML vs Body in CSS

 

原文:https:///html-vs-body-in-css/

本文转自:CSS: HTML 和 Body 的区别

 

 

 

 

 

 

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多