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属性使其在每个元素上可见。如果主体中的元素是绝对定位的,它会工作吗?使您的横幅位置:相对;但是如果不是位置:相对来说,如果横幅与布局的其余部分一起出现在流程中,那么它仍然有效。我不知道将使用哪个站点。它可以是不同的,无论布局如何,都可以工作。我能想到的唯一一件事可能是,如果身体的第一个孩子处于最顶端,并且处于绝对位置。如果横幅已插入且为静态,即正常;位置:静态,则其中一个将与另一个重叠。如果标题是绝对的,那么它应该向下推第一个子项(如果是相对的或绝对的)。这些是常见的风格问题,而你关心的是它是否有效。简单回答:永远。这将是常识,设计您的网页,以便有足够的空间,在第一位的横幅,对吗?它会工作,如果在身体的元素是绝对定位?使您的横幅位置:相对;但是如果不是位置:相对来说,如果横幅与布局的其余部分一起出现在流程中,那么它仍然有效。我不知道将使用哪个站点。它可以是不同的,无论布局如何,都可以工作。我能想到的唯一一件事可能是,如果身体的第一个孩子处于最顶端,并且处于绝对位置。如果横幅已插入且为静态,即正常;位置:静态,则其中一个将与另一个重叠。如果标题是绝对的,那么它应该向下推第一个子项(如果是相对的或绝对的)。这些是常见的风格问题,而你关心的是它是否有效。简单回答:永远。首先,设计页面以便有足够的空间放置横幅是常识,对吗?