2011-09-13 15 views
2

私はDreamweaverのウェブサイトで作業しており、私は幾分Webデザインのいくつかの側面の初心者です。垂直Spryメニューバー - 幅IEの

よくある古いインターネットエクスプローラを除いて、ほとんどのブラウザで正常に動作しているページの左側に沿って縦型のSpryメニューバーがあります。ほとんどのブラウザでは、メニューバーの項目はメニューバーの幅に収まりますが、インターネットエクスプローラでは、項目は含まれている単語のサイズにトリムされます。いくつかの状況では、2つのメニュー項目が同じ行にあるようにトリミングされます。同様のことがサブメニューでも起こっています。

ここにサイトがあります:http://www.lakeathleticboosterclub.com/ 私が問題を非常にうまく説明していなかった場合は、まずは自分でテストしてください。ここでは私が扱っているCSSを紹介します。

@charset "UTF-8"; 

/* SpryMenuBarVertical.css - version 0.6 - Spry Pre-Release 1.6.1 */ 

/* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */ 

/******************************************************************************* 

LAYOUT INFORMATION: describes box model, positioning, z-order 

*******************************************************************************/ 

/* The outermost container of the Menu Bar, a fixed width box with no margin 
or padding */ 
ul.MenuBarVertical 
{ 
    margin: 0; 
    padding: 0; 
    list-style-type: none; 
    font-size: 100%; 
    cursor: default; 
    width: auto; 
} 
/* Set the active Menu Bar with this class, currently setting z-index to 
accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html 
*/ 
ul.MenuBarActive 
{ 
z-index: 1000; 
} 
/* Menu item containers, position children relative to this container and are 
same fixed width as parent */ 
ul.MenuBarVertical li 
{ 
margin: 0; 
padding: 0; 
list-style-type: none; 
font-size: 100%; 
position: relative; 
text-align: left; 
cursor: pointer; 
width: auto; 
} 
/* Submenus should appear slightly overlapping to the right (95%) and 
up (-5%) with a higher z-index, but they are initially off the left side 
of the screen (-1000em) */ 
ul.MenuBarVertical ul 
{ 
margin: -5% 0 0 95%; 
padding: 0; 
list-style-type: none; 
font-size: 100%; 
position: absolute; 
z-index: 1020; 
cursor: default; 
left: -1000em; 
top: 0; 
width: auto; 
} 
/* Submenu that is showing with class designation MenuBarSubmenuVisible, 
we set left to 0 so it comes onto the screen */ 
ul.MenuBarVertical ul.MenuBarSubmenuVisible 
{ 
left: 0; 
} 
/* Menu item containers are same fixed width as parent */ 
ul.MenuBarVertical ul li 
{ 
} 

/******************************************************************************* 

DESIGN INFORMATION: describes color scheme, borders, fonts 

*******************************************************************************/ 

/* Outermost menu container has borders on all sides */ 
ul.MenuBarVertical 
{ 
border: 1px solid #CCC; 
} 
/* Submenu containers have borders on all sides */ 
ul.MenuBarVertical ul 
{ 
border: 1px solid #CCC; 
} 
/* Menu items are a light gray block with padding and no text decoration */ 
ul.MenuBarVertical a 
{ 
display: block; 
cursor: pointer; 
background-color: #EEE; 
padding: 0.5em 0.75em; 
color: #333; 
text-decoration: none; 
} 
/* Menu items that have mouse over or focus have a blue background and white text */ 
ul.MenuBarVertical a:hover, ul.MenuBarVertical a:focus 
{ 
background-color: #33C; 
color: #FFF; 
} 
/* Menu items that are open with submenus are set to MenuBarItemHover 
with a blue background and white text */ 
ul.MenuBarVertical a.MenuBarItemHover, ul.MenuBarVertical a.MenuBarItemSubmenuHover, ul.MenuBarVertical a.MenuBarSubmenuVisible 
{ 
background-color: #33C; 
color: #FFF; 
} 

/******************************************************************************* 

SUBMENU INDICATION: styles if there is a submenu under a given menu item 

*******************************************************************************/ 

/* Menu items that have a submenu have the class designation MenuBarItemSubmenu 
and are set to use a background image positioned on the far left (95%) and 
centered vertically (50%) */ 
ul.MenuBarVertical a.MenuBarItemSubmenu 
{ 
background-image: url(SpryMenuBarRight.gif); 
background-repeat: no-repeat; 
background-position: 95% 50%; 
} 

/* Menu items that are open with submenus have the class designation 
MenuBarItemSubmenuHover and are set to use a "hover" background image 
positioned on the far left (95%) and centered vertically (50%) */ 
ul.MenuBarVertical a.MenuBarItemSubmenuHover 
{ 
background-image: url(SpryMenuBarRightHover.gif); 
background-repeat: no-repeat; 
background-position: 95% 50%; 
} 

/******************************************************************************* 

BROWSER HACKS: the hacks below should not be changed unless you are an expert 

*******************************************************************************/ 

/* HACK FOR IE: to make sure the sub menus show above form controls, we 
underlay each submenu with an iframe */ 
ul.MenuBarVertical iframe 
{ 
position: absolute; 
z-index: 1010; 
filter:alpha(opacity:0.1); 
} 
/* HACK FOR IE: to stabilize appearance of menu items; the slash in float is 
to keep IE 5.0 from parsing */ 
@media screen, projection 
{ 
ul.MenuBarVertical li.MenuBarItemIE 
{ 
    display: inline; 
    f\loat: left; 
    background: #FFF; 
} 
} 

ご協力いただければ幸いです。

+1

こんにちは。私の最初の推測: 'display:block;'またはwidth:100% 'を' ul.MenuBarVertical li {...} 'に追加してください。これらの要素が崩壊していると感じています。 –

+0

それはかなりうまくいった!私はサブメニューul.MenuBarVertical ulに追加しました。サイト上で見られるように正常に動作しています。 1つのことは、しかし、長い単語はまだ1つのサブメニューに2行目を作るためにラップします。そこにはどんなアイデア? –

+0

これは難しい呼び出しです。早い段階で折り返していますか?ラップを防止するオプションは常にありますが(実際には 'white-space:nowrap;')、実際にテキストを折り返したいときに問題を引き起こす可能性があります。あなたがラッピングが必要ではないと思うなら、nowrapは今のところ簡単な解決策かもしれません。編集:私はちょうどIEでチェック。私はあなたの問題を見る。私はすぐに解決策を投稿します! –

答えて

0

わかりましたので、あなたがそのコンテナを記入します幅を持つようにul.MenuBarVerticalを設定する必要がありそうです:

ul.MenuBarVertical 
{ 
    margin: 0; 
    padding: 0; 
    list-style-type: none; 
    font-size: 100%; 
    cursor: default; 
    width: 100%; 
} 

しかし、サイドバーはないか、幅を持っていないので、今私たちが追加する必要があります。

.content { 
    padding: 10px 0; 
    width: 790px; <-- Explicit width 
    float: right; <-- Should make things a little more predictable 
} 

それはACTUないので:我々はこれを変更するまで、すべてを台無しにします

.sidebar1 { 
    float: left; 
    width: 218px; <-- This is changed 
    background: #151B8D; 
    padding-bottom: 10px; 
    color: #fff; 
} 

そして、明示的な幅を持ち、サイドバーのレンダリングされるディメンションは、ブラウザがすべてのサイズを決める方法に完全に依存します。 IEでは、うまくいきません。このメソッドを使用すると、トリックを行う必要があります!

表示を追加します:

はまた、後世のために、ここに私のコメントから元の修正プログラムがあるブロック。または幅:100%〜ul.MenuBarVertical li {...}

これがメインコンテナで異常な動作を引き起こす場合は、フロートの使用に起因するコンテンツラッピングの問題が原因である可能性があります。 .containerに `overflow:hidden 'を設定することでそれを解決できます。 IEを含むブラウザを起動して、フローティングコンテンツのサイズを認識し、それに応じてラップします。

希望すると便利です。この後にそれがかなりない場合は、私に知らせてください。私が問題を特定できるかどうかがわかります。

+0

明日私は仕事用コンピュータに戻って知らせます。しかし、事前にありがとうございます。 –

関連する問題