28172 sujets

CSS et mise en forme, CSS3

Bonjour,

Je suis confronté à un problème qui dépasse de loin ma compréhension. Ce ne serait pas un problème si ce n'était pas le cas.

Pour faire simple, sous Wordpress, j'ai suis entrain de créer mon propre thème.

J'ai un header, un index/single et un footer.

L'idée est que chaque partie soit indépendante des autres dans la gestion de leur propriété "background".

Il est donc possible de mettre une couleur de fond différente pour chaque partie.

Le header et le footer ont une taille fixe (quoi que le footer pourrait avoir une taille relative dans un futur proche).

En revanche, l'index/single s'agrandi en fonction de son contenu.

Le problème est le suivant : j'ai une balise <div id="page">contenu</div> qui enveloppe tout mon contenu, à savoir les articles et la sidebar.

Cependant, puisqu'elle n'a pas de hauteur fixe, ma <div> n'affiche pas de couleur pour son background.

A savoir que la <div> en question début et ferme les pages index/single.

Si je l'ouvre en bas du header et que je la ferme au début du footer, le background marche correctement, mais je ne peux pas mettre de couleur différente pout le header, index/single et le footer.

Pour vous illustrer le problème, voici le code et deux screenshots.

Le premier, normal, avec le background qui ne fonctionne pas. Le second, avec un border: 6px solid #red; pour vous montrer que le background ne s'étend pas en fonction du contenu, mais reste tout en haut.

Code du CSS :

#page
{
	width: 926px;
	margin: 0px auto;
	background: #red;
	border: 6px solid #red;
}



Code de l'index :

<?php get_header(); ?>

<div id="page"> [#red][ouverture de la div page][/#]


<div id="content">

<?php endif; ?>

<div class="post">

<div class="excerpt">
<?php the_excerpt(); ?>
</div>

<h2 class="tags">Mots cl&eacute;s: <?php $tags= strip_tags(get_the_tag_list('',', ','')); echo $tags; ?></h2>

<div class="thumbnail">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a>
</div>

<div class="metadata">

<h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="<?php foreach((get_the_category()) as $category) { echo 'category' . $category->cat_ID; } ?>"><?php the_title(); ?></a></h1>

<div class="right">
<p class="the_time"><?php the_time('j F Y') ?></p>
</div>

<div class="right">
<p class="comments_popup_link"><?php comments_popup_link('0', '1', '%'); ?></p>
</div>

<div class="right">
<p class="the_category"><?php $the_category = get_the_category(); $category_name = $the_category[0]->cat_name; $category_link = get_category_link( $the_category[0]->cat_ID ); ?><a href="<?php  echo $category_link; ?>" title="<?php echo $category_name; ?>"><img src="<?php bloginfo('url'); ?>/wp-content/themes/pixelrise/design/<?php echo $category_name; ?>.gif" alt="<?php echo $category_name; ?>" /></a></p>
</div>

<div class="clear">
</div>

</div>

</div>

<?php endwhile; ?>

<div id="pagination" class="right">
<?php pagination($wp_query); ?>
</div>

<div class="clear">
</div>

<?php else : ?>

<h1>Erreur 404</h1>
<p>D&eacute;sol&eacute;, la page que vous recherchez a &eacute;t&eacute; d&eacute;plac&eacute;e, ou n'est plus accessible.</p>

<?php endif; ?>

</div>

<?php include ('sidebar.php'); ?>


</div> [#red][fermeture de la div page][/#]

<?php get_footer(); ?>


Les screenshots :

Sans les borders.

upload/19445-page1.png


Avec les borders à 6px, solid, #red.

upload/19445-page2.png




Merci d'avance à qui m'aidera à trouver une solution simple et fonctionnelle. (c'est pourtant censé marcher comme ça, non?)

N'hésitez pas à me demander plus d'informations au besoin.
Modifié par seeane (06 Jun 2011 - 13:12)
Bonjour,

tu aurais une page en ligne ou le html généré (sans les includes de header, footer etc) parce que là c'est assez compliqué de dire s'il s'agit d'un problème de css ou de balise html mal fermée.
Pourrais-tu aussi donner un peu plus de css ? Juste la partie concernant la page ne suffit pas, tu as peut-être une autre partie de ton css qui pose problème.
Sinon pour ce que je vois avec le code // screenshot je dirais, totalement à l'aveuglette :
- tu as un div mal fermé // fermé avant la fin de ta page ?
- tu as du contenu en float left ou right, donc ta div "page" est considérée comme "vide" donc elle n'a pas de hauteur ?
Bonjour,

J'ai bien une page en ligne, mais elle est en cours de maintenance, et tout ne fonctionne pas.

Mais le problème restera le même sur cette page, donc j'espère que vous pourrez acceder à ce que vous voulez.
pixelrise.net



Et en effet, j'ai mon contenu en float right et float left (content et sidebar).

Ce serait sûrement ça d'où vient le problème... Une idée quant à la solution?




Pour le reste du CSS (en espérant qu'il n'y a pas trop d'erreurs...) :

/*
Theme Name: pixelrise
Theme URL:  http://pixelrise.net/
 
Description: theme pixelated by Aur&eacute;lien Scapa
Version: 2.1
Author: Aur&eacute;lien Scapa
*/

/* ----- ----- ----- ----- ----- */

html, body, div, span, object, h1, h2, h3, h4, h5, h6, h7, p, a, abbr, img, acronym, cite, code, em, center, ol, ul, li, fieldset, form, label, lefent
{
	margin: 0px 0px 0px 0px;
	padding: 0px 0px 0px 0px;
	border: 0px none;
	font-size: 100%;
}

/* ----- ----- ----- ----- ----- */

body
{
	font-size: 1em;
	font-family: verdana;
	line-height: 1.5;
	color: #ffffff;
	background: rgb(175, 175, 175);
}

/* ----- ----- ----- ----- ----- */

#header
{
	width: 926px;
	height: 32px;
	margin: 0px auto;
	padding: 0px 0px 0px 0px;
	background: rgb(25, 25, 30);
}

	#menu
	{
		margin: 8px 0px 0px 20px;
		padding: 0px 0px 0px 0px;
		font-size: 0.7em;
	}
	
		#menu li
		{
			margin: 0px 16px 0px 0px;
			padding: 0px 0px 0px 0px;
			display: inline;
		}
	
	#search
	{
		margin: 3px 16px 0px 0px;
		padding: 0px 0px 0px 0px;
	}
	
		#engine
		{
			width: 224px;
			height: 16px;
			border: none;
		}

/* ----- ----- ----- ----- ----- */

#page
{
	width: 926px;
	margin: 0px auto;
	border: 6px solid #red;
}

/* ----- ----- ----- ----- ----- */

#content
{
	width: 640px;
	margin: 32px 15px 32px 16px;
	padding: 0px 0px 0px 0px;
	float: left;
}

	.post
	{
		margin: 0px 0px 32px 0px;
		padding: 0px 0px 0px 0px;
		background: rgb(25, 25, 30);
	}
	
		.content
		{
		width: 640px;
		margin: 0px 0px 32px 0px;
		padding: 0px 0px 0px 0px;
		text-align: justify;
		background: rgb(25, 25, 30);
		color: #ffffff;
		border: 1px solid #565656;
		}
		
			.breadcrumbs
			{
				font-size: 0.8em;
				margin: 0px 0px 0px 16px;
				padding: 16px 0px 0px 0px;
			}
			
				.current_page
				{
					font-weight: bold;
					color: #ff0066;
					text-shadow: 0px 1px 1px rgb(15, 15, 15);
				}
			
			#the_content
			{
				margin: 16px 16px 16px 16px;
				padding: 0px 0px 0px 0px;
			}
			
		.excerpt
		{
			height: 224px;
			margin: 0px 16px 0px 16px;
			padding: 0px 0px 0px 0px;
			text-align: justify;
		}
		
		.tags
		{
			height: 224px;
			margin: -224px 16px 0px 16px;
			padding: 0px 0px 0px 0px;
			text-align: justify;
		}
		
		.thumbnail
		{
			width: 640px;
			height: 224px;
			margin: -224px 0px 0px 0px;
			padding: 0px 0px 0px 0px;
			border: 1px solid #565656;
		}
		
		.thumbnail1
		{
			width: 640px;
			height: 224px;
			margin: 0px 0px 0px 0px;
			padding: 0px 0px 0px 0px;
			border: 1px solid #565656;
		}
		
		.metadata
		{
			width: 641px;
			height: 32px;
			margin: -32px 0px 0px 0px;
			padding: 0px 0px 0px 0px;
			background: rgba(0, 0, 0, 0.5);
			position: absolute;
		}
		
			.metadata h1
			{
				width: 464px;
				height: 24px;
				margin: 5px 0px 0px 16px;
				padding: 0px 0px 0px 0px;
				overflow: hidden;
				color: #ffffff;
				text-shadow: 0px 1px 1px rgb(15, 15, 15);
			}
			
				.category1:hover /* Nom de la catégorie */
				{
					color: #00a8ff;
					text-shadow: 0px 1px 1px rgb(15, 15, 15);
				}

				.category2:hover /* Nom de la catégorie */
				{
					color: #008DFF;
					text-shadow: 0px 1px 1px rgb(15, 15, 15);
				}

				.category3:hover /* Nom de la catégorie */
				{
					color: #FF0054;
					text-shadow: 0px 1px 1px rgb(15, 15, 15);
				}

				.category4:hover /* Nom de la catégorie */
				{
					color: #19FF64;
					text-shadow: 0px 1px 1px rgb(15, 15, 15);
				}

				.category5:hover /* Nom de la catégorie */
				{
					color: #FFDE00;
					text-shadow: 0px 1px 1px rgb(15, 15, 15);
				}
		
			.the_time
			{
				height: 24px;
				margin: -29px -1px 0px 0px;
				padding: 8px 16px 0px 12px;
				font-size: 0.7em;
				text-align: right;
				color: rgb(256, 256, 256);
				text-shadow: 0px 1px 1px rgb(25, 25, 30);
			}
			
			.comments_popup_link
			{
				height: 24px;
				margin: -29px 2px 0px 0px;
				padding: 8px 12px 0px 12px;
				font-size: 0.7em;
				text-align: right;
				color: rgb(256, 256, 256);
				text-shadow: 0px 1px 1px rgb(25, 25, 30);
			}
			
			.the_category
			{
				height: 24px;
				margin: -29px 2px 0px 0px;
				padding: 8px 8px 0px 8px;
			}
			
			
		.social
		{
			width: 128px;
			height: 32px;
			margin: 0px auto;
			margin-top: -32px;
			padding: 1px 0px 0px 0px;
			background: url("design/test.png") no-repeat;
		}
		
			.bookmark
			{
				width: 16px;
				height: 16px;
				margin: 0px auto;
				padding: 0px 0px 0px 0px;
				display: block;
				background: url("design/star.png") no-repeat;
			}
				
				.bookmark:hover
				{
					background-position: 0 -16px;
				}

		#pagination
		{
			margin: 0px auto;
			padding: 0px 0px 0px 0px;
			font-size: 0.8em;
		}
		
			#pagination li
			{
				height: 24px;
				margin: 0px 0px 0px 8px;
				padding: 4px 6px 0px 6px;
				display: block;
				float: left;
				border: 1px solid #00a8ff;
				background: #ffffff;
			}
			
			#pagination li.active
			{
				background: #00a8ff;
				color: #ffffff;
				text-shadow: 0px 1px 1px rgb(25, 25, 30);
			}

			#pagination a
			{
				color: #00a8ff;
			}
						
		.relative /* réécrire */
		{
			width:640px;
			margin: 0px 0px 32px 0px;		
			padding: 0px 0px 0px 0px;
			border: none;
			text-align: center;
			background: rgb(25, 25, 30);
			border: 1px solid #565656;
		}

			.relative a
			{
				color: #00a8ff;
			}

.comments
{
	width: 640px;
	margin: 0px 0px 0px 0px;
	padding: 0px 0px 0px 0px;
	text-align: justify;
	background: rgb(25, 25, 30);
	border: 1px solid #565656;
}

	.comments li
	{
		margin: 16px 16px 16px 16px;
		padding: 0px 0px 16px 0px;
	}

	#comments_number
	{
		margin: 0px 16px 0px 16px;
		padding: 16px 0px 0px 0px;
	}
	
		#comments_number span
		{
			font-weight: bold;
			color:#ff0066;
			text-shadow: 0px 1px 1px rgb(15, 15, 15);
		}
	
	.admin_comment
	{
		background: #202020;
	}
	
	.alt_comment1
	{
		background: #404040;
	}
	
	.alt_comment2
	{
		background: #606060;
	}
		
		.comment_metadata
		{
			margin: 0px 16px 0px 16px;
			padding: 16px 0px 16px 0px;
			font-size: 0.8em;
		}
		
			.comment_author_link
			{
				font-weight: bold;
				color: #00a8ff;				
			}
		
		.avatar
		{
			margin: 0px 8px 0px 8px;
			padding: 0px 0px 0px 0px;
		}
		
		.comment_text
		{
			margin: 0px 16px 0px 16px;
			padding: 0px 0px 0px 0px;
		}
	
	#post_comment
	{
		margin: 0px 16px 0px 16px;
		padding: 16px 0px 16px 0px;
	}
	
		#author
		{
			height: 24px;
			margin: 16px 16px 0px 0px;
			padding: 0px 0px 0px 0px;
			border: none;
		}
		
		#email
		{
			height: 24px;
			margin: 16px 16px 0px 0px;
			padding: 0px 0px 0px 0px;
			border: none;
		}
		
		#url
		{
			height: 24px;
			margin: 16px 16px 16px 0px;
			padding: 0px 0px 0px 0px;
			border: none;
		}
		
		#textarea
		{
			width: 512px;
			height: 160px;
			margin: -160px 16px 16px 0px;
			padding: 0px 0px 0px 0px;
			border: none;
			resize: none;
		}
		
		#submit
		{
			width: 32px;
			height: 160px;
			margin: 16px 48px 0px 208px;
			padding: 0px 0px 0px 0px;
			background: #ffffff;
			border: none;
			font-size: 2em;
			font-weight: bold;
			color: #ff0066;
			text-shadow: 0px 1px 1px rgb(15, 15, 15);
		}
	
/* ----- ----- ----- ----- ----- */

#sidebar
{
	width: 224px;
	margin: 32px 16px 32px 15px;
	padding: 0px 0px 0px 0px;
	float: right;
}

	.widget
	{
		margin: 0px 0px 32px 0px;
		padding: 16px 16px 16px 16px;
		border: none;
		background: rgb(25, 25, 30) url(design/widget.png) no-repeat bottom;
		border: 1px solid #565656;
	}
	
	.widget h2
	{
		height: 22px;
		margin: 0px -24px 8px 0px;
		padding: 4px 0px 0px 8px;
		color: #ffffff;
		background: #00a8ff;
		text-shadow: 0px 1px 1px rgb(15, 15, 15);
	}
	
	.widget ul
	{
		margin: 0px 0px 0px 0px;
		padding: 0px 0px 0px 8px;
		font-size: 0.8em;
	}
	
/* ----- ----- ----- ----- ----- */

#footer
{
	width: 926px;
	height: 128px;
	margin: 0px auto;
	padding: 32px 0px 16px 0px;
	clear: both;
	background: rgb(25, 25, 30);
	font-size: 0.9em;
	color: #ffffff;
}

	.legal
	{
		padding: 0px 0px 0px 16px;
	}

	.copyright
	{
		padding: 0px 16px 0px 0px;
	}

/* ----- ----- ----- ----- ----- */

.banner
{
	width: 640px;
	height: 78px;
	margin: 0px 0px 32px 0px;
	padding: 18px 0px 0px 0px;
	background: rgb(20, 20, 20);
	text-align: center;
}

.gameboy
{
	width: 224px;
	height: 288px;
	margin: 0px 0px 32px 0px;
	background: url("design/square.png") no-repeat;
}

	.square
	{
		padding: 14px 0px 0px 12px;
	}

.amazon
{
	width: 320px;
	height: 196px;
	margin: 0px auto;
	background: #136eb4;
}
/* lien + photo */

/* ----- ----- ----- ----- ----- */

h1
{
	font-size: 0.9em;
}

h2
{
	font-size: 0.8em;
}

h3
{
	font-size: 0.8em;
}

p
{
	font-size: 0.8em;
}

a
{
	 text-decoration: none;
	 color: rgb(256, 256, 256);
}

	a:hover
	{
		color: #00a8ff;
	}

abbr
{
	font-size: 0.8em;
}

	abbr:hover
	{
		color: #00a8ff;
	}

img
{
	border: none;
}

ul
{
	list-style: none;
}

li
{
	list-style: none;
}

/* ----- ----- ----- ----- ----- */

.left
{
	float: left;
}

.right
{
	float: right;
}

.clear
{
	clear: both;
}

/* ----- ----- ----- ----- ----- */

Modifié par seeane (06 Jun 2011 - 13:36)
essaye ceci juste pour voir (à inclure comme mentionné (donc avant la balise fermante de "page")):


   <div style="width:100px;height:1px;clear:both;"></div>
</div> [fermeture de la div page]
Alors,

Après quelques tests, en effet, cela fonctionne.

Et même de manière plus simple, juste avec <div style="clear:both;"></div>

Un grand merci, donc!

Mais je ne comprends pas tout :

Mon footer arrive après la fermeture de la balise :

</div> [#red][fermeture de la page][/#]

<?php get_footer(); ?>


Or, dans le css de mon footer j'ai ça :

#footer
{
	width: 926px;
	height: 128px;
	margin: 0px auto;
	padding: 32px 0px 16px 0px;
	[#red]clear: both;[/#]
	background: rgb(25, 25, 30);
	font-size: 0.9em;
	color: #ffffff;
}


Ce que je n'arrive pas à comprendre, c'est pourquoi il faut fermer les floats dans le div de la page, et non dans le footer.
Modifié par seeane (06 Jun 2011 - 14:35)
Ravis d'avoir pu t'aider.

Je te conseil de conserver les valeur de taille de 1px pour mon "hack", question de compatibilité avec certains navigateurs..