【问题标题】:CSS: How to Control Sidebar Background Color using z-indexCSS:如何使用 z-index 控制侧边栏背景颜色
【发布时间】:2014-07-17 06:31:36
【问题描述】:

以下是我想要实现的目标的摘要:

  1. 我有一个背景色为棕褐色的包装 div。

  2. 包装器 div 有 2 个子级。侧边栏 div 和内容 div。这两个孩子都包含链接。

  3. 侧边栏 div 需要灰色背景色。

我创建了一个侧边栏:before 伪元素,z-index 为-1。这个伪元素消失了。当我将 z-index 更改为 0 时,这个元素被放置在侧边栏 div 的顶部,并且我的侧边栏信息被隐藏了。

我添加了一些示例代码,例如these:


<div class="wrap">
 <div class="sidebar">
     <p><a href="www.google.com">sidebar</a></p>
     <p><a href="www.google.com">sidebar</a></p>
     <p><a href="www.google.com">sidebar</a></p>
     <p><a href="www.google.com">sidebar</a></p>
     <p><a href="www.google.com">sidebar</a></p>
     <p><a href="www.google.com">sidebar</a></p>
     <p><a href="www.google.com">sidebar</a></p>
     <p><a href="www.google.com">sidebar</a></p>
     <p><a href="www.google.com">sidebar</a></p>
     <p><a href="www.google.com">sidebar</a></p>
 </div>
 <div class="content">
     <p><a href="www.google.com">content</a></p>
     <p><a href="www.google.com">content</a></p>
     <p><a href="www.google.com">content</a></p>
     <p><a href="www.google.com">content</a></p>
     <p><a href="www.google.com">content</a></p>
     <p><a href="www.google.com">content</a></p>
     <p><a href="www.google.com">content</a></p>
     <p><a href="www.google.com">content</a></p>
     <p><a href="www.google.com">content</a></p>
     <p><a href="www.google.com">content</a></p>
 </div>
</div>


.wrap {
  position:relative;
  background-color:tan;
}

.sidebar, .sidebar:before {
  width:25%;
}
.sidebar {
  float:left;
  color: #ebeef3;
  font-size: 90%;
}
.sidebar:before {
  content: '';
  position:absolute;
  top: 0;
  bottom: 0;
  z-index: -1;
  left: 0;
  background-color: #5f6673;
}

此代码基于显示在等高列上的great tutorial

【问题讨论】:

  • 我忽略了一个重点。无论每个 div 包含什么,侧边栏和内容高度都必须相同。这就是为什么必须在伪元素中设置背景颜色的原因,它的高度被拉伸到 wrap div 的高度。

标签: css colors z-index


【解决方案1】:

大多数开发人员可以按原样遵循 TutsPlus 教程,并且它会起作用。 (问题中提供了链接。)但是,在 Drupal 网站上,.l-content div 元素的位置属性有时设置为相对,有时保留为默认值。所以我们不能使用教程使用的 .content 伪元素。所以我稍微改变了css如下:

.wrap:before {
    width:75%;
}

.wrap {
    position:relative;
}

.wrap:before {
    content: '';
    position:absolute;
    top: 0;
    bottom: 0;
    z-index: -1;
    left: 25%;
    background-color:tan;
}

.sidebar, .sidebar:before {
    width:25%;
}
.sidebar {
    float:left;
    color: #ebeef3;
    font-size: 90%;
}
.sidebar:before {
    content: '';
    position:absolute;
    top: 0;
    bottom: 0;
    z-index: -1;
    left: 0;
    background-color: #5f6673;
}

我添加了一些示例代码here

我正在使用 Drupal 7 / Omega 4 / SASS / Compass / Ruby。

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    相关资源
    最近更新 更多