尝试修改页面背景颜色时仅标题背景变化,寻求技术帮助
解决页面背景颜色无法全局修改的问题
问题根源
- 你给
<html>标签设置了background: yellow;,而<body>默认高度仅包裹自身内容,所以修改body背景色时,只有标题所在的内容区域会变色,页面其余空白区域还是<html>的黄色。 - 你的
random函数存在bug:Math.random是方法,必须加()调用,否则Math.random *255会得到无效值NaN,随机颜色功能根本无法正常工作。
两种修复方案
方案一:直接修改<html>的背景色(最直接)
把JS里修改body背景的逻辑改成操作html元素,这样能覆盖全局背景:
function random(nombre){ l = Math.random() * 255 // 补全Math.random的调用括号 return Math.floor(l) } let btn = document.querySelector("button") btn.onclick = function () { var rndCol = "rgb(" + random(255) + "," + random(255) + "," + random(255) + ")"; document.documentElement.style.background = rndCol; // 修改html元素的背景 }
方案二:让<body>占满整个视口
如果非要修改body的背景,需要先在CSS里让body铺满屏幕,同时清除默认边距:
body { margin: 0; min-height: 100vh; } html{ background: yellow; } /* 其余原有CSS保持不变 */
之后JS里可以继续使用document.body.style.background = rndCol;(记得先修复random函数的括号问题)。
内容的提问来源于stack exchange,提问作者Fi alo
相关产品推荐
相关产品推荐

