28172 sujets

CSS et mise en forme, CSS3

Voilà mon problème est celui ci. Comme cité dans le titre j'ai un "Div" centrale dans mon site qui selon la redimension du navigateur bouge et reste à 35% de la droite et s'arrête juste avant d'empiéter sur mon menu principal par le biais d'un "min-width". Et j'aurais aimer que celui ci fasse l'entièreté de la hauteur de la fenêtre de navigation.

J'ai essayer de toutes les façons possibles à ma connaissance mais en vain ...

Je pourrais vous expliquer les différentes façon auxquelles j'ai procédé mais cela serait très très long.

Donc je vais vous livrer le code utiliser ainsi qu'un lien vers la page en question online.

Voici la CSS (seulement les éléments nécessaire à votre compréhension) :

body{
	height:100%;
	min-width:900px;
	}
	
	
div#content_deux{
	width:310px;
	left:35%;
	position:absolute;
	height:100%;
	background:url(images/bg_content.png) repeat-y 0 0;
	}

div#content{
	width:300px;
	margin-left:35%;
	background-color:#666666;
	border-left:7px solid #A7B266;
	border-right:3px solid #A7B266;
	position:relative;
	}
		
div#content ul#second_navigation li{
	font-size:10px;
	color:#A7B266;
	float:left;
	margin-left:10px;
	}
	
div#content ul#second_navigation{
	background-color:#424242;
	padding:25px 0 6px;
	list-style-type:none;
	overflow:auto;
	}

div#content ul#main_galerie{
	list-style-type:none;
	}
	
div#content ul#main_galerie li{
	margin:0 20px;
	height:200px;
	border:1px solid black;
	}



Ensuite je vous livre mon code HTML (l'entièreté):


<body>
	
	<div id="content_deux">
    </div>
	<div id="global">
    
    	<p>
        <img src="images/logo.png" alt="Logo, doncho webdesigner" id="logo"/>
        </p>
            <ul id="main_menu">
            	<li id="menu_profil"><a href="#" title="Voir la page concacré à mon profil"><img src="images/menu_profil.png" alt="L'image du lien vers Profil change de couleur pour marquer le survol"/></a></li>
                <li id="menu_works"><a href="#" title="Voir la page concacré à mes travaux"><img src="images/menu_works.png" alt="L'image du lien vers Travaux change de couleur pour marquer le survol"/></a></li>
                <li id="menu_skills"><a href="#" title="Voir la page concacré à mes connaissances"><img src="images/menu_skills.png" alt="L'image du lien vers Connaissances change de couleur pour marquer le survol"/></a></li>
                <li id="menu_contact"><a href="#" title="Voir la page qui à pour but de vous permettre de me contacter"><img src="images/menu_contact.png" alt="L'image du lien vers contact change de couleur pour marquer le survol"/></a></li>
                <li id="menu_links"><a href="#" title="Voir la page concacré aux différents liens intéressants que je propose"><img src="images/menu_links.png" alt="L'image du lien vers Liens change de couleur pour marquer le survol"/></a></li>
            </ul>

          <div id="content">
          
                  <ul id="second_navigation">
                      <li>Doncho</li>
                      <li>Profile</li>
                  </ul>
                  
                  <ul id="main_galerie">
                      <li></li>
                      <li></li>
                      <li></li>
                  </ul>
          		
           </div>
    </div>
</body>


Et pour finir un bout de code javascript qui m'a servit en dernier recourt mais qui ne fonctionne pas sur IE et n'est pas parfait sur FF:


<script language="javascript">
		function bouger(){
			var taille_ecran = window.innerWidth;
      		if(taille_ecran < 900){
				document.getElementById("content_deux").style.left = '315px';
	  		}else{
		  		document.getElementById("content_deux").style.left = '35%';
		  	}
		}
		window.onresize=bouger;
</script>


J'ai mis la page en ligne à cette adresse : http://donchofolio.be/site/test.html

Donc le bout de javascript sert en fait à ce que lorsque l'utilisateur redimensionne sa page le "Div" vide d'id "content_deux" ne rentre pas dans mon menu principal.
Je sais que mettre un "Div" uniquement pour une question d'esthétique dans le code n'est vraiment pas propre mais je n'ai trouvé aucune autre solution ...

Donc ce "Div" est la seule solution et qui est loin d'être concluante que j'ai trouvé. Je lui ai assigner une "position:absolute" pour qu'il puissent bénéficier du "height:100%" et de ce fait prendre l'entièreté de la hauteur. (le "body" est aussi en "height:100%").

J'espère avoir été clair.

Si quelqu'un a une solution qu'il se manifeste svp. Car je désespère ... Smiley sweatdrop

Merci par avance, bonne journée à tous.
Modifié par doncho (25 Sep 2009 - 13:22)
a écrit :
body {

height:100%;

min-width:900px;

}
...
...



Salut,

Essaies ça :


body[b], html[/b] {
   height:100%;
   margin:0;
   ...
Si ça change tout !
C'est surtout ton code qui doit changer !
De plus, le javascript n'a absolument aucun intérêt !
Ha ?
Expliques moi plus concrètement les changements stp.
Et au lieu de me dire: "c'est ton code qui doit changer".
Emet peut être un avis plus constructif en me disant selon toi ce qui ne va pas...

Et pour le JS c'est juste pour éviter que le DIV placer en Absolute ce qui lui permet de prendre 100% de la hauteur du navigateur n'empiète sur mon menu principal car la propriété min-width ne le prend pas en compte du fait qu'il est hors du flux...

Voilà.
J'espères que tu développeras plus dans ton futur message...

Merci
Je veux bien t'aider mais pas là maintenant hein, parce que je suis trop fatigué et je n'ai aucune envie d'écrire la moindre ligne.
Tu peux m'envoyer un mail si tu veux en m'expliquant tes besoins, je t'aiderai avec plaisir.

Et donc, je le répète, c'est ton code qui doit changer Smiley langue
Enfin moi aussi je ne vais plus traîner aujourd'hui.

Donc je suis d'accord que certaines choses sont à changer.

Je peut déjà retirer le JS ainsi que le DIV d'id content_deux car c'était vraiment mon dernier recourt pour espérer arriver au résultat voulu.

Mais bon le résultat n'y est pas.

Maintenant si tu as d'autres choses que tu as remarqué dans mon code tu peut m'en faire part.

Et je le répète, je voudrais juste avoir le bandeau du milieu (DIV d'id content) contenant la plupart de mes infos placé a 35% du bord gauche de mon navigateur et occupant 100% de la hauteur du navigateur quelque soit le re-dimensionnement que fait l'utilisateur.
En faisant bien sûr en sorte que le bandeau n'empiète pas sur le menu si la page est fortement réduite par l'utilisateur.
doncho a écrit :
Personne n'a de solution à me proposer svp...
Je désespère. Smiley confus


Il me semble que je t'ai proposé de t'aider !... non !?
doncho a écrit :
Et bien oui. Tu préfère exposer ton avis et me proposer tes services par MP ?


Et il est où le problème !?
Je ne t'ai pas proposé MES services et encore moins par MP !!

Si tu as envie de continuer à pleurer sur ce forum, c'est ton problème.

Pour ma part, je n'interviens plus dans ce sujet.

Bonne continuation.
Mon problème n'ayant pas été compris je vais le ré-exposer :

j'ai une page principale qui est constitué de :

-1 menu principal à gauche.
-1 div d'id "content" (fond gris et bordures vertes) de 300px de large qui continent l'information principale.

Mon but est : que mon div d'id "content" de 300px occupe 100% de la hauteur du navigateur quelque soit son redimensionnement et qu'il n'empiète pas sur le menu principal si la page est fortement réduite par l'utilisateur.

- Je vous ai livrez mon code en début de topic ainsi qu'un lien pour la consulter en ligne.

Dans la page et le code que je vous ai livré, j'ai déjà mis en place un système pour que le bloc prenne 100% de la hauteur mais il ne fonctionne pas correctement sur tout les navigateur à savoir IE et FF.
Cependant je l'ai laissé dans mes sources pour que vous puissiez peut être vous en servir où le modifier.

Les éléments du système non fonctionnel mais que je vous ai quand même laissé :

Ce script à pour effet de changer le style du bloc content_deux si la largeur de la fenêtre du navigateur est inférieure à 900px (ce qui permet au bloc de ne pas empiété sur mon menu).

<script language="javascript">

		function bouger(){

			var taille_ecran = window.innerWidth;

      		if(taille_ecran < 900){

				document.getElementById("content_deux").style.left = '315px';

	  		}else{

		  		document.getElementById("content_deux").style.left = '35%';

		  	}

		}

		window.onresize=bouger;

</script>



Et voici le bloc auquel j'ai attribué une image de fond (repeat-y) et que j'ai placer en absolute derrière mon bloc de contenu pour avoir l'illusion que celui-ci occupe toute la hauteur du navigateur.


div#content_deux{

	width:310px;

	left:35%;

	position:absolute;

	height:100%;

	background:url(images/bg_content.png) repeat-y 0 0;

	}

<div id="content_deux">

    </div>



Maintenant ma demande est celle-ci :

Trouver une manière fonctionnelle dans tout les navivateur pour arriver au résultat souhaité c-a-d que mon bloc de contenu principal occupe 100% de la hauteur du navigateur quelque soit le redimensionnement de celui ci et qu'il n'empiète jamais sur mon menu principal.



Et pour te répondre Sib :
Si j'ai fais allusion à une aide par MP, c'est simplement parce que je pensais que tu préférais suite à une de tes réponses précédentes...

a écrit :
Tu peux m'envoyer un mail si tu veux en m'expliquant tes besoins, je t'aiderai avec plaisir.


De plus tu émet une critique en disant : "C'est surtout ton code qui doit changer !"
Mais bon je n'ai toujours eu aucune démonstration de ta part pour me montrer ce que je dois changer justement, et je pense que c'est plus dans mon attente qu'une simple critique qui ne m'amène à rien et ne m'aide pas à avancer.

Voilà j'espère avoir été plus clair et je m'excuse pour la non compréhension de mon post précédemment.

Merci.
Toujours bonjour aussi,

Si j'ai bien compris (car définitivement tu ne t'exprime pas clairement), tu veux :
* 2 colones non fluide
* que le contenu prenne 100% de la page.

Première question : Comment gère tu les petites résolutions niveau hauteur ? Si le contenu prend 100% de la page il risque de ne pas tenir entièrement sur la page.

Personnellement je suis contre les hauteur à 100% pour deux choses : la première parce qu'une petite résolution risque de n'avoir accès qu'a une portion du contenu ; la seconde parce que sur une grande résolution d'écran, il vaux mieux du vide "vide" que du vide présenté comme du contenu.

Ce que je te conseille (outre bosser ton relationel et ton expression écrite) c'est de jeter un coup d'œil aux gabarits de Florent (ceux sur deux colonnes principalement) et de regarder s'il n'y a rien qui te convienne.