Javascript 如何使用JS在每个页面内容之前添加div横幅?
例如,有以下页面:Javascript 如何使用JS在每个页面内容之前添加div横幅?,javascript,html,css,Javascript,Html,Css,例如,有以下页面: <html> <head> <style> .a { background-color: red; } .b { background-color: yellow; } </style> </head> <body> <div class="a">123</div>
<html>
<head>
<style>
.a {
background-color: red;
}
.b {
background-color: yellow;
}
</style>
</head>
<body>
<div class="a">123</div>
<div>456</div>
<script>
var banner = document.createElement("div");
banner.className = "b";
banner.innerHTML = "Banner Content";
var content = document.getElementsByClassName("a")[0];
content.parentNode.insertBefore(banner, content);
</script>
</body>
</html>
如您所见,我只是在第一页项目之前添加了'banner'div。但是这个代码不是通用的;如果项目处于绝对位置,则我的代码不起作用。我需要创建一些JS,它会在页面内容之前为每种情况添加“banner”div。可能吗?提前谢谢 在@Quentin comment上更新了正文中的前置词
可以使用document.body在每个元素之前插入div,如
var banner=document.createElementdiv;
banner.className=b;
banner.innerHTML=横幅内容;
document.body.insertBeforebanner,document.body.childNodes[0];
.a{
背景色:红色;
}
.b{
背景颜色:黄色;
}
123
456在@Quentin comment上更新了正文中的prepend
可以使用document.body在每个元素之前插入div,如
var banner=document.createElementdiv;
banner.className=b;
banner.innerHTML=横幅内容;
document.body.insertBeforebanner,document.body.childNodes[0];
.a{
背景色:红色;
}
.b{
背景颜色:黄色;
}
123
456使用,第一个参数确定相对于目标元素的位置,例如身体的第一个子元素是afterbegin。第二个参数是将呈现为要插入的HTML的字符串,例如横幅内容
第一个参数必须是以下参数之一:
“beforebeagin”:在元素本身之前。
“afterbegin”:就在元素内部,在其第一个子元素之前。
“beforeend”:就在元素内部,在其最后一个子元素之后。
“afterend”:在元素本身之后。
一小条
var target=document.body;
target.insertAdjacentHTMLafterbegin,标题内容;
.a{
背景色:红色;
}
.b{
背景颜色:黄色;
}
123
456
使用时,第一个参数确定相对于目标元素的位置,例如主体的第一个子元素是afterbegin。第二个参数是将呈现为要插入的HTML的字符串,例如横幅内容
第一个参数必须是以下参数之一:
“beforebeagin”:在元素本身之前。
“afterbegin”:就在元素内部,在其第一个子元素之前。
“beforeend”:就在元素内部,在其最后一个子元素之后。
“afterend”:在元素本身之后。
一小条
var target=document.body;
target.insertAdjacentHTMLafterbegin,标题内容;
.a{
背景色:红色;
}
.b{
背景颜色:黄色;
}
123
456
你有没有想过把它写进文件里?身体?你有没有想过把它写进文件里?身体?插入头部和身体之间,这是无效的。如果主体中的元素是绝对定位的,它会工作吗?如果您的元素是定位的,则需要使用更高的z索引和top:0 of.b和position属性使其在每个元素上可见。这将插入主体和主体之间,这是无效的。如果主体中的元素是绝对定位的,它会工作吗?如果您的元素是定位的,那么您需要使用更高的z索引和top:0 of.b和position属性使其在每个元素上可见。如果主体中的元素是绝对定位的,它会工作吗?使您的横幅位置:相对;但是如果不是位置:相对来说,如果横幅与布局的其余部分一起出现在流程中,那么它仍然有效。我不知道将使用哪个站点。它可以是不同的,无论布局如何,都可以工作。我能想到的唯一一件事可能是,如果身体的第一个孩子处于最顶端,并且处于绝对位置。如果横幅已插入且为静态,即正常;位置:静态,则其中一个将与另一个重叠。如果标题是绝对的,那么它应该向下推第一个子项(如果是相对的或绝对的)。这些是常见的风格问题,而你关心的是它是否有效。简单回答:永远。这将是常识,设计您的网页,以便有足够的空间,在第一位的横幅,对吗?它会工作,如果在身体的元素是绝对定位?使您的横幅位置:相对;但是如果不是位置:相对来说,如果横幅与布局的其余部分一起出现在流程中,那么它仍然有效。我不知道将使用哪个站点。它可以是不同的,无论布局如何,都可以工作。我能想到的唯一一件事可能是,如果身体的第一个孩子处于最顶端,并且处于绝对位置。如果横幅已插入且为静态,即正常;位置:静态,则其中一个将与另一个重叠。如果标题是绝对的,那么它应该向下推第一个子项(如果是相对的或绝对的)。这些是常见的风格问题,而你关心的是它是否有效。简单回答:永远。首先,设计页面以便有足够的空间放置横幅是常识,对吗?