为什么只有当html标记没有设置background-color属性时,html标记才会获取body标记的背景

时间:2017-07-08 03:43:10

标签: html css background

所以我注意到,当backgroundbackground-color属性存在htmlbackground属性时,我从background-color选择器中移除了bodybackground属性background-color选择器,正文的背景占据了整个屏幕。

但是,如果为html标记设置了backgroundhtml属性,则正文body属性仅影响屏幕部分身体占据,AKA身体的内容占用,而不是整个屏幕。

这是什么原因(错误,决定......),现在我是否必须同时为public function render($request, Exception $e) { if ($this->isHttpException($e)) { if ($e->getStatusCode() == 404) return redirect()->guest('home'); if ($e->getStatusCode() == 500) return redirect()->guest('home'); } return parent::render($request, $e); } static class MyTask extends AsyncTask<Void, Void, Void> { // Weak references will still allow the Activity to be garbage-collected private final WeakReference<Activity> weakActivity; MyTask(Activity myActivity) { this.weakActivity = new WeakReference<>(myActivity); } @Override public Void doInBackground(Void... params) { // do async stuff here } @Override public void onPostExecute(Void result) { // Re-acquire a strong reference to the activity, and verify // that it still exists and is active. Activity activity = weakActivity.get(); if (activity == null || activity.isFinishing() || activity.isDestroyed()) { // activity is no longer valid, don't do anything! return; } // The activity is still valid, do main-thread stuff here } } 设置背景?谢谢。

1 个答案:

答案 0 :(得分:1)

这是设计的。

根据W3C Colors and backgrounds页面,

  

但是,对于HTML文档,我们建议作者指定BODY元素的背景而不是HTML元素。对于其根元素为HTML“HTML”元素或XHTML“html”元素的文档,其中“background-color”的计算值为“transparent”,而“background-image”的计算值为“none”,则用户代理必须使用在为画布绘制背景时,从该元素的第一个HTML“BODY”元素或XHTML“body”元素子元素计算背景属性的值,并且不得为该子元素绘制背景。

或者,tl; dr:单独留下<html>的背景,仅对主体进行样式设置将导致将背景分配给整个文档。这是建议。

原因可能是出于兼容性原因。很久以前,<body>元素也扮演了画布的角色,而<html>元素并没有真正拥有自己的任何属性。因此,您可以为bgcolor(但不是<body>)分配<html>属性,这将成为画布背景。

你最后一个问题的答案是:只有你愿意。在大多数情况下,根本没有样式化<html>就足够了。除特殊情况外,例如如果你想要在身体周围涂上不同颜色的边缘,就像你注意到的那样。

仅限<body>的背景示例:

body {background:lime}
Hello world

<html><body>的不同背景示例:

html {background:orange}
body {background:lime}
Hello world