28172 sujets

CSS et mise en forme, CSS3

Bonjour à toutes et à tous, je suis nouveau sur le site, je vais commencer avec quelques questions pour le site que je suis en train de développer, mais après, je compte bien renvoyer l’ascenseur en aidant comme je pourrais Smiley smile Je suis vraiment novice dans le codage, mais l'année prochaine, je compte intégrer une école de Web-Design. J'aimerais juste avoir quelques notions avant cela, et on m'a proposé de créer un site, donc voilà.

Voici mon premier problème :

J'aurais aimé savoir comment placé plusieurs images ou textes (différentes div) en largeur sans qu'elles se chevauchent ou changent de place lorsque l'on rétrécit la fenêtre. Là, tout bouge lorsqu'on passe sur une taille plus petite que du 1366*768 (qui est ma résolution actuelle).


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Béatrice Sartouretti | Artiste Peintre dans l'Yonne.</title>
    <link rel="stylesheet" href="style.css" />
</head>

<body>
	<header>
<!-------------------- Logo -------------------->	
		<div class="logo">
			<a href="#"><img src="img/logo.png" alt="logo"></a>
		</div>
<!-------------------- /Logo -------------------->	

<!-------------------- Social -------------------->
	  <div class="social">
			<ul>
				<li><a href="#"><img src="img/facebook.png"></a></li>
				<li><a href="#"><img src="img/twitter.png"></a></li>
				<li><a href="#"><img src="img/google.png"></a></li>
				<li><a href="#"><img src="img/yahoo.png"></a></li>
				<li><a href="#"><img src="img/skype.png"></a></li>
				<li><a href="#"><img src="img/rss.png"></a></li>				
			</ul>
		</div>	
<!-------------------- /Social -------------------->

<!-------------------- Menu -------------------->
		<div class="menu">
			<a href="#">Accueil</a>
			<a href="#">Oeuvres</a>
			<a href="#">Biographie</a>
			<a href="#">Actualité/Expositions</a>
			<a href="#">Contact</a>
			<a href="#">Livre d'Or</a>
		</div>
<!-------------------- /Menu -------------------->

<!-------------------- HR -------------------->
		<div class="hr">
			<hr />
		</div>
<!-------------------- /HR -------------------->

    </header>
    <center>
    	Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />Loremp Ipsum<br />
    </center>
    <nav>
    </nav>

    <footer>
    	<div class="copy">
			© 2012 - Béatrice Sartouretti - Tous droits résérvés | Design by <a href="#">TxReplay - My Graphic Design</a>.
		</div>
    </footer>
</body>
</html>


@charset "utf-8";
/* CSS Document */

body {
	background: #1e5799; 
	background: -moz-radial-gradient(center, ellipse cover,  #1e5799 0%, #828282 0%, #2d2d2d 100%, #207cca 100%); 
	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#1e5799), color-stop(0%,#828282), color-stop(100%,#2d2d2d), color-stop(100%,#207cca));
	background: -webkit-radial-gradient(center, ellipse cover,  #1e5799 0%,#828282 0%,#2d2d2d 100%,#207cca 100%); 
	background: -o-radial-gradient(center, ellipse cover,  #1e5799 0%,#828282 0%,#2d2d2d 100%,#207cca 100%);
	background: -ms-radial-gradient(center, ellipse cover,  #1e5799 0%,#828282 0%,#2d2d2d 100%,#207cca 100%);
	background: radial-gradient(center, ellipse cover,  #1e5799 0%,#828282 0%,#2d2d2d 100%,#207cca 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#207cca',GradientType=1 );
	background-attachment:fixed;
	margin:0px;
}

/******************** Social ********************/
.social{
	margin: -10% 0 0 78%;
	width:300px;
}

.social ul {
	padding: 0 32px; 
}

.social ul li{
	float:right;
	list-style: none;
	margin-left:7px;
}
.social ul li a{
	position:relative;
	z-index:0;
	opacity:0.3;
	-moz-transition:0.3s ease;
	-webkit-transition:0.3s ease;
	transition:0.3s ease;
}

.social ul li a:hover{
	top:8px;	
	opacity:1;
}
/******************** /Social ********************/

/******************** Menu ********************/
.menu {
	margin:10% 0 0 35%;
	word-spacing:1.5em;
	letter-spacing:0.2em;
}

.menu a {
   color:#83a4b0;
   text-decoration:none;
}

.menu a:hover{
   color:#000000;
   text-decoration:none;
   text-transform:uppercase;
}
/******************** /Menu ********************/

/******************** HR ********************/
.hr {
	margin: 0 0 0 0;
	opacity:0.1;
}
/******************** /HR ********************/

/******************** Copyright ********************/
.copy {
	bottom: 0;
	margin: 20px 10% 20px 10%;
	text-align: center;
	color:#ffffff;
	font-size:13px;
}

.copy a {
	text-decoration:none;
	color:#989898;
}

.copy:hover a {
	color:#000000;
}
/******************** /Copyright ********************/


Un grand merci à celui ou celle qui m'aidera Smiley smile
Modifié par TxReplay (29 Jun 2012 - 15:12)
Salut a toi !



J'ai pas lu ton code source (désole) parce que j'ai le mien qui est deja bien bien big et du coup j'ai pas envie de me mélangé ^^

bref, pour faire 'flotter' des div les unes a coter des autres, c'est pas bien compliquer.

Tes div (celle que tu veux faire floter) tu les met dans un div commune, exemple tout con:

<div id=main>

   <div id="div1">
   </div>

   <div id="div2">
   </div>

</div>


il suffit d'appliquer une taille à ta div main, et d'applique un taille inférieur à tes div enfant
par exemple si ta main fait 1000px, ne met pas sur tes div enfant 1000 px aussi, car elle seront jamais à coté.

Ensuite il suffit niveau css de passer en float:left sur toutes tes divs enfants, ce qui font qu'elle vont se coller a gauche les unes a coté des autres.


Si jamais tes div se chevauche.. essaye de manipuler le display (par ex: display:block sur tes div enfants.) (en css). Bon, j'espere que ça t'aidera, même si c'est que un petit peu Smiley smile

Cordialement,
Modifié par JuseN (29 Jun 2012 - 17:02)
Bonjour,

Si j'ai bien compris Smiley murf , tu voudrais que :
1 - ton bloc social reste collé en haut à droite de la fenêtre quelle que soit la taille de celle-ci
2 - ton bloc menu soit aligné sur le bord droit

Sans modifier ton html, je te propose :
1 - de passer en position absolue
2 - les balises a étant de type inline, il faut simplement les aligner à droite comme du texte

ce qui donne les modifications suivantes à ta css :

.social{
	position: absolute;
	top : 0;	/* A adapter pour */
	right: 0;	/* positionner à souhait */
	width:300px;
}
.menu {
	word-spacing:1.5em;
	letter-spacing:0.2em;
	text-align: right;
}


Pour le menu, ça marche tant que la largeur est supérieure à 800px environ, ensuite les liens s'étalent sur deux lignes...

Ah ! J'oubliais... Tu ne fixes pas de largeur à ton header !
Modifié par ArnoldM (01 Jul 2012 - 01:25)
Bien qu'il n'y ait pas de suite de donnée à ce sujet... je reviens sur mon post précédent car, à la lecture du livre de Raphaël Goetter, le positionnement hors flux n'est pas ce qu'il y a de plus adapté.
Donc une autre possibilité serait:

.logo {
	display: inline-block;
}
.social{
	float: right;
}

J'ai essayé d'appliquer aussi ceci :

.logo {
	display: inline-block;
}
.social{
	display: inline-block;
        vertical-align: top;
}

Mais je ne vois pas comment coller le bloc social à droite dans ce cas...
Si quelqu'un a une solution, je suis preneur Smiley biggrin
Modifié par ArnoldM (06 Jul 2012 - 19:19)
Mieux vaut utiliser une classe conditionnelle pour ie<8 et utiliser des flotants de merde si tel est le cas
Salut,

J'ai testé avec table en css après avoir rajouté une div .entete entourant .logo et .social :

.entete {
	display: table;
	width: 100%;
}

.logo {
	display: table-cell;
}
/******************** Social ********************/
.social{
	display: table-cell;
	vertical-align: top;
	
}

.social ul {
	float: right;
	padding: 0 32px; 
}


Mais il a quand même fallu mettre le <ul> de .social en float right ! Par contre, il n'y a pas besoin de clear:both sur le contenant... mais c'est le .logo qui fait la hauteur de .entete.