Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > CSS
CSS Forum d'entraide sur l'utilisation des feuilles de style CSS. Avant de poster : Cours CSS, FAQ CSS, Galerie CSS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2011, 09h24   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 20
Points : 11
Points : 11
Par défaut Problème de positionnement d'une DIV par rapport aux autres

Bonjour

Je suis en train de créer un site, et j'ai un problème actuellement avec 2 div
La page est séparé en 2 colonnes
<--------100%--------->
<-----65%----><--35%->

là j'ai une div sur la gauche de l'écran donc sur 65% :

Code css :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
div#bandeauHaut
{
height:auto;
width:64%;
color:black;
font-size:10pt;
margin-top:10px;
margin-left:0.5%;
background:url(../images/Bandeaux/BandeauPromo1.jpg);
border-radius:20px 0px 20px 0px;
border-right: 1px solid lightsteelblue;
border-top: 1px solid lightsteelblue;
border-left: 1px solid lightsteelblue;
border-bottom: 1px solid lightsteelblue;
}
et là une la div de droite :
Code css :
1
2
3
4
5
6
7
8
9
10
 
div#fluxrss
{
position:relative;
margin-top:-1467px;
height:auto;
width:35%;
background:white;
float:right;
}
Mon problème c'est que je suis obligé d'ajuster avec une marge négative ma deuxième div (flux rss), et si je rajoute du contenu et des sauts de ligne dans la div bandeauHaut l'ajustement n'est plus bon,
normal quoi,
Mais comment pourrais-je modifier ces div afin que le margin-top ne soit plus a modifier svp ?


Merci
garona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 10h29   #2
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Déjà, éviter de mélanger pourcentages et pixels. Ensuite mettre ton bandeauHaut en float:left.

Si ça ne fonctionne pas, le mieux serait que tu nous montres un exemple en ligne.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/05/2011, 10h56   #3
Membre chevronné
 
Avatar de Elwyn
 
Homme
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 836
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2006
Messages : 836
Points : 712
Points : 712
Et en mettant un display: inline-block; sur le conteneur de droite ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
Elwyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 14h46   #4
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 20
Points : 11
Points : 11
Rebonjour

j'ai fait un plan pour vous expliquer plus clairement mon problème :


le bandeau en haut doit être fixe, c'est actuellement le cas,
le body déroule grâce a une scrollbar,

mon problème c'est que dès que j'ajoute un <br /> (dans mon bandeau/BandeauHaut/Contenu)
ma div fluxrss se décale vers le bas
il se peut que le contenu change régulièrement et je ne veux pas avoir a réajuster la marge a chaque fois

j'ai essayer de mettre des float left et inline-block seulement les autres div passent au dessus de mon bandeau
Comment pourrai je donc résoudre ce problème svp ?

Merci
garona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 14h48   #5
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Citation:
Envoyé par garona Voir le message
Comment pourrai je donc résoudre ce problème svp ?
On ne va pas tout te faire non plus, montre-nous ce que tu as déjà fait (CSS + HTML).
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/05/2011, 14h58   #6
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 20
Points : 11
Points : 11
ok voila donc le CSS

bannière
Code :
1
2
3
4
5
6
7
8
9
10
 
#header {
	text-align: left;
	visibility: visible;
	position:relative;
	height: 80px;
	margin-left:5px;
	margin-right:5px;
	min-width:800px;
}
le contenu
Code :
1
2
3
4
5
6
7
 
#contenu {
	width:100%;
	height:100%;
	text-align: left;
	overflow:auto;
}
balise du bandeau haut
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
div#bandeauHaut
{
height:auto;
width:64%;
color:black;
font-size:10pt;
margin-top:10px;
margin-left:0.5%;
background:url(../images/Bandeaux/BandeauPromo1.jpg);
border-radius:20px 0px 20px 0px;
border-right: 1px solid lightsteelblue;
border-top: 1px solid lightsteelblue;
border-left: 1px solid lightsteelblue;
border-bottom: 1px solid lightsteelblue;
}
le code de ma div flux rss (elle même composée de 4 div)
Code :
1
2
3
4
5
6
7
8
9
10
11
 
div#fluxrss
{
position:relative;
margin-top:-1456px;
display:inline-block;
height:auto;
width:35%;
background:white;
float:right;
}
est ce vraiment utile de montrer le html ?
je n'ai mis dedans que du texte des <br /> et la déclaration des divs
garona est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 29/05/2011, 11h59   #7
Rédacteur/Modérateur
 
Homme Jérome Debray
Responsable de projet
Inscription : mai 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Jérome Debray
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Responsable de projet
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 627
Points : 3 064
Points : 3 064
oui c'est utile de mettre le HTML pour voir comment sont déclarées les div
ornitho13 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/05/2011, 09h09   #8
Invité de passage
 
Homme Paul
Technicien maintenance
Inscription : mai 2011
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Paul
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 9
Points : 4
Points : 4
Hello,

L'une des solutions est "d'envelopper" tes DIV.
Tu postionnes ces 'wrapper' à l'aide de la propriété Float: (left/right);.
Tu peux positionner ensuite tes DIV de manière relative ou absolue.
Je te donne la structure HTML pour que ce soit plus clair.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<body>
<div id="wrapper"> <!-- ici l enveloppe générale -->
 
    <div id="header">
    </div>
 
    <div id="wrapperContenu"> <!-- Cette enveloppe va englober tes 2 div centrales / float: left;-->
        <div id="bandeauHaut"></div>
        <div id="contenu"></div>
    </div>
 
    <div id="RSS"> <!-- Puis le flux RSS / float: right;-->
    </div>
 
</div>
</body>
C'est un avis personnel mais, je pense que tu dois te servir dans ton cas de la notion d'héritage.
Ici, les 'wrapper' codent pour le positionnement et la taille des blocks,
les div se concentrent sur le contenu (liste, table, fonts, etc ...) et bénéficient des propriétés de leur parents en terme de taille.

Enfin j'ai parcouru ton code et j'ai remarqué quelques petites erreurs.
propriétés non compatibles IE, redondance des déclarations, ... je t'encourage à te documenter sur les CSS, à apprendre le language grâce à de la biblio.

Il y a de très bonnes explications sur la notion de "wrapper" sur le net. Je te laisse fouiller un peu si tu le souhaite.

Cdt.
function_Help est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 09h40   #9
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Drôme (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 20
Points : 11
Points : 11
Bonjour

Merci pour les réponses,
j'ai finalement trouvé,
j'ai déclarer ma div fluxrss après la div de contenu, en faisant l'inverse cela marche très bien

merci a vous en tout cas
garona est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h57.


 
 
 
 
Partenaires

Hébergement Web