2009-12-04 22 views
5

Estoy tratando de hacer una barra lateral que en un sitio web que tendrá un "panel" que contiene información de contacto. El problema es que en pantallas más pequeñas, el texto desborda el fondo.Div interior para desplazarse si div externo es demasiado pequeño?

Aquí está la CSS, donde #navigation es el div exterior y el interior se llama div .innerPanel HTML a seguir:

#navigation{ 
     position: absolute; 
     left: 1.5625em; 
     top: 1.5625em; 
     bottom: 1.5625em; 
     display: block; 
     width: 12.5em; 
     background: navy; 
     border-right: 1px solid navy; 
     text-align: center; 
     background: #B6D2F0; 
     padding: 5px; 
     color: #4A4A49; 
     overflow: hidden; 
    } 

    #navigation .innerPanel{ 
     min-height: 200px; /* supply current height here */ 
     height: auto; 
     overflow: auto; 
    } 

    .titleHead{ 
    display: block; 
    padding-top: 0.9em; 
    overflow: auto; 
    } 


    /* inverted corners for the links */ 
    #navigation #links {  
     position: relative; 
     padding-top: 30px; 
    } 

    #navigation #links div div div h3{ 
     border-top: 1px solid navy; 
     border-bottom: 1px solid navy; 
     color: navy; 
     padding: 0px; 
     margin: 0px; 
     margin-top: 1px; 
     line-height: 1.2em; 
    } 

    #navigation div div div div ul{ 
     list-style-type: none; 
     margin: 0px; 
     padding: 0px; 
    } 

    #navigation div div div div ul li{ 
     text-align: center; 
    } 

    #navigation div div div div ul li a{ 
     display: block; 
     text-decoration: none; 
     font-weight: bold; 
     color: #B6D2F0; 
     padding: 0px; 
     padding-left: 0; 
     line-height: 2.5em; 
     background: navy; 
     border-bottom: #D8F4F2 1px dashed; 
     } 

    #navigation div div div div ul li a:hover{ 
     display: block; 
     text-decoration: none; 
     font-weight: bold; 
     color: #D8F4F2; 
     background: #0000A2; 
    } 

    #navigation div div div div ul #last a{ 
     border-bottom: 0px; 
    } 

`

Aquí es el fragmento de HTML. Los anidados div etiquetas eran para las esquinas redondeadas, que eran "vetado" por el cliente

 <div id="navigation"> 
    <div id="logo" class="box"> 
     <div> 
     <div> 
      <div style="text-align: center;"> 
      <img src="./images/pictures/cbk-logo-sm.gif" alt="Logo" /> 
      </div> 
     </div> 
     </div> 
    </div> 
<div id="links" class="box"> 
     <div> 
     <div> 
      <div>    <ul> 
       <li id="home"> 
       <a href="index.php" title="Home">Home</a> 
       </li><li> 
       <a href="applications.php" title="Apply as a staff member or camper">Applications</a> 
       </li><li id="last"> 
       <a href="about.php" title="About our directors, our grounds and our campers">About</a> 
       </li> 
      </ul><div class="innerPanel"><div class="innerMost"><h4 class="titleHead"> 
      Contact Information</h4> 
       <h5 style="margin: 0.8em 0 0 0; padding: 0;">City Office (September-June)</h5> 
       <p style="font-size: 0.75em; margin: 0; padding: 0;"> 
      <em>Phone:</em> 555-555-5555<br /> 
      <em>Fax:</em> 555-555-5555<br /> 
      <em>Email:</em> [email protected]<br /> 
      <em>Address:</em> 123 Main Avenue Somewhere, IL 11234 
      </p> 
      <h5 style="margin: 0.8em 0 0 0; padding: 0;">Camp (July &amp; August)</h5> 
      <p style="font-size: 0.75em; margin: 0; padding: 0;"> 
      <em>Phone:</em> 987-654-3210<br /> 
      <em>Fax:</em> 123-456-1234<br /> 
      <em>Email:</em> [email protected]<br /> 
      <em>Address:</em> 456 Centre Road, Nowhere, AL 67891 
      </p></div></div>  </div> 
     </div> 
     </div> 
    </div> 
    </div> 

Necesito una solución multi-navegador para hacer innerPanel dinámicamente agregar una barra de desplazamiento a sí mismo de manera que en las pantallas más pequeñas, el contenido es recortado pero accesible a través de desplazamiento ...

Preferiblemente, la solución debe ser CSS pura.

¿Alguna idea?

EDIT: me disculpo por la ambigüedad. Tengo una barra lateral, llamada #navigation. Contiene un logotipo, el menú y la información de contacto. Quiero que la información de contacto se desplace donde sea necesario.
Todo lo demás parece mostrar normalmente en pantallas de 800x600 y superiores.

EDITAR: Como está parado ahora, innerPanel es una altura fija. Me gustaría que crezca cuando sea posible, y si hay espacio suficiente, elimine la barra de desplazamiento. Tenga en cuenta que hay un div HTML no mencionado en el CSS, que se encuentra dentro de innerPanel.

Respuesta

2

estoy un poco confuso lo que están pidiendo, pero me parece que, o bien quieren overflow:auto en el elemento #navigation, o en función de su contenido y por qué tiene una altura fija:

#navigation .innerPanel { 
    max-height: 200px; /* supply current height here */ 
    height: auto; 
    overflow: auto; 
} 

NO FUNCIONA EN IE6
IE6 no es compatible con max-height.

+0

¿Debería ser min-height, o max-height? – Moshe

+0

@Moshe, depende de por qué tenía una altura fija para empezar. Si necesita mantener una altura establecida, su 'overflow: auto' debe estar en el elemento principal:' # navigation'. Si tu altura fija era tal que la pequeña caja nunca fuera más grande que tu fondo, por ejemplo, entonces 'max-height' y' overflow: auto' en '.innerPanel' funcionarán para ti. –

+0

Usando esto tentativamente -Si alguien tiene otra respuesta, por favor compártelo. – Moshe

Cuestiones relacionadas