繁体   English   中英

造型` <html> CSS中的元素?

[英]Styling the `<html>` element in CSS?

任何人都可以向我解释为什么我们可以设置元素html样式?
它与body什么区别?

我经常看到使用body而不是html教程和多个网站,我只是在使用YUI 3时发现它:CSS重置,因为更改body的背景不起作用。

编辑 实际上,我仍然没有找到相关的问题,当我添加reset.css后,背景变白,当我删除它恢复正常。 然而Chrome检查员说背景是正常的。 顺便说一句,这是主题。 :p
编辑2 :罪魁祸首是doctype。 不知怎的,它在我的样式表中的body样式之后的css-reset渲染中创建了html样式。 也许我应该对此提出一个问题。

Doctype: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

通常,您会发现人们对HTML元素进行样式化,因为它确实会影响页面的呈现方式。

你可能会看到最显着的风格

html,body{
   min-height:101%;
}

这用于确保浏览器(如Firefox)中的滚动条始终显示在页面上。 当在长页和短页之间切换时,这会停止页面左右移动。

我们被允许设置html元素样式的原因是因为它是一个像任何其他元素一样的DOM元素。 所有DOM元素都可以设置为不是容器的样式。 举个例子:

<html><body>This is my page.</body></html>

使用CSS将主体限制为80%宽度,在主体上设置边框并为html提供不同的背景颜色(创建“离页”效果)将是完全可以接受的,保持标记的语义完整而不诉诸于div杂乱。

这是我发现的一种技术,用于将容器(垂直和水平)定心在屏幕上而不使用大量的div或表,甚至不必知道中心容器的大小。

html {
  display:table;
  width:100%;
  height:100%;
}
body {
  display:table-cell;
  vertical-align:middle;
}
body > div {
  # "shrink wraps" the div so you don't have to specify a width.
  # there's probably a better way to do precisely that, but this works.
  display:table; 
  margin:0 auto; # center the div
}

您可以设置html元素的样式(如果您愿意,可以head, title { display: block; } ),但浏览器支持有点弱(IIRC,Internet Explorer <8有问题)。

另外,我会说: <html>本身不是可见元素,它包含语义(例如<head> )和表示数据( <body> )的部分。

另一方面, <body>是可见元素的块,因此可以给出呈现样式。

但是人们确实将样式应用于<html>元素以用于几种情况:(a)因为它的所有子元素都将继承该样式,并且(b)在特殊情况下,例如Jamie Dixon提到的滚动条技巧。

我不相信你可以,但造型<body> 应该适合你

html是整个文档的包含元素,它包含<body> ,它是浏览器呈现的内容, <head>包含您正在查看的页面/文档的元信息。 实际上没有必要能够设置html元素的样式,因为它不是由浏览器呈现的。

但它可以用来构建你的css选择器(例如html div.dataView { color: red }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM