2010-06-16 3 views
2

J'ai un problème avec un site sur lequel je travaille où la bonne enveloppe continue de tomber en dessous du site. Évidemment, je veux qu'il reste du bon côté.CSS: encapsuleur de droite dépose la fin de la page

J'ai codé un cas de test qui montre mon problème (je pense) et je me demande s'il y a une meilleure façon de faire les choses.

L'URL du site est http://www.musicworkshop.co.nz/

Ci-dessous le cas de test qui (je pense) est la cause de mon problème, mais il ne peut pas être. La boîte rose tombe si elle ne rentre pas dans la largeur de la page.

J'ai également inclus un diagramme de ce que j'essaye d'accomplir avec une capture d'écran de l'emballage droit pas où il devrait être.

Y a-t-il une meilleure façon de procéder?

John

<html> 
    <head> 
     <title> Test page </title> 
     <link rel="stylesheet" href="test.css" type="text/css" /> 
    </head> 
    <body> 
     <div id="superbox"> 
      <div id="box1"> 
      </div> 
      <div id="box2"> 
      </div> 
      <div id="box3"> 
      </div> 
      <div id="box4"> 
      </div> 
      <div id="box5"> 
      </div> 
      <div id="box6"> 
      </div> 
     </div> 
    </body> 
</html> 

#superbox{ 
    width: 1000px; 
    height: 100px; 
    margin: 0 auto; 
} 

#box1{ 
    height: 100px; 
    width: 200px; 
    background: red; 
    float: left; 
} 

#box2{ 
    height: 100px; 
    width: 200px; 
    background: yellow; 
    float: left; 
} 

#box3{ 
    height: 100px; 
    width: 200px; 
    background: blue; 
    float: left; 
} 

#box4{ 
    height: 100px; 
    width: 200px; 
    background: green; 
    float: left; 
} 

#box5{ 
    height: 100px; 
    width: 200px; 
    background: grey; 
    float: left; 
} 

#box6{ 
    height: 100px; 
    width: 200px; 
    background: pink; 
    float: left; 
} 

alt text http://www.musicworkshop.co.nz/website.png

alt text http://www.musicworkshop.co.nz/website_right-wrap-missing.png

+0

Mis à jour ma réponse avec ce que je crois être une solution pour votre site. Si ce n'est pas le cas, postez un commentaire pour que je puisse le modifier. Si c'est le cas, assurez-vous d'appuyer sur la "coche" qui la marque comme la réponse acceptée. –

Répondre

1

Puisque toutes vos boîtes sont 200px de large vont pour une %.

+0

c'est une bonne suggestion pour l'exemple que j'ai donné, mais cela ne s'applique pas au vrai site .. Je suppose que mon exemple de test n'était pas assez précis. Je vais ajouter une capture d'écran du site actuel à ma question –

1

si elle ne rentre pas dans la largeur de la page, c'est comme ça que le flotteur fonctionne ... si vous voulez avoir les boîtes sur une ligne quoi qu'il arrive, réglez votre superboîte sur toutes les boîtes (ce qui est 200 * 6 = 1200/pas 1000).

+0

J'ai pensé à cette solution moi-même, mais j'ai essayé et cela n'a pas fonctionné. Ce qui se passe pour moi quand j'essaie, c'est que les boîtes listent verticalement l'écran au lieu de l'horizontalement. N'est-ce pas ce que vous attendez? –

1

: EDITS

En regardant votre site par exemple je pense que vous voulez dire quand le ViewWindow est petit que vous voulez que la div pour aller hors de l'écran. Dans votre cas, la meilleure solution est de faire de cette image répétée l'image de fond de votre corps.

Quelque chose comme:

body { background: #6593aa url('http://www.musicworkshop.co.nz/templates/musicworkshop/images/right_repeater.png') repeat-x; } 

Et assurez-vous de prendre les arrière-plans de vos autres divs. Vous aurez probablement envie de choisir une image différente à répéter avec trop plutôt que juste le bon segment. Je peux voir que vous essayiez de le faire correspondre à l'en-tête, mais la façon dont vous y parvenez ne fonctionnera tout simplement pas. Ma meilleure solution est d'utiliser un fond transparent sur votre leftwrap et rightwrap près de l'en-tête (utilisez un .gif ou .png avec transparence pour votre angle arrondi plutôt que l'image actuelle avec le bit de "amplitude wave" en arrière-plan).

Résumé:

  1. Retirez tout wrapper etc. Arrière-plans.
  2. Modifiez les images "en coin arrondi" pour obtenir un arrière-plan transparent.
  3. Enlevez vos divs "répétés".
  4. Appliquez ce CSS ci-dessus au corps.

Original:

Quel est votre comportement désiré? Pour superbox aller 1200px? Malheureusement, vous ne pouvez pas avoir des tailles fixes et "auto-grow".

Si vous souhaitez que 'superbox' corresponde à ses enfants, ne spécifiez pas de largeur (c'est-à-dire laissez la largeur: auto).

Si vous souhaitez que les enfants soient redimensionnés s'ils sont trop grands pour 'superbox', utilisez des largeurs en pourcentage.

Il semble que vous souhaitiez que vos boîtes conservent leur taille actuelle et ne s'enroulent pas. Eh bien, essayez et imaginez ce qui se passerait si vous mettez une nouvelle div sous 'superbox' et enveloppez vos 'box_'es qui avaient une largeur de 1200px. Ça va faire en sorte que 'superbox' se développe pour l'emballer, donc à la fin de la journée, vous pourriez tout aussi bien faire de la 'superbox' cette plus grande largeur en premier lieu!

+1

ouais, ignorer mon test, ce n'est peut-être pas mon problème. Je ne sais pas vraiment quel est mon problème. Si vous regardez www.musicworkshop.co.nz vous verrez (ou, espérons-le, voyez) que l'extrémité arrondie de l'en-tête est manquante. De plus, les répéteurs gauche et droit ne sont pas alignés. J'ai ajouté une image de ce que je vise dans l'article original. –

+0

Ouais mon exemple CSS réalise ce que vous cherchez en supprimant les divs répéteur et en utilisant l'arrière-plan du corps. –

+0

Voir mon "résumé" peu et laissez-moi savoir si tout cela est confus ou ne fait pas ce dont vous avez besoin. –

Questions connexes