You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome扩展注入的Div被页面元素遮挡,求通用置顶CSS方案

Fixing Your Injected Div's Visibility on Quora

Hey there! I’ve run into this exact issue before with sticky headers on sites like Quora—your injected div gets buried under the site’s fixed header because that header has a high z-index and locked positioning. Let’s fix this with robust CSS that’ll keep your div perched on top of everything.

The Core CSS You Need

The magic lies in combining fixed positioning with a sky-high z-index to outrank other page elements. Here’s what each style does:

  • position: fixed: Takes the div out of the normal document flow, so it stays glued to the viewport even when scrolling.
  • top: 0; left: 0: Anchors the div to the top-left corner of the screen.
  • width: 100%: Makes it span the full viewport width (adjust this if you don’t want full-width).
  • z-index: 99999: Ensures it sits above almost any other element—most site headers use z-index values in the hundreds or low thousands, so this will dominate.
  • background-color: Prevents transparency, so content behind the div doesn’t peek through (pick a color that fits your use case).
  • box-sizing: border-box: Makes sure padding doesn’t add extra width to the div (avoids horizontal scrolling surprises).

Modified JS Code (With Inline Styles)

Update your injection code to include these critical styles directly:

const div = document.createElement('div');
div.id = 'suman-per-tab-controls';
div.innerHTML = '<b>foooooo</b>';

// Apply styles to keep the div on top
div.style.position = 'fixed';
div.style.top = '0';
div.style.left = '0';
div.style.width = '100%';
div.style.zIndex = '99999';
div.style.backgroundColor = '#ffffff'; // White background to cover page content behind
div.style.padding = '12px 16px'; // Add padding for readability
div.style.boxSizing = 'border-box';
div.style.boxShadow = '0 2px 4px rgba(0,0,0,0.1)'; // Optional: Subtle shadow to separate from the page

// Optional: Adjust body padding so page content doesn't get hidden under your div
document.body.style.paddingTop = `${div.offsetHeight}px`;

document.body.prepend(div);

Alternative: Inject a Global Style Sheet

If you prefer cleaner code (or need to add more styles later), inject a <style> tag instead:

// First, add global styles
const styleSheet = document.createElement('style');
styleSheet.textContent = `
#suman-per-tab-controls {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 99999;
  background-color: #fff;
  padding: 1rem;
  box-sizing: border-box;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* Adjust body padding to avoid content overlap */
body {
  padding-top: 60px !important; /* Match this to your div's height */
}
`;
document.head.appendChild(styleSheet);

// Then create and insert your div
const div = document.createElement('div');
div.id = 'suman-per-tab-controls';
div.innerHTML = '<b>foooooo</b>';
document.body.prepend(div);

Quick Notes

  • Z-Index Tweaks: If Quora ever updates their header to use a higher z-index, just bump your value up (e.g., 999999—no hard limits here).
  • Dynamic Height: If your div’s height changes (with dynamic content), use JavaScript to recalculate and update body.style.paddingTop whenever the height shifts.
  • Styling Flexibility: Mess with background-color, padding, or box-shadow to match your extension’s design—these are just sensible defaults.

This should keep your div visible at the top of the page, even above Quora’s sticky header.

内容的提问来源于stack exchange,提问作者Alexander Mills

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:46:25