2012-08-27 97 views
1

我正在使用內部有ul列表的自定義滾動條。當evener ul列表或li內容擴展時,滾動條會變得越來越大。firefox中的空白nowrap

我已經使用white-space:nowrap作爲主div,以便ul的寬度得​​到擴展,但它只能在chrome中工作,但不能在firefox/IE和其他瀏覽器中工作。

這裏是我的代碼

<div class="horizontalaccordion"> 
      <ul> 
       <li> 
       <h3>Heading 2</h3> 
       <div> 
        Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. 
       </div> 
       </li> 
       <li> 
       <h3>Heading 3</h3> 
       <div>Content For Panel 3.</div> 
       </li> 
       <li> 
       <h3>Heading 4</h3> 
       <div>Content For Panel 4</div> 
       </li> 
       <li> 
       <h3>Heading 1</h3> 
       <div>Content For Panel 1.</div> 
       </li> 
       <h3>Heading 3</h3> 
       <div>Content For Panel 3.</div> 
       </li> 
       <li> 
       <h3>Heading 2</h3> 
       <div>Content For Panel 2.</div> 
       </li> 
       <li> 
       <h3>test</h3> 
       <div>Content For Panel sow</div> 
       </li> 
         <li> 
       <h3>Heading 3</h3> 
       <div>Content For Panel 3.</div> 
       </li> 
       <li> 
       <h3>Heading 4</h3> 
       <div>Content For Panel 4</div> 
       </li> 
      </ul> 
      </div> 

CSS

.horizontalaccordion{ 
     height:auto; width:auto; white-space:nowrap; border-radius:4px !important; background-color: #b6b6b6; margin-right:15px ; height:95px; overflow:hidden  
} 
.horizontalaccordion>ul { 
    margin: 0; 
    padding-left:0; 
    list-style:none; 
    height: 95px ; width:auto; display:inline-block 
} 

.horizontalaccordion>ul>li { 
    display:block; 
    overflow: hidden; 
    float:left; 
    margin: 0 !important; 
    padding: 0 !important; 
    list-style:none; 
    width:38px; 
    height: 95px; 

    /* CSS3 Transitions */ 
    transition: width 0.1s ease-in-out; 
    -moz-transition: width 0.1s ease-in-out; 
    -webkit-transition: width 0.1s ease-in-out; 
    -o-transition: width 0.1s ease-in-out; 
} 
.horizontalaccordion>ul>li>h3 { 
    display:block; 
    margin: 5px 0 0 0; 
    padding:10px; 
    height:65px; 
    width:72px; 
    border-radius:6px; 
    box-shadow: 0px -2px 2px #616161; 

    /* Decorative CSS */ 
    font-family: Arial, Helvetica, sans-serif; 
    text-decoration:none; 
    text-transform:uppercase; 
    color: #000; 
    background-color: #B3B3B3; 
    background: -webkit-gradient(linear, 0% 0%, 0% 95%, from(#BEBEBE), to(#B3B3B3)); 
    background: -moz-linear-gradient(top, #BEBEBE 0%, #B3B3B3 95%); 
    font:bold 12px Myriad Pro, Verdana, Geneva, sans-serif; color:#2c3e52; 


    /* CSS3 Transform Rotate & Translate */ 
    white-space:nowrap; 
    -moz-transform: rotate(-90.0deg); /* FF3.5+ */ 
    -o-transform: rotate(-90.0deg); /* Opera 10.5 */ 
    -webkit-transform: rotate(-90.0deg); /* Saf3.1+, Chrome */ 
    transform: rotate(-90.0deg); /* Saf3.1+, Chrome */ 
    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3.0) 
      progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff999999, endColorstr=#ffcccccc); /* IE6,IE7 */ 
    -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3.0)" 
       "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff999999, endColorstr=#ffcccccc)"; /* IE8 */ 
} 

.horizontalaccordion>ul>li>div { 
    display:none; 
    float:left; 
    overflow: auto; 
    position:relative; 
    top:-88px; 
    left:40px; 
    *top:0px;  /* IE7 Hack */ 
    *left:0px;  /* IE7 Hack */ 
    margin:0; 
    width:auto; 
    height:68px; 
    padding:10px 50px 10px 10px; white-space:nowrap; 
    background:#f0f0f0; color:#000; 
    border-radius:4px; 
    -webkit-box-shadow: inset 0px 2px 2px #9b9b9b; box-shadow: inset 0px 2px 2px #9b9b9b; 
} 
.horizontalaccordion>ul>li.hover { 
    overflow: hidden; 
    width: auto; 
} 

.horizontalaccordion>ul>li.hover>div { 
    display:block; 
} 

horizontalaccordion>ul>li.hover>h3 { 
    /* Decorative CSS */ 
    color:#fff; 
    background:#000000; 

    /* CSS3 Gradient Effect */ 
    background: -moz-linear-gradient(top, #454545, #000000); /* FF, Flock */ 
    background: -webkit-gradient(linear, left top, left bottom, from(#454545), to(#000000)); /* Safari, Chrome */ 
    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1.0) 
      progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff454545, endColorstr=#ff000000); /* IE 5.5 - IE 7 */ 
    -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1.0)" 
       "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff454545, endColorstr=#ff000000)"; /* IE 8 */ 
} 
.horizontalaccordion>ul>li>h3:hover { 
    cursor:pointer; 
    /* Decorative CSS */ 

} 

​ 

回答

2

I set up your code on a JS Fiddle,試圖瞭解這些問題會好一點。

有幾件事情:

  • 你的HTML代碼缺少一個左<li>標籤,這可能是摔東西。
  • 對我來說,Firefox(14)和Chrome(18)的行爲看起來完全一樣。對於你所問的關於空白的東西,甚至IE9似乎都在工作。
  • 如果沒有附帶的Javascript,我不確定你想要如何使用手風琴功能。

white-space:nowrap樣式規則的目的是防止文本從包裝(見here),(併成功做到這一點在我掛小提琴),但它無助於防止包裝元素。

也許你想要的是去除

whitespace: nowrap 

,並使用其中的一個:

overflow-x: visible; /* shows all items even if the area is too small */ 
overflow-x: scroll; /* Will always show a scrollbar */ 
overflow-x: auto; /* Will only show a scrollbar when the content doesn't fit */ 
overflow-x: hidden; /* Content will just drop off the end of the page */ 

我希望這可以幫助你。如果你能夠確切地說明你期望的是什麼,那將是一件好事。在JSFiddle上,您可以更改事物,更新它併發布鏈接,以便它能幫助我們確切地查看您要查找的內容。