2015-04-14 156 views
2

我正在嘗試重新設計一個幾年前爲我工作的公司創建的網站。通常我不會用現有的HTML/CSS重新設計網站。但今天我有點麻煩。也許我只需要更多的咖啡,但這是我的問題。HTML/CSS佈局問題

我試圖讓#CSSmenu浮動左邊,並且.promo和.quote浮動右邊。看來#CSSmenu正在阻止他們漂浮在右邊。他們被迫到div的底部,就好像#CSSmenu的總寬度佔用整個包裝950px

我附上了一個模擬,以更好地解釋我想要做什麼以及代碼。我有一種感覺,這是在CSS中的某個地方這樣做的,但是因爲我之前沒有設計網站,所以我在查找它時沒有任何評論,有點麻煩。

http://postimg.org/image/ypwpe0fpl/

<div class="content_width"> <!-- Control Width of wrapper for content --> 


     <div id='cssmenu'> <!-- Containter For Nav Menu --> 
    <ul> 
     <li>Browse Our Products</li> <!--List Title--> 

     <li><a href='#'>Business Cards</a></li> 
     <li class='active has-sub'><a href='#'>Stationary</a> 
      <ul> 
      <li class=''><a href='#'>Letter Head</a></li> 
      <li class=''><a href='#'>Envelopes</a></li> 
      <li class=''><a href='#'>Labels</a></li> 
      <li class=''><a href='#'>Note Pads</a></li> 
      </ul> 
      </li> 
     <li><a href='#'>Brochures</a></li> 

     <li class='active has-sub'><a href='#'>Signage</a> 
      <ul> 
      <li class=''><a href='#'>Signs</a></li> 
      <li class=''><a href='#'>Yard signs</a></li> 
      <li class=''><a href='#'>Trade Show Graphics</a></li> 
      <li class=''><a href='#'>X-Frame With Banners</a></li> 
      </ul> 
      </li> 
     <li><a href='#'>Post Cards</a></li> 
     <li><a href='#'>Vinyl Banners</a></li> 

     <li class='active has-sub'><a href='#'>Mailing Services</a> 
      <ul> 
      <li class=''><a href='#'>Ink Jet</a></li> 
      <li class=''><a href='#'>Direct Mailing</a></li> 
      <li class=''><a href='#'>Sorting & Tabbing</a></li> 
      <li class=''><a href='#'>Mailing List</a></li> 
      </ul> 
      </li> 

     <li class='active has-sub'><a href='#'>Marketing Material</a> 
      <ul> 
      <li class=''><a href='#'>Greeting Cards</a></li> 
      <li class=''><a href='#'>Rock Cards</a></li> 
      <li class=''><a href='#'>Brochures</a></li> 
      <li class=''><a href='#'>Book Marks</a></li> 
      <li class=''><a href='#'>Presentation Folders</a></li> 
      </ul> 
      </li> 
     <li class='active has-sub'><a href='#'>Speciality Products</a> 
      <ul> 
      <li class=''><a href='#'>Magnets</a></li> 
      <li class=''><a href='#'>T-Shirts (Heat Transfer Imaging)</a></li> 
      <li class=''><a href='#'>Bumper Stickers</a></li> 
      <li class=''><a href='#'>Plastic</a></li> 
      <li class=''><a href='#'>Static Cling</a></li> 
      </ul> 
      </li> 
     <li><a href='#'>Apparel</a> </li> 
    </ul> 
    <div class="promo"> 
     Promo 1 
    </div> 

    <div class="quote"> 
    Quote 1 
    </div> 


    </div><!-- End of Content Wrapper --> 

    </div> <!-- End of CSS Menu--> 


<style> 
/* Added CSS by Darius Shojaei for Content Body */ 

#cssmenu, 
#cssmenu ul, 
#cssmenu ul li, 
#cssmenu ul li a { 
    margin: 0; 
    padding: 0; 
    border: 0; 
    list-style: none; 
    line-height: 1; 
    display: block; 
    position: relative; 
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
} 
#cssmenu { 
    font-family: Roboto, sans-serif; 
} 
#cssmenu > ul { 
    width: 180px; 
    background: #ffffff; 
} 
#cssmenu > ul > li > a { 
    padding: 12px 15px; 
    font-size: 14px; 
    color: #666666; 
    font-weight: 700; 
    text-decoration: none; 
    -webkit-transition: color .2s ease; 
    -o-transition: color .2s ease; 
    -ms-transition: color .2s ease; 
    transition: color .2s ease; 
} 
#cssmenu > ul > li:hover > a, 
#cssmenu > ul > li > a:hover { 
    color: #222222; 
} 
#cssmenu ul li.has-sub > a::after { 
    position: absolute; 
    right: 15px; 
    display: block; 
    width: 10px; 
    height: 10px; 
    content: ""; 
    border-radius: 2px; 
} 
#cssmenu > ul > li.has-sub > a::after { 
    top: 14px; 
    background: #666666; 
} 
#cssmenu > ul > li.has-sub:hover > a::after, 
#cssmenu > ul > li.has-sub > a:hover::after { 
    background: #222222; 
} 
#cssmenu ul ul li.has-sub > a::after { 
    top: 13px; 
    background: #ffffff; 
} 
#cssmenu ul ul li.has-sub:hover > a::after, 
#cssmenu ul ul li.has-sub > a:hover::after { 
    background: #dddddd; 
} 
#cssmenu ul li.has-sub > a::before { 
    position: absolute; 
    right: 15px; 
    z-index: 2; 
    display: block; 
    width: 0; 
    height: 0; 
    border: 3px solid transparent; 
    content: ""; 
} 
#cssmenu > ul > li.has-sub > a::before { 
    top: 16px; 
    border-left-color: #ffffff; 
} 
#cssmenu ul ul li.has-sub > a::before { 
    top: 15px; 
    border-left-color: #2e353b; 
} 
#cssmenu ul { 
    -webkit-perspective: 600px; 
    -moz-perspective: 600px; 
    perspective: 600px; 
    -webkit-transform-style: preserve-3d; 
    -moz-transform-style: preserve-3d; 
    transform-style: preserve-3d; 
} 
#cssmenu ul ul { 
    position: absolute; 
    top: 0; 
    left: -9999px; 
    width: 180px; 
    background: #2e353b; 
    opacity: 0; 
    -moz-transition: opacity 0.2s ease, -moz-transform 0.2s ease; 
    -webkit-transition: opacity 0.2s ease, -webkit-transform 0.2s ease; 
    -ms-transition: opacity 0.2s ease, -ms-transform 0.2s ease; 
    -o-transition: opacity 0.2s ease, -o-transform 0.2s ease; 
    transition: opacity .2s ease, transform .2s ease; 
    -webkit-transform: rotate3d(0, 1, 0, 45deg); 
    -moz-transform: rotate3d(0, 1, 0, 45deg); 
    transform: rotate3d(0, 1, 0, 45deg); 
    -webkit-transform-origin: left center; 
    -moz-transform-origin: left center; 
    transform-origin: left center; 
    -webkit-backface-visibility: hidden; 
    -moz-backface-visibility: hidden; 
    backface-visibility: hidden; 
} 
#cssmenu ul li:hover > ul { 
    left: 100%; 
    opacity: 1; 
    transform: rotate3d(0, 0, 0, 0); 
} 
#cssmenu ul ul::after { 
    position: absolute; 
    left: -8px; 
    top: 14px; 
    z-index: 5; 
    display: block; 
    width: 0; 
    height: 0; 
    border: 4px solid transparent; 
    border-right-color: #2e353b; 
    content: ""; 
} 
#cssmenu ul ul a { 
    padding: 12px 15px; 
    font-size: 12px; 
    color: #ffffff; 
    font-weight: 700; 
    text-decoration: none; 
    -webkit-transition: color .2s ease; 
    -o-transition: color .2s ease; 
    -ms-transition: color .2s ease; 
    transition: color .2s ease; 
} 
#cssmenu ul ul li:hover > a, 
#cssmenu ul ul li a:hover { 
    color: #dddddd; 
} 

/* End of CSS Vertical Nav Menu */ 

.promo { 
    width:355px; 
    background-color:#F0F; 
    display:inline; 
    float:right; 

} 
.quote { 
    width:355px; 
    background-color:#F0F; 
    display:inline; 
    float:right; 

} 

.content_width, .content_width_wrapper { 
    width: 950px; 

    /* Do Not Change This */ 
    margin: 0px auto; 
} 





/* end of new CSS */ 
</style> 
+0

取而代之的是彩車看看的(幾乎)新** ** Flexbox的元素的特徵:將爲您節省一些佈局煩惱。 –

+0

你實際上是否將#CSSMenu浮動到左邊?我沒有看到你的代碼中的任何地方...... –

回答

1

好像你已經把你放在了兩件事情想要浮動右邊(.promo和.quote)到你想要浮動的東西左邊,#CSSMenu。這只是浮動.promo和.quote #CSSMenu容器。您需要從#CSSMenu中刪除它們,然後將#CSSMenu浮動。

Here's a working demo

更新代碼:

<div id='cssmenu'> <!-- Containter For Nav Menu --> 
<ul> 
    <li>Browse Our Products</li> <!--List Title--> 

    <li><a href='#'>Business Cards</a></li> 
    <li class='active has-sub'><a href='#'>Stationary</a> 
     <ul> 
     <li class=''><a href='#'>Letter Head</a></li> 
     <li class=''><a href='#'>Envelopes</a></li> 
     <li class=''><a href='#'>Labels</a></li> 
     <li class=''><a href='#'>Note Pads</a></li> 
     </ul> 
     </li> 
    <li><a href='#'>Brochures</a></li> 

    <li class='active has-sub'><a href='#'>Signage</a> 
     <ul> 
     <li class=''><a href='#'>Signs</a></li> 
     <li class=''><a href='#'>Yard signs</a></li> 
     <li class=''><a href='#'>Trade Show Graphics</a></li> 
     <li class=''><a href='#'>X-Frame With Banners</a></li> 
     </ul> 
     </li> 
    <li><a href='#'>Post Cards</a></li> 
    <li><a href='#'>Vinyl Banners</a></li> 

    <li class='active has-sub'><a href='#'>Mailing Services</a> 
     <ul> 
     <li class=''><a href='#'>Ink Jet</a></li> 
     <li class=''><a href='#'>Direct Mailing</a></li> 
     <li class=''><a href='#'>Sorting & Tabbing</a></li> 
     <li class=''><a href='#'>Mailing List</a></li> 
     </ul> 
     </li> 

    <li class='active has-sub'><a href='#'>Marketing Material</a> 
     <ul> 
     <li class=''><a href='#'>Greeting Cards</a></li> 
     <li class=''><a href='#'>Rock Cards</a></li> 
     <li class=''><a href='#'>Brochures</a></li> 
     <li class=''><a href='#'>Book Marks</a></li> 
     <li class=''><a href='#'>Presentation Folders</a></li> 
     </ul> 
     </li> 
    <li class='active has-sub'><a href='#'>Speciality Products</a> 
     <ul> 
     <li class=''><a href='#'>Magnets</a></li> 
     <li class=''><a href='#'>T-Shirts (Heat Transfer Imaging)</a></li> 
     <li class=''><a href='#'>Bumper Stickers</a></li> 
     <li class=''><a href='#'>Plastic</a></li> 
     <li class=''><a href='#'>Static Cling</a></li> 
     </ul> 
     </li> 
    <li><a href='#'>Apparel</a> </li> 
</ul> 


</div><!-- End of CSS Menu --> 
<div class="promo"> 
    Promo 1 
</div> 

<div class="quote"> 
Quote 1 
</div> 
</div> <!-- End of Content Wrapper--> 

CSS:

#cssmenu { 
    float:left; 
} 
#cssmenu, 
#cssmenu ul, 
#cssmenu ul li, 
#cssmenu ul li a { 
    margin: 0; 
    padding: 0; 
    border: 0; 
    list-style: none; 
    line-height: 1; 
    display: block; 
    position: relative; 
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
} 
#cssmenu { 
    font-family: Roboto, sans-serif; 
} 
#cssmenu > ul { 
    width: 180px; 
    background: #ffffff; 
} 
#cssmenu > ul > li > a { 
    padding: 12px 15px; 
    font-size: 14px; 
    color: #666666; 
    font-weight: 700; 
    text-decoration: none; 
    -webkit-transition: color .2s ease; 
    -o-transition: color .2s ease; 
    -ms-transition: color .2s ease; 
    transition: color .2s ease; 
} 
#cssmenu > ul > li:hover > a, 
#cssmenu > ul > li > a:hover { 
    color: #222222; 
} 
#cssmenu ul li.has-sub > a::after { 
    position: absolute; 
    right: 15px; 
    display: block; 
    width: 10px; 
    height: 10px; 
    content: ""; 
    border-radius: 2px; 
} 
#cssmenu > ul > li.has-sub > a::after { 
    top: 14px; 
    background: #666666; 
} 
#cssmenu > ul > li.has-sub:hover > a::after, 
#cssmenu > ul > li.has-sub > a:hover::after { 
    background: #222222; 
} 
#cssmenu ul ul li.has-sub > a::after { 
    top: 13px; 
    background: #ffffff; 
} 
#cssmenu ul ul li.has-sub:hover > a::after, 
#cssmenu ul ul li.has-sub > a:hover::after { 
    background: #dddddd; 
} 
#cssmenu ul li.has-sub > a::before { 
    position: absolute; 
    right: 15px; 
    z-index: 2; 
    display: block; 
    width: 0; 
    height: 0; 
    border: 3px solid transparent; 
    content: ""; 
} 
#cssmenu > ul > li.has-sub > a::before { 
    top: 16px; 
    border-left-color: #ffffff; 
} 
#cssmenu ul ul li.has-sub > a::before { 
    top: 15px; 
    border-left-color: #2e353b; 
} 
#cssmenu ul { 
    -webkit-perspective: 600px; 
    -moz-perspective: 600px; 
    perspective: 600px; 
    -webkit-transform-style: preserve-3d; 
    -moz-transform-style: preserve-3d; 
    transform-style: preserve-3d; 
} 
#cssmenu ul ul { 
    position: absolute; 
    top: 0; 
    left: -9999px; 
    width: 180px; 
    background: #2e353b; 
    opacity: 0; 
    -moz-transition: opacity 0.2s ease, -moz-transform 0.2s ease; 
    -webkit-transition: opacity 0.2s ease, -webkit-transform 0.2s ease; 
    -ms-transition: opacity 0.2s ease, -ms-transform 0.2s ease; 
    -o-transition: opacity 0.2s ease, -o-transform 0.2s ease; 
    transition: opacity .2s ease, transform .2s ease; 
    -webkit-transform: rotate3d(0, 1, 0, 45deg); 
    -moz-transform: rotate3d(0, 1, 0, 45deg); 
    transform: rotate3d(0, 1, 0, 45deg); 
    -webkit-transform-origin: left center; 
    -moz-transform-origin: left center; 
    transform-origin: left center; 
    -webkit-backface-visibility: hidden; 
    -moz-backface-visibility: hidden; 
    backface-visibility: hidden; 
} 
#cssmenu ul li:hover > ul { 
    left: 100%; 
    opacity: 1; 
    transform: rotate3d(0, 0, 0, 0); 
} 
#cssmenu ul ul::after { 
    position: absolute; 
    left: -8px; 
    top: 14px; 
    z-index: 5; 
    display: block; 
    width: 0; 
    height: 0; 
    border: 4px solid transparent; 
    border-right-color: #2e353b; 
    content: ""; 
} 
#cssmenu ul ul a { 
    padding: 12px 15px; 
    font-size: 12px; 
    color: #ffffff; 
    font-weight: 700; 
    text-decoration: none; 
    -webkit-transition: color .2s ease; 
    -o-transition: color .2s ease; 
    -ms-transition: color .2s ease; 
    transition: color .2s ease; 
} 
#cssmenu ul ul li:hover > a, 
#cssmenu ul ul li a:hover { 
    color: #dddddd; 
} 

/* End of CSS Vertical Nav Menu */ 

.promo { 
    width:355px; 
    background-color:#F0F; 
    display:inline; 
    float:right; 

} 
.quote { 
    width:355px; 
    background-color:#F0F; 
    display:inline; 
    float:right; 

} 

.content_width, .content_width_wrapper { 
    width: 950px; 

    /* Do Not Change This */ 
    margin: 0px auto; 
} 
+0

非常感謝。我確實知道那是發生了什麼,但由於某種原因昨天我無法找到css菜單的容器在哪裏結束。感謝您使用您的眼睛來查找錯誤。這個修復比使用絕對定位或固定位置來欺騙要好得多。再次感謝。 –

+0

@DariusShojaei沒問題!如果這解決了您的問題,請將我的答案標記爲正確。 –

0

如果你希望它在頁面上的一組位置「浮動」不管是什麼,儘量

position:fixed; 
top:somepixels; 
left:somepixels; 
etc