0

純粋な CSS でドロップダウンのマルチレベル ナビゲーション メニュー バーを構築しようとしていました。これがコードです(私はそれが醜いことを知っています):

<!DOCTYPE HTML>
<html>
<head>
 <title>Menu</title>
 <style>
 * {
  margin: 0;
  padding: 0
 }
 ul {
  list-style: none
 }
 li {
  float: left;
  width: 120px;
  height: 20px;
  background: pink
 }
 li > ul {
  display: none
 }
 li:hover > ul {
  display: block;
  position: relative;
  top: -20px;
  left: 120px;
  background: red
 }
 #nav > li:hover > ul {
  top: 0px;
  left: 0px
 }
 li:hover {
  background: red
 }
 </style>
</head>
<body>
 <ul id="nav">
  <li>1
   <ul>
    <li>1.1
     <ul>
      <li>1.1.1
       <ul>
        <li>1.1.1.1</li>
        <li>1.1.1.2</li>
        <li>1.1.1.3</li>
        <li>1.1.1.4</li>
       </ul>
      </li>
      <li>1.1.2</li>
      <li>1.1.3</li>
     </ul>
    </li>
    <li>1.2</li>
    <li>1.3</li>
    <li>1.4</li>
    <li>1.5</li>
   </ul>
  </li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
 </ul>
</body>
</html>

コードは Firefox20 では問題なく動作しますが、IE10 では上に 1 ピクセル、Chrome26 では下に 1 ピクセルずれています。ブラウザがリストのレイアウトを異なる方法でレンダリングするためだと思います。どんな助けでも大歓迎です!

jsFiddle デモ

4

1 に答える 1

0

ブラウザの設定スタイルをクリアするために、スタイルシートのリセットから始めることをお勧めします。次に、各ブラウザは平等な競争の場から始まります。ブラウザーは、リストを異なる方法でレンダリングしません。

スタイルシートのリセットの詳細については、http://meyerweb.com/eric/tools/css/reset/ を参照してください。

于 2013-04-09T02:50:08.787 に答える