2016-12-22 14 views
1

私はうまくいけば、私はちょうど私の頭の中でovercomplicatingしている簡単な問題があります。あなたがフライアウトメニューの設定が表示されます上記のフィドルで空白:ノーラップフロート問題

Here is a Fiddle to demonstrate my issue.

。上のオプションでは、フロートが壊れている最初の拡大オプションが表示されます。これが私の問題です。 私は、それらを保持するリストコンテナを壊すことなく、互いに並んで浮動する必要があります。

私はwhite-space:nowrapがそのコンテナのスペースを壊していることを理解していますが、その要素を削除しようとするたびに私はフロートを尊重することができません。私はこれを取り巻くものを考えているので、これが私の部分では簡単に欠けていると確信していますが、これに関する進歩は高く評価され、うまくいけば誰かのために簡単です。

CSS:

.clearfix:after { 
 
    visibility: hidden; 
 
    display: block; 
 
    font-size: 0; 
 
    content: " "; 
 
    clear: both; 
 
    height: 0; 
 
    } 
 
.clearfix { display: inline-block; } 
 
/* start commented backslash hack \*/ 
 
* html .clearfix { height: 1%; } 
 
.clearfix { display: block; } 
 
/* close commented backslash hack */ 
 

 
#nav{margin:0;padding:0;position:relative;float:left;} 
 
#nav li {list-style:none;} 
 
#nav a { 
 
    color:#fff; 
 
    display:block; 
 
    line-height:2.4; 
 
    padding:0 1em; 
 
    text-decoration:none; 
 
    border-bottom:1px solid #eee; 
 
} 
 
     /* FLYOUT */ 
 
     .sub { 
 
     top:0; 
 
     margin:0; 
 
     padding:0; 
 
     left:100%; 
 
     display:none; 
 
     min-height:100%; 
 
     position:absolute; 
 
     white-space:nowrap; 
 
     border-left:2px solid #eee; 
 
     } 
 
     #nav li:hover .sub { 
 
     display:block; 
 
     } 
 

 
     #nav li:hover .sub .sub { 
 
      display:none; 
 
     } 
 

 
      #nav .sub li:hover .sub{ 
 
      display:block; 
 
      } 
 

 
     .sub a:hover { 
 
     color:#fff; 
 
     background:#333; 
 
     } 
 
     
 
     .sub img { min-width:120px; float:left; } 
 
     .sub .content { float:left; } 
 

 

 
/*-- COLORS NOT NEEDED ON LIVE--*/ 
 
.first{background:#aaa;} 
 
.second {background:#bbb;} 
 
.third {background:#ccc;} 
 
.fourth {background:#ddd;} 
 
.fifth {background:#aaa;} 
 
.sixth {background:#bbb;} 
 
.seventh {background:#ccc;} 
 
.eighth {background:#ddd;} 
 
.nineth {background:#aaa;} 
 
.tenth {background:#bbb;} 
 
.all {background:#000}
<div id="nav"> 
 
    <li><a class="first" href="#">Level 1 Option</a> 
 
     <ul class="sub first"> 
 
      <li class="clearfix"><a href="#"> 
 
      <div class="float"> 
 
      <img src="https://placeholdit.imgix.net/~text?txtsize=20&txt=120%C3%9780&w=120&h=80" alt=""></div> 
 
      <div class=""> 
 
       <h5>This will be a title</h5> 
 
       <p> 
 
       <strong>Sub-title</strong><br> 
 
       Specs<br> 
 
       <strong>Sub-title</strong><br> 
 
       Specs 
 
       </p> 
 
      </div> 
 
      </a> 
 
      <ul class="sub first"> 
 
       <li><a href="#">Option 1</a></li> 
 
       <li><a href="#">Option 1</a></li> 
 
       <li><a href="#">Option 1</a></li> 
 
       <li><a href="#">Option 1</a></li> 
 
      </ul> 
 
      </li> 
 
      <li><a href="#">Option 2</a> 
 
      <ul class="sub first"> 
 
       <li><a href="#">Option 2</a></li> 
 
       <li><a href="#">Option 2</a></li> 
 
       <li><a href="#">Option 2</a></li> 
 
       <li><a href="#">Option 2</a></li> 
 
      </ul> 
 
      </li> 
 
     </ul> 
 
     </li> 
 
    <li><a class="second" href="#">Level 1 Option</a> 
 
     <ul class="sub second"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
     </ul> 
 
    </li> 
 
    <li><a class="third" href="#">Level 1 Option</a> 
 
     <ul class="sub third"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
     </ul> 
 
    </li> 
 
    <li><a class="fourth" href="#">Level 1 Option</a> 
 
     <ul class="sub fourth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li>   
 
     </ul> 
 
    </li> 
 
    <li><a class="fifth" href="#">Level 1 Option</a> 
 
     <ul class="sub fifth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li>   
 
     </ul> 
 
    </li> 
 
    <li><a class="sixth" href="#">Level 1 Option</a> 
 
     <ul class="sub sixth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li>   
 
     </ul> 
 
    </li> 
 
    <li><a class="seventh" href="#">Level 1 Option</a> 
 
     <ul class="sub seventh"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li>   
 
     </ul> 
 
    </li> 
 
    <li><a class="eighth" href="#">Light Duty</a> 
 
     <ul class="sub eighth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li>   
 
     </ul> 
 
    </li> 
 
    <li><a class="ninth" href="#">Level 1 Option</a> 
 
     <ul class="sub ninth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li>   
 
     </ul> 
 
    </li> 
 
    <li><a class="tenth" href="#">Level 1 Option</a> 
 
     <ul class="sub tenth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li>   
 
     </ul> 
 
    </li> 
 
    <li><a class="all" href="#">View All</a> 
 
    </li> 
 
</div>

+0

お詫び申し上げます。更新しました。 – Cutter

+0

120x80イメージをラップする 'float'クラスが割り当てられているのと同じ' div'にクラス 'clearfix'を割り当ててください。画像の下にコンテンツをプッシュします。これはあなたの問題を解決しますか? – Pegues

+0

@Peguesいいえ、正しい位置に浮いています。私はコンテナが代わりにそれをラップすることを望みます。 – Cutter

答えて

2

これを参照してくださいfiddle

希望するレイアウトを達成する方法の1つは、イメージコンテナと見出し/サブ見出しのコンテナの両方にinline-blockを設定することです。

vertical-align: top;は、2つのコンテナが上端に揃うようにするために必要です。

簡潔にするために、私はあなたの既存のfloatクラスを維持しました。 (このクラスは、見出し/副題/スペックのコンテナに追加する必要があります)。

.float { 
    display: inline-block; 
    vertical-align: top; 
} 
3

フロートdiv要素内の画像を形成する左フロートを削除します。そこにいくつかの余白を追加します。

CSS:

.sub img { 
    min-width: 120px; 
    /* float: left; */ //Remove this line 
    margin-top: 10px; 
} 
+1

私はまったく同じ修正をあげようとしていました! – Dexter0015

+0

私はテキストの横に画像を浮かせるようにしています。その下にテキストはありません。 – Cutter

+0

その場合、そのテキストの適切な場所を作るためにイメージの最小幅を削除する必要があります。 div floatとtext divには 'display:inline-block'を使用してください。幅を50%にします。 @Cutter – Taniya

1

このコードを確認してください、私はあなたがこのために探している、あなたは私が新しい部門を追加した.subの幅を設定する必要があると

.float , .inline-block { 
    display:inline-block; 
    vertical-align:top; 
} 

をいくつかのプロパティを追加していけないと思います

.clearfix:after { 
 
\t visibility: hidden; 
 
\t display: block; 
 
\t font-size: 0; 
 
\t content: " "; 
 
\t clear: both; 
 
\t height: 0; 
 
} 
 
.clearfix { 
 
\t display: inline-block; 
 
} 
 
/* start commented backslash hack \*/ 
 
* html .clearfix { 
 
\t height: 1%; 
 
} 
 
.clearfix { 
 
\t display: block; 
 
} 
 
/* close commented backslash hack */ 
 

 
#nav { 
 
\t margin: 0; 
 
\t padding: 0; 
 
\t position: relative; 
 
\t float: left; 
 
} 
 
#nav li { 
 
\t list-style: none; 
 
} 
 
#nav a { 
 
\t color: #fff; 
 
\t display: block; 
 
\t line-height: 2.4; 
 
\t padding: 0 1em; 
 
\t text-decoration: none; 
 
\t border-bottom: 1px solid #eee; 
 
} 
 
/* FLYOUT */ 
 
.sub { 
 
\t top: 0; 
 
\t margin: 0; 
 
\t padding: 0; 
 
\t left: 100%; 
 
\t display: none; 
 
\t min-height: 100%; 
 
\t position: absolute; 
 
\t white-space: nowrap; 
 
\t border-left: 2px solid #eee; 
 
} 
 
#nav li:hover .sub { 
 
\t display: block; 
 
} 
 
#nav li:hover .sub .sub { 
 
\t display: none; 
 
} 
 
#nav .sub li:hover .sub { 
 
\t display: block; 
 
} 
 
.sub a:hover { 
 
\t color: #fff; 
 
\t background: #333; 
 
} 
 
.sub img { 
 
\t min-width: 120px; 
 
\t float: left; 
 
} 
 
.sub .content { 
 
\t float: left; 
 
} 
 
/*-- COLORS NOT NEEDED ON LIVE--*/ 
 
.first { 
 
\t background: #aaa; 
 
} 
 
.second { 
 
\t background: #bbb; 
 
} 
 
.third { 
 
\t background: #ccc; 
 
} 
 
.fourth { 
 
\t background: #ddd; 
 
} 
 
.fifth { 
 
\t background: #aaa; 
 
} 
 
.sixth { 
 
\t background: #bbb; 
 
} 
 
.seventh { 
 
\t background: #ccc; 
 
} 
 
.eighth { 
 
\t background: #ddd; 
 
} 
 
.nineth { 
 
\t background: #aaa; 
 
} 
 
.tenth { 
 
\t background: #bbb; 
 
} 
 
.all { 
 
\t background: #000 
 
} 
 
.float , .inline-block { 
 
\t display:inline-block; 
 
\t vertical-align:top; 
 
}
<div id="nav"> 
 
    <li><a class="first" href="#">Level 1 Option</a> 
 
    <ul class="sub first"> 
 
     <li class="clearfix"><a href="#"> 
 
     <div class="float"> <img src="https://placeholdit.imgix.net/~text?txtsize=20&txt=120%C3%9780&w=120&h=80" alt=""></div> 
 
     <div class="inline-block"><h5>This will be a title</h5></div> 
 
     <div class=""> 
 
      <p> <strong>Sub-title</strong><br> 
 
      Specs<br> 
 
      <strong>Sub-title</strong><br> 
 
      Specs </p> 
 
     </div> 
 
     </a> 
 
     <ul class="sub first"> 
 
      <li><a href="#">Option 1</a></li> 
 
      <li><a href="#">Option 1</a></li> 
 
      <li><a href="#">Option 1</a></li> 
 
      <li><a href="#">Option 1</a></li> 
 
     </ul> 
 
     </li> 
 
     <li><a href="#">Option 2</a> 
 
     <ul class="sub first"> 
 
      <li><a href="#">Option 2</a></li> 
 
      <li><a href="#">Option 2</a></li> 
 
      <li><a href="#">Option 2</a></li> 
 
      <li><a href="#">Option 2</a></li> 
 
     </ul> 
 
     </li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="second" href="#">Level 1 Option</a> 
 
    <ul class="sub second"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="third" href="#">Level 1 Option</a> 
 
    <ul class="sub third"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="fourth" href="#">Level 1 Option</a> 
 
    <ul class="sub fourth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="fifth" href="#">Level 1 Option</a> 
 
    <ul class="sub fifth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="sixth" href="#">Level 1 Option</a> 
 
    <ul class="sub sixth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="seventh" href="#">Level 1 Option</a> 
 
    <ul class="sub seventh"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="eighth" href="#">Light Duty</a> 
 
    <ul class="sub eighth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="ninth" href="#">Level 1 Option</a> 
 
    <ul class="sub ninth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="tenth" href="#">Level 1 Option</a> 
 
    <ul class="sub tenth"> 
 
     <li><a href="#">Option 1</a></li> 
 
     <li><a href="#">Option 2</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a class="all" href="#">View All</a> </li> 
 
</div>

+0

あなたの答えJishnuありがとうございます。この回答も受け入れられますが、上記のコメントでTuriはあなたにそれを打つだけでした。 – Cutter

+0

@カッター問題なし、私の英語はうまくいかない –

関連する問題