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

あなたの例が HTML ではないことを除けば、とにかく概念的なアプローチを修正します。このようなタスクには jQuery は必要なく、完全に CSS で実行できます。

  1. #panelまず最初に、あなたの になる sを含む a<ul>を含める必要があります。これらは として設定する必要があります。<li><panel-entry>inline-block

  2. はそれらの#settings1 つである必要があり、おそらく特別なclassorがありidます (ここでは設定を保持します)。あなたはposition: absoluteこれをすることができますright: 0、またはそれを持っていfloatます。これには画像要素を使用しないでくださいbackground-image

  3. この要素内には、サブメニューがあります。つまり、Xが<ul>あなたの.display: noneposition:absoluteright: 0top: X#panel

  4. 次に、 の で要素を表示できるようにし:hoverます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 に答える