Ma class ne s'applique pas à mon h1.

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous !

Je tente d’appliquer une class à un titre, mais ce dernier ne veut rien savoir :B Rien ne change :(

Voici mon HTML :

<div class="sl-slide" data-orientation="vertical">
	<div class="sl-slide-inner">
		<div class="bg-img bg-img-1">
			<h1 class="vonklafout">titre</h1>
		</div>
	</div>
</div>

et les CSS :

.vonklafout h1 {color: blue; font-size: 20px;}

Bon après-midi ;)

P.

Salut,

Si je ne dis pas de bêtise c’est parce que tu as imbriqué la condition : .vonklafout puis h1

Ce qui veut dire que ton style ne s’applique qu’à un élément h1 inclus dans un élément qui a la classe vonklafout.

Il faut soit que tu appliques ton style directement à la classe vonklafout, soit aux éléments h1, ou sinon que tu appliques ta classe au div qui contient ton h1.

+1 -0

Ce que veut dire Moté c’est que ton sélecteur CSS ne cible que les h1 descendants d’un élément avec la class vonklafout.

Or ici ton h1 porte lui-même cet attribut, pas un élément parent.

Le bon sélecteur serait donc plutôt h1.vonklafout (dans cet ordre pour préciser le type d’élément puis la class, et sans espace pour indiquer que c’est un même élément qui est ciblé par les deux morceaux). ;)

Salut viki53 :)

J’ai bien essayé avant de poster, mais je ne sais pas ce que j’ai fait car maintenant le h1.vonklafout fonctionne :D Par contre, j’ai un soucis de conflit de h1 (c’est pour ça que j’ai désiré mettre une class):

h1.vonklafout
{
font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", "Arial Black", sans-serif;
font-size: 35vw;
opacity: 0.3;
bottom: 0px;
vertical-align: bottom;
color: white;
}

hérite des valeurs de :

.sl-slider h1
{
	font-size: 35vw;
	line-height: 30vw;
	font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", "Arial Black", sans-serif;
	opacity: 0.3;
	text-align: center;
	color: white;
	margin-top:80px;
}

C’est pour ça que je ne voyait pas trop de changements :B

Que puis-je faire ???

Un grand merci ;)

SUPER !!! Merci pour l’info :)

Par contre , pourquoi le h1.vonklafout refuse de se mettre en bas ?

.sl-slider h1
{
	font-size: 35vw;
	line-height: 30vw;
	font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", "Arial Black", sans-serif;
	opacity: 0.3;
	text-align: center;
	color: white;
	margin-top:80px;
}

h1.vonklafout
{
	font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", "Arial Black", sans-serif;
	font-size: 15vw;
	opacity: 0.3;
	vertical-align: bottom;
	color: white;
	margin-left: auto;
	margin-right: auto;
	margin-top: unset;
	line-height: unset;
	bottom: 0px;
}

Merci et bonne soirée,

P.

Bonjour, Il y a du mieux avec la position absolute :) Mes CSS :

.vonklafout h1
{
	font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", "Arial Black", sans-serif;
	font-size: 15vw;
	opacity: 0.3;
	vertical-align: bottom;
	color: yellow;
	margin-top: unset;
	line-height : normal;
	bottom: 0;
	position: absolute;
	left: 50%;
	/* à 50%/50% du parent référent */
	transform: translate(-50%);
	/* décalage de 50% de sa propre taille */
}

.vonklafout
{
	height: 100%;
	width: 100%;
	bottom: 0;
	position: relative;
}

et mon HTML :

<div class="vonklafout">
	<h1>Texte</h1>
</div>

Par contre, le h1 est bien en bas, mais pas à bottom:0 :B J’ai cherché pendant des heures (oui :B ) Tout vérifié… rien trouvé :(

Une idée sur ce mystère ?

Bonne fin de journée,

P.

Salut !

La position configurée quand tu utilises position: absolute est relative (oui) au premier élément parent qui a une position: relative (ou le bloc englobant toute la page — body ou html, je ne sais jamais lequel… —, à défaut).

Qu’est-ce que tu entends par « à bottom: 0 » ? Tout en bas de la fenêtre du navigateur ? Si oui, il faut que body & html aient tous deux une hauteur d’au moins toute la hauteur de la fenêtre, à savoir 100vh1. Cela peut se régler avec un min-height, par exemple.

Note en passant : en positionnant en absolu, tu mets des éléments hors du flux normal de la page. Visuellement ça sera OK, mais un lecteur d’écran pourra ne pas voir ces éléments, ou alors pas dans l’ordre attendu, ce qui peut rendre la consultation du site compliquée pour une personne ayant besoin d’outils d’assistance.

Si ton but est de mettre un titre tout en bas, mais qu’il reste dans le flux normal de la page (car il en ferait partie), il serait plus pertinent d’utiliser des outils CSS de gestion de la mise en page, tel que les boîtes flexibles (flexboxes), ou CSS Grid (voir la section Guides de ces deux liens pour des tutoriels sur le sujet).


  1. vh pour viewport height, la hauteur de la zone d’affichage, en pourcentage (1vh étant 1 % de la hauteur de la zone d’affichage). L’unité vw (…width, pour sa largeur) existe aussi.
+1 -0

Bonjour Amaury,

Merci pour ta réponse.

Oui, bottom:0 pour que le h1 se trouve en bas de la fenêtre de navigation :)

Pour le min-height du body/html, cela ne change rien :(

Si il faut passer par flexbox… houlala, je ne m’y fait pas :B

Je vais regarder tes liens et tenter de comprendre qq chose ;)

Bonne soirée,

P.

Bonjour,

Oui, je sais :B

J’ai plutôt cherché ici : https://stackoverflow.com/questions/31000885/align-an-element-to-bottom-with-flexbox

Mais… non… toujours rien :(

Mes CSS :

.vonklafout h1
{
	font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", "Arial Black", sans-serif;
	font-size: 15vw;
	opacity: 0.3;
	vertical-align: bottom;
	color: yellow;
	margin-top: unset;
	line-height : normal;
	bottom: 0;
	position: absolute;
	left: 50%;
	align-self: flex-end;
	transform: translate(-50%);
	/* décalage de 50% de sa propre taille */
	display: inline-block;
}

.vonklafout
{
	height: 100%;
	width: 100%;
	bottom: 0;
	position: relative;
	display: flex;
}

Bonne journée ;)

P.

Le but de flexbox est justement de pas avoir à utiliser de position: absolute. Tu utilises encore les deux, tu auras forcément des conflits et donc des effets indésirables.

Commence avec un code simple, quite à repartir de zéro, puis ajoute petit à petit les éléments principaux : la position, puis les dimensions et marges, puis la mise en forme du texte, puis les couleurs…

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte