::after 中的线性渐变背景与 div 中的相同

Same linear gradient background in ::after as in div

早上好, 我想要和header一样的背景,这里是line gradient

html, body { margin: 0; background:  #d8dfe9;}
header{position: relative; height: 90px; width: 100%; background: linear-gradient(to right, #045FB4 0%,#00BFFF 100%);}
header:after {content: ''; position: absolute; left: calc(50% - 4.8px); top: 90px; width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-top: 10px solid blue; clear: both; z-index: 1;}
main {position: relative; overflow: auto; ; height: 100vh;}
main #timeline {position: relative; width: 100%; height: 70px; background: white}
<header>
  
</header>
<main>
  <div id="timeline">

  </div>
</main>

拜托,你能帮帮我吗?

最简单的解决方案是使用 clip-path

html,
body {
  margin: 0;
  background: #d8dfe9;
}

header {
  position: relative;
  height: 90px;
  width: 100%;
  background: linear-gradient(to right, #045FB4 0%, #00BFFF 100%);
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% calc(100% - 10px), calc(50% + 10px) calc(100% - 10px), 50% 100%, calc(50% - 10px) calc(100% - 10px), 0% calc(100% - 10px));
clip-path: polygon(0% 0%, 100% 0%, 100% calc(100% - 10px), calc(50% + 10px) calc(100% - 10px), 50% 100%, calc(50% - 10px) calc(100% - 10px), 0% calc(100% - 10px));
}
<header>

</header>

或者如果你想要比 clip-path 更好的支持但没有透明度,你可以使用更多的渐变:

html,
body {
  margin: 0;
  background: #d8dfe9;
}

header {
  position: relative;
  height: 90px;
  width: 100%;
  background: linear-gradient(to right, #045FB4 0%, #00BFFF 100%) fixed;
  position:relative;
}
header:before {
  content:"";
  position:absolute;
  width:20px;
  height:10px;
  top:100%;
  right:calc(50% - 10px);
  background:
   linear-gradient(to bottom left,transparent 49%,#d8dfe9 50.5%) left/50% 100% no-repeat,
   linear-gradient(to bottom right,transparent 49%,#d8dfe9 50.5%) right/50% 100% no-repeat,
   linear-gradient(to right, #045FB4 0%, #00BFFF 100%) fixed;
}
<header>

</header>