0

我有一个固定位置(顶部面板)的 div,它还应在最右侧包含一个设置菜单(当前通过浮动)。

将鼠标悬停在设置图像上时,我想在图像下方显示一个菜单。我希望菜单像图像一样与右侧对齐。

<div id="panel" style="position:fixed">
  <panel-entry 1>
  <panel-entry 2>
  <panel-entry n>

  <div id="settings" style="float:right/snapped to the right side>
    <img src=settings>
    <ul>
      <li>setting 1</li>
      <li>setting 2</li>
      <li>setting n</li>
    </ul>
  </div>
</div>

非常感谢任何使用 jQuery 的想法,请随时重新排列任何 html。

4

2 回答 2

1

不需要 jQuery,只需给你#panel一个宽度:

#panel {
  position: fixed;
  width: 100%;
}
#settings {
  float: right;
}

演示

于 2013-03-15T22:50:05.590 回答
1

除了您的示例不是 HTML之外,我无论如何都会纠正概念方法。这样的任务不需要 jQuery,可以完全在 CSS 中完成。

  1. 你希望你#panel首先包含一个<ul>将包含<li>s,这将是你的<panel-entry>,那些应该设置为inline-block

  2. 应该是其中#settings之一,可能带有特殊的classid(我们现在将保留设置)。你可以position: absolute这样来right: 0,或者拥有它float。不要为此使用图像元素,而是使用background-image.

  3. 在此元素内,您将有一个子菜单:即另一个<ul>带有display: none、 a和的子菜单position:absolute,因此 X 不会与您的.right: 0top: X#panel

  4. 接下来,您要使元素在:hoverof上可见li#settings

Here's a working demo

基本 HTML

<div id="panel">
  <ul>
      <li>Panel entry 1</li>
      <li>Panel entry 2</li>
      <li>Panel entry n</li>
      <li id="settings">

        <ul>
          <li>setting 1</li>
          <li>setting 2</li>
          <li>setting n</li>
        </ul>

      </li>
  </ul>
</div>

基本 CSS

#panel {
  position: fixed;
  top: 0;
  width: 100%;
}

#panel > ul > li {
  display: inline-block;
}

#panel > ul > li > ul {
  display: none;
  position: absolute;
  top: {X};
  right: 0;
}

li#settings {

  background: url({youricon}) no-repeat top center;
  position: absolute;
  right: 0;
  min-width: {youricon-x};
  min-height: {youricon-y};
}

li#settings:hover > ul{

  display: block;

}
于 2013-03-15T23:34:15.040 回答