html - 子菜单上的渐变与主菜单上的颜色相同

标签 html css linear-gradients

我有一个背景渐变的菜单行。我想将子菜单元素的样式设置为与主菜单相同,以便渐变颜色匹配。此外,当页面宽度发生变化时,颜色也会更新。

例如,当 Item #1 的渐变为红色->白色时,子菜单也一样。下一个 Item #2 有渐变白色->粉色,所以子菜单有相同的...等等

有什么方法可以只用 CSS 来实现吗?

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code><style>
ul > li {display: block; float: left; margin-right: 10px; position: relative; padding: 1em; line-height: 1em}
ul ul {display: none; width: 150px; position:absolute; top: 2em; left: 0}
ul ul > li {float: none;}
ul > li:hover > ul,
ul > a:hover + ul {display: block}
.main {
  background-image: linear-gradient(to right, red, white, pink, orange, yellow, green);
  height: 50px;
}
ul li ul li{
  background-image: linear-gradient(to right, red, white, pink);
  height: 50px;
}
</style>
<ul class="main">
  <li>
    <a href="#">Item #1</a>
    <ul>
      <li><a href="">Sub-Item #1</a></li>
      <li><a href="">Sub-Item #2</a></li>
      <li><a href="">Sub-Item #3</a></li>
    </ul>
  </li>
  <li>
    <a href="#">Item #2</a>
    <ul>
      <li><a href="">Sub-Item #4</a></li>
      <li><a href="">Sub-Item #5</a></li>
      <li><a href="">Sub-Item #6</a></li>
    </ul>
  </li>
  <li>
    <a href="#">Item #3</a>
    <ul>
      <li><a href="">Sub-Item #7</a></li>
      <li><a href="">Sub-Item #8</a></li>
      <li><a href="">Sub-Item #9</a></li>
    </ul>
  </li>
</ul></code></pre>
</div>
</div>

这里是 http://jsfiddle.net/2rfvyq03/2/ enter image description here

最佳答案

你可以更新你的CSS

ul li ul li{
  background-image: linear-gradient(to right, red, white, pink,orange, yellow, green);
  height: 50px;
}

ul > li {display: block; float: left; margin-right: 10px; position: relative; padding: 1em; line-height: 1em}
ul ul {display: none; width: 150px; position:absolute; top: 2em; left: 0}
ul ul > li {float: none;}
ul > li:hover > ul,
ul > a:hover + ul {display: block}
.main {
  background-image: linear-gradient(to right, red, white, pink, orange, yellow, green);
  height: 50px;
}
ul li ul li{
  background-image: linear-gradient(to right, red, white, pink,orange, yellow, green);
  height: 50px;
}
<ul class="main">
  <li>
    <a href="#">Item #1</a>
    <ul>
      <li><a href="">Sub-Item #1</a></li>
      <li><a href="">Sub-Item #2</a></li>
      <li><a href="">Sub-Item #3</a></li>
    </ul>
  </li>
  <li>
    <a href="#">Item #2</a>
    <ul>
      <li><a href="">Sub-Item #4</a></li>
      <li><a href="">Sub-Item #5</a></li>
      <li><a href="">Sub-Item #6</a></li>
    </ul>
  </li>
  <li>
    <a href="#">Item #3</a>
    <ul>
      <li><a href="">Sub-Item #7</a></li>
      <li><a href="">Sub-Item #8</a></li>
      <li><a href="">Sub-Item #9</a></li>
    </ul>
  </li>
</ul>

http://jsfiddle.net/MadhawaMB/2rfvyq03/3/

关于html - 子菜单上的渐变与主菜单上的颜色相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963645/

相关文章:

html - 在 chrome 中自动打印/将网页保存为 pdf - python 2.7

javascript - 字符串处理功能仅在IE中无法正常工作

html - 如何将背景视频添加到html页面?

html - 输入时 div 重复

CSS:重复动画背景

css - 如何用线性渐变绘制完美的对 Angular 线

php - 检查是否在 php 中选中了复选框

html - 当显示 :inline breaks a paragraph? 的 div 时发生了什么

javascript - 如何防止点击 '#'链接跳转但仍执行其余代码

CSS 边框图像渐变在 Safari 5.1.7 中不起作用