28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

je dépanne une amie qui a besoin d'un site perso pro mais minimaliste.

Elle souhaiterait avoir un menu avec des onglets de hauteur, de largueur et de couleurs différentes. Est ce que cela est possible en CSS?

En plus, elle me demande que l'un d'eux soit "de travers".

Voilà ce que j'ai fait: le premier onglet est déroulant en CSS, les 3 autres sont des images:

upload/39362-Sanstitre-.jpg

Comme vous le voyez, les images ne sont pas allignées du tout, surtout à cause de l'image "bio" qui est donc plus haute que les autres (quand elles ont toutes la même hauteur, cela fonctionne).

Y a t-il un moyen de les aligner correctement??

Merci d'avance!

Voici le HTML:

<div class="menu">
	<ul>
		<li><a href="" target="_self" >EVENEMENTS</a>
			<ul>
				<li><a href="produits.html" target="_self">Lancements de produits</a></li>
				<li><a href="presse.html" target="_self">Soirées Presse</a></li>
				<li><a href="defiles.html" target="_self">Defilés</a></li>
				<li><a href="streetmarketing.html" target="_self">Streetmarketing</a></li>
				<li><a href="corporate.html" target="_self">Corporate</a></li>
			</ul>
		</li>
        <table><tr>
      <a href="references.html" ><img src="images/references-button.jpg" style="display:inline" border="0" alt="references" /></a></div> 
         <a href="bio.html" ><img src="images/bio-button.jpg" style="display:inline" border="0" alt="bio" /></a></div>
         <a href="contact.html" ><img src="images/contact-button.jpg" style="display:inline" border="0" alt="contact" /></a></div>
		</tr></table>
			</li>
	</ul>
	</div>


et la CSS du menu

.menu{
	border:none;
	border:0px;
	margin:0px;
	padding:20px 0 0 0;
	font: 67.5% "Lucida Sans Unicode", "Bitstream Vera Sans", "Trebuchet Unicode MS", "Lucida Grande", Verdana, Helvetica, sans-serif;
	font-size:14px;
	font-weight:bold;
		
	
	}
.menu ul{
	height:35px;
	list-style:none;
	margin:0;
	padding:0;
	}
	.menu li{
		float:left;
		padding:0px;
		}
	.menu li a{
		background:#242424 url("images/seperator.gif") bottom right no-repeat;
		color:#fff;
		display:block;
		font-weight:normal;
		line-height:35px;
		margin:0px;
		padding:0px 25px;
		text-align:center;
		text-decoration:none;
		}
		.menu li a:hover, .menu ul li:hover a{
			background: #242424 url("images/hover.gif") bottom center no-repeat;
			color: #fff;
			text-decoration:none;
			}
	.menu li ul{
		background:#242424;
		display:none;
		height:auto;
		padding:0px;
		margin:0px;
		border:0px;
		position:absolute;
		width:225px;
		z-index:200;
		/*top:1em;
		/*left:0;*/
		}
	.menu li:hover ul{
		display:block;
		
		
		
		}
	.menu li li {
		background:url('images/sub_sep.gif') bottom left no-repeat;
		display:block;
		float:none;
		margin:0px;
		padding:0px;
		width:225px;
		}
	.menu li:hover li a{
		background:none;
		
		}
	.menu li ul a{
		display:block;
		height:35px;
		font-size:12px;
		font-style:normal;
		margin:0px;
		padding:0px 10px 0px 15px;
		text-align:left;
		}
		.menu li ul a:hover, .menu li ul li:hover a{
			background:#00F5C0 url('images/hover_sub.gif') center left no-repeat;
			border:0px;
			color: #242424;
			text-decoration:none;
			}
	.menu p{
		clear:left;
		}	

Modifié par vdante (19 Aug 2011 - 12:25)
oui bien sur quasiment toutes les mise en page sont faisables en css. Mais ici c'est bizarre de finir ta liste avec un tableau.. ca te sert à quoi Smiley smile ?

J'ajouterai qu'un tr doit contenir un ou plus TD (sinon le code est invalide)
Modifié par ptitvincent (19 Aug 2011 - 10:26)
Et bien, grâce au tableau, mes images s'affiche juste après le premier onglet (et alignée).

Dès que je les enlèves, elles passent à la ligne en dessous!

upload/39362-sanstab.JPG
Je me cite moi meme car j'ai édité mon message apres ta reponse

ptitvincent a écrit :


J'ajouterai qu'un tr doit contenir un ou plus TD (sinon le code est invalide)


Ensuite tu n'est pas obligé de passer par un tableau, le display:inline-block devrait te permettre de les mettre sur la meme ligne, ensuite tu joue sur des marges negatives positives pour obtenir le résultat voulu.
Merci pour le conseil,

mais alors du coup quand je supprime le tableau tout est à la ligne, je vais tester avec display: inline-block;

edit: Je viens de modifier le HTML

	<div class="menu">
	<ul>
		<li><a href="" target="_self" >éVéNEMENTS</a>
			<ul>
				<li><a href="produits.html" target="_self">Lancements de produits</a></li>
				<li><a href="presse.html" target="_self">Soirées Presse</a></li>
				<li><a href="defiles.html" target="_self">Defilés</a></li>
				<li><a href="streetmarketing.html" target="_self">Streetmarketing</a></li>
				<li><a href="corporate.html" target="_self">Corporate</a></li>
			</ul>
		</li>
		</ul>
    	<a href="references.html" ><img src="images/references-button.jpg" alt="references" /></a>
        <a href="bio.html" ><img src="images/bio-button.jpg" alt="bio" /></a>
        <a href="contact.html" ><img src="images/contact-button.jpg" alt="contact" /></a>
	</div>	


J'ai donc toujours mon onglet "évènement" et les autres onglets (images) à la ligne en dessous, j'ai donc ajouté display:inline dans le CSS mais ca ne change rien...Je dois m'y prendre de travers...

.menu{
	display: inline-block; 
	border:none;
	border:0px;
	margin:0px;
	padding:20px 0 0 0;
	font: 67.5% Helvetica, sans-serif;
	font-size:14px;
	font-weight:bold;
		
	
	}

Modifié par vdante (19 Aug 2011 - 10:46)
Ok j'ai déplacé un /ul, maintenant tout est sur la même ligne mais pas du tout sur le même axe Smiley smile

<div class="menu">
	<ul>
		<li><a href="" target="_self" >éVéNEMENTS</a>
			<ul>
				<li><a href="produits.html" target="_self">Lancements de produits</a></li>
				<li><a href="presse.html" target="_self">Soirées Presse</a></li>
				<li><a href="defiles.html" target="_self">Defilés</a></li>
				<li><a href="streetmarketing.html" target="_self">Streetmarketing</a></li>
				<li><a href="corporate.html" target="_self">Corporate</a></li>
			</ul>
		</li>
		
    	<a href="references.html" ><img src="images/references-button.jpg" style="vertical-align:top" border="0" alt="references" /></a>
        <a href="bio.html" ><img src="images/bio-button.jpg" style="vertical-align:bottom" border="0" alt="bio" /></a>
        <a href="contact.html" ><img src="images/contact-button.jpg" style="vertical-align:top" border="0" alt="contact" /></a>
		</ul>
	</div>	


upload/39362-Sanstitre.JPG

Maintenant j'aimerais me débarasser de l'espace entre les images et que la 3ème image soit calée un peu plus haut que les autres... Smiley rolleyes

une idée??

MERCI
Modifié par vdante (19 Aug 2011 - 11:26)
J'ai supprimé le inline block de la CSS et effectivement, il ne sert à rien...du coup vu que tout est en ligne sans lui, je n'en ai peut etre pas besoin?
Mais je cherche toujours comment supprimé ce white-space et déplacer ce 3eme onglet Smiley bawling

EDIT: j'ai réussi à caler le 3ème onglet en hauteur Smiley winner

<a href="bio.html" ><img src="images/bio-button.jpg" style="vertical-align:top; margin-top:-7px"  alt="bio" /></a>


RE EDIT:

J'ai réussi! MERCI BEAUCOUP (j'espère que c'est ok en code?)

<a href="references.html" ><img src="images/references-button.jpg" style="vertical-align:top; margin-right:-7px" "margin="0" alt="references" /></a>
        <a href="bio.html" ><img src="images/bio-button.jpg" style="vertical-align:top; margin-top:-7px; margin-right:-7px"  alt="bio" /></a>
        <a href="contact.html" ><img src="images/contact-button.jpg" style="vertical-align:top" alt="contact" /></a>


upload/39362-menuOK.JPG


Par contre sous IE 7 j'ai ces vilaines bordures...

upload/39362-ie.PNG

Edit: img {
border : none;
}

et voilà Smiley smile
Modifié par vdante (19 Aug 2011 - 12:25)
félicitation ^^ ca m'a l'air bien !

par contre


img {
border : none;
} 


est incorrect. il faut préciser que ces les img contenus dans les liens (car c'est à ce moment qu'elles ont une bordure.

a img{
border : none;
}