2010-05-24 2 views
1

J'ai un travail pour développer un site web. Mon client le veut pour qu'il y ait un en-tête, un menu et pour le contenu une boîte de type rectangle dans laquelle vous pouvez faire défiler le texte. Donc, cet en-tête et ce menu ne bougent pas mais le texte dans la boîte le fait.Est-ce qu'un Iframe est ma seule option?

Il devrait ressembler à ceci:

***********header image *********** 
menu menu menu menu 

-------------- 
| you  || 
| can  || 
| scroll in || 
| this box || 
|_____________ 
  • est ma seule option pour mettre en œuvre ce un iframe?
  • Serait-il une mauvaise pratique d'utiliser un iframe pour cela?
+1

Vous pouvez le faire avec les feuilles de style en cascade (CSS) –

+0

Vous pouvez donner une regarder ceci http://blog.html.it/layoutgala/ – nico

Répondre

3

Vous pouvez utiliser une div normale et définir la propriété de débordement à «défiler» dans le CSS. Un iFrame serait une "mauvaise" pratique dans ce cas.

+0

Je voudrais utiliser celui-ci.Les iframes peuvent avoir des comportements étranges parfois – tunnuz

5

Vous pouvez le faire avec un div qui aura un width spécifié et height et une valeur de css overflow-auto.

L'utilisation d'un iframe pour ce faire est une surpuissance en termes de:

  • performances côté client (plus http demande (s))
  • de bande passante côté serveur
  • augmentation de site complexité & entretien
9

Non, optez pour un DIV:

<div id="iframeReplacement"> 
    <p>CONTENT GOES HERE :)</p> 
</div> 

Avec le CSS:

#iframeReplacement { 
    height: 400px; /* set to your height */ 
    width: 400px; /* set to your width */ 
    overflow-x: auto; /* can be auto, scroll or hidden */ 
    overflow-y: auto; 
} 
1

Non, vous pouvez également utiliser trop-plein de css: défilement. Par exemple:

<style> 
.infoBox { 
    width: 100px; 
    height: 100px; 
    display: block; 
    overflow: scroll; 
} 
</style> 
<div class="infoBox">Some text</div> 
+0

* Note amicale: * Les DIV sont déjà des éléments BLOCK^_^ –

+0

Eh bien, j'ai utilisé '.infoBox' pas 'div.infoBox' . Cela signifie qu'il devrait être capable d'être appliqué à n'importe quel élément, alors que div.infoBox est juste un exemple de l'utiliser: D – bezmax

1

est ma seule option pour mettre en œuvre ce un iframe?

N ° Voir overflow.

Serait-il une mauvaise pratique d'utiliser un iframe pour cela?

Oui. C'est une mauvaise pratique de le faire (l'écran d'affichage est mieux utilisé pour montrer le contenu et minimiser, le nombre de défilement qu'un utilisateur doit faire), mais un iframe est l'un des pires moyens d'y parvenir.

1

Vous pouvez également rendre l'en-tête et la barre de navigation statiques et avoir simplement la page entière dans la "boîte qui défile"."

Ceci peut être accompli assez facilement:

div#header { 
    position:absolute; 
    top:0; 
    left:0; 
} 

Voici un site Web avec un exemple:. http://limpid.nl/lab/css/fixed/header-and-left-sidebar