Bonjour et merci d'être indulgent, ceci est mon premier message sur ce forum !
Je viens de créer une petite page HTML avec une page CSS associée, pour afficher sur mon portable (ou ailleurs) différents chiffres venant d'un serveur basé sur un ESP32 qui récolte les données à afficher.
Cela donne ça sur l'écran :
upload/1691855562-85986-screenshot.jpg

Le code html :
<!DOCTYPE html>
<html lang="fr">
	<head>
		<meta http-equiv="refresh" content="10"; charset="UTF-8">
		<meta name="viewport" content="height=device-height, initial-scale=0.75">
		<meta name="description" content="Affichage de données en provenance d'un ESP32">
		<meta name="author" content="Roland MATHIS">
		<title>Serveur Web ESP32</title>
		<link rel="stylesheet" type="text/css" href="style.css">
	</head>
	<body>
		<h1 id="titre">Transmetteur<br>-- ESP32 --</h1>
		<p class="parag">
			Température intérieure : <b>%TEMP_INT% °C</b><br>
			Température chauffe-eau : <b>%TP% °C</b><br>
			<img src="trait.gif"><br>
			Conso EDF instantanée : <b>%PEDF% W</b><br>
			Conso EDF du jour : <b>%PEDF_JOUR% Wh</b><br>
			<img src="trait.gif"><br>
			Prod. solaire instantanée : <b>%PSOL% W</b><br>
			Prod. solaire du jour : <b>%PSOL_JOUR% Wh</b><br>
			<img src="trait.gif"><br>
			Tension batterie cave : <b>%VLIPO% V</b>
		</p>

		<p class="parag">
			<span>Station météo extérieure</span>
			<br><br>Température extérieure : <b>%TEMP% °C</b><br>
			Humidité extérieure : <b>%HUM% %%</b><br>
			<img src="trait.gif"><br>
			Tension batterie : <b>%VBATF% V</b><br>
			RSSI : <b>%RSSI% dBm</b>
		</p>
		
		<p class="jour" style="background-color: %JOUR%">Jour Tempo</p>
		
		<p class="jour" style="background-color: %JOUR1%">Jour Tempo + 1</p>
 </body>
</html>


Et le fichier CSS :
html {font-family: Helvetica, Arial, sans serif; text-align: center; background-color: BlanchedAlmond;
	}

span {font-style: italic; font-weight: 700; font-size: 26px;}

#titre {
	display: inline-block;
	font-size: 30px; color: yellow;
	background-color: #008CBA;
	border: 2px solid black; border-radius: 9px;
	box-shadow: 8px 10px 5px 3px #909090;
	padding: 5px 13px;  /* (H et B) (G et D) */ 
	margin: 4px auto 10px;  /* (H) (G et D) (B) "auto" pour G et D pour centrer le block */
	}

.parag {
	display: block;
	font-size: 22px; color: white;
	background-color: #606060;
	border: 2px solid black; border-radius: 14px;
	box-shadow: 8px 10px 5px 3px #909090;
	padding: 8px;  /* (les 4 côtés) */ 
	margin: 26px auto;  /* (H et B) (G et D) "auto" pour G et D pour centrer le block */
	width: 380px;
	}

.jour {
	display: inline-block;
	font-size: 22px; color: black; font-weight: 700;
	border: 2px solid black; border-radius: 8px;
	box-shadow: 8px 10px 5px 3px #909090;
	padding: 4px;
	margin: 0px 14px 0px;
	width: 165px;
	}


Pour un premier essai avec du CSS je suis assez content, mais il y a un truc que j'aimerai simplifier (si c'est possible) :
Les petites lignes blanches qui séparent des groupes de données sont en fait un fichier gif comme vous pouvez le voir.
J'aurai aimé me passer de ce fichier.
Une commande html <hr> me donne un trait qui va d'un côté à l'autre de l'écran (normal vu que <hr> c'est du genre "box") et me "casse" mon paragraphe.
J'ai aussi essayé d'insérer une ligne
<span class="ligne">&nbsp;&nbsp;&nbsp; etc etc... </span>

pour remplacer le trait horizontal en l'associant à une classe
.ligne {border-bottom: 2px solid white;}
, mais c'est très bof aussi, il faut ensuite jouer avec par exemple des choses comme
position: relative; top: -xxxpx;
pour placer la ligne où je veux, enfin bref ça me semble plus compliqué que le simple fichier gif.

Mais étant donné que je suis un débutant absolu en CSS, je me dis qu'il y a peut-être un moyen simple de remplacer mon fichier gif par du code qui tracerait ma ligne, par contre je ne vois pas comment, et c'est là que je suis ouvert à toute proposition !

D'avance merci !

Roland
Modifié par Rollmops67 (13 Aug 2023 - 12:52)
le plus simple est quand même les <p> séparés par un <hr>


<p class="parag">
Température intérieure : <b>%TEMP_INT% °C</b><br>
Température chauffe-eau : <b>%TP% °C</b></p>
<hr>
<p class="parag">
Conso EDF instantanée : <b>%PEDF% W</b><br>
Conso EDF du jour : <b>%PEDF_JOUR% Wh</b></p>
<hr>


tu peut aussi styliser les p avec un border bottom
Modifié par drphilgood (12 Aug 2023 - 22:12)
Bonsoir !
Comme je l'ai écrit dans mon premier message :
Une commande html <hr> me donne un trait qui va d'un côté à l'autre de l'écran.
Et en plus elle me coupe le paragraphe, stoppant la mise en forme liée à class="parag".

Roland
Bon, comme on dit la nuit porte conseil, et j'ai réussi à régler mon souci en utilisant bêtement la balise <div> qui sert ainsi de conteneur pour "enfermer" mon class="parag" et appliquer ses mises en forme à tout ce qui est entre les balises <div> et </div>.
Le body de mon fichier html devient :
	<body>
		<h1 id="titre">Transmetteur<br>-- ESP32 --</h1>
		
		<div class="parag">
			Température intérieure : <b>%TEMP_INT% °C</b><br>
			Température chauffe-eau : <b>%TP% °C</b><br>
			<hr>
			Conso EDF instantanée : <b>%PEDF% W</b><br>
			Conso EDF du jour : <b>%PEDF_JOUR% Wh</b><br>
			<hr>
			Prod. solaire instantanée : <b>%PSOL% W</b><br>
			Prod. solaire du jour : <b>%PSOL_JOUR% Wh</b><br>
			<hr>
			Tension batterie cave : <b>%VLIPO% V</b>
		</div>

		<div class="parag">
			<span>Station météo extérieure</span>
			<br><br>Température extérieure : <b>%TEMP% °C</b><br>
			Humidité extérieure : <b>%HUM% %%</b><br>
			<hr>
			Tension batterie : <b>%VBATF% V</b><br>
			RSSI : <b>%RSSI% dBm</b>
		</div>
		
		<p class="jour" style="background-color: %JOUR%">Jour Tempo</p>
		
		<p class="jour" style="background-color: %JOUR1%">Jour Tempo + 1</p>
 </body>


Et dans le fichier css, j'ai juste rajouté cette ligne :
hr { color: white; margin: 0.4em 25px;}


Hopla !

Roland
Modifié par Rollmops67 (13 Aug 2023 - 14:54)
Bonsoir,

Je viens de voir sur MDN que <hr> n'est plus aussi pratique qu'avant en CSS semble t il : le 'width' est déprecié (not for use in new websites) alors que c'était bien utile.

On modifiant un peu le code html et le css, on peut obtenir ceci (mais c'est un peu plus verbeux que l'original).

upload/1691952860-61012-transmetteuresp.png
Modifié par alain_47 (13 Aug 2023 - 20:54)
Bonjour Alain et merci pour la réponse.
MDN dis bien que width est déprécié, mais c'est valable en html si j'ai bien compris (mais je peux me tromper !), et puis de toute façon je ne l'utilise pas dans le cas de mon <hr>

J'ai juste une mise en forme en CSS :
hr {border: 0; height: 1px; margin: 0.4em 0px;
	background-image: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,1), rgba(255,255,255,0));
	}


Pour le code html il est dans le message au-dessus du tien.

Le résultat est plutôt sympa :
upload/1691965237-85986-screenshot2.jpg

Roland
Bonjour,
Oui on peut tjrs l'utiliser en HTML ; c'est le CSS qui devient limité. J'ai utilisé un span à la place (ce qui me semble une hérésie mais puisqu'on nous enlève le CCS, alors...).

Pour info, je te mets mon code. J'ai dit qu'il était plus verbeux que le tien car j'ai ajouté des lignes dans le HTML pour pouvoir utiliser en CSS les flex-box.

Bonne soirée, et bravo pour le ESP. J'ai toujours voulu le faire (arduino...) mais j'ai eu la flemme de m'y mettre Smiley smile .

Bonne soirée.


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Transmetteur ESP 32</title>
	<link rel="stylesheet" href="style.css">
</head>
<body>

	<div id="container">
		<h1 id="titre">Transmetteur<br>-- ESP32 --</h1>
		<div class="parag">
			<p>
				Température intérieure : <b>25.1 °C</b><br>
				Température chauffe-eau : <b>75 °C</b>
			</p>
				<span class="hr">&nbsp;</span>
			<p>
				Conso EDF instantanée : <b>27 W</b><br>
				Conso EDF du jour : <b>792 Wh</b>
			</p>
				<span class="hr">&nbsp;</span>
			<p>
				Prod. solaire instantanée : <b>100 W</b><br>
				Prod. solaire du jour : <b>5237 Wh</b>
			</p>
				<span class="hr">&nbsp;</span>
			<p>
				Tension batterie cave : <b>39.8 V</b>
			</p>
		</div>

		<div class="parag">
			<h2>Station météo extérieure</h2>
			<p>
				Température extérieure : <b>24.4 °C</b><br>
				Humidité extérieure : <b>93 %</b>
			</p>
				<span class="hr">&nbsp;</span>
			<p>
				Tension batterie : <b>3.86 V</b><br>
				RSSI : <b>-71 dBm</b>
			</p>
		</div>
		
		<div id="jour">
			<p>Jour Tempo</p>
			<p>Jour Tempo + 1</p>
		</div>
	</div>
 
</body>
</html>




html {font-family: Arial, Helvetica, sans-serif; text-align: center; 
background-color: BlanchedAlmond;
}

body{font-size: 16px;}

#container{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

h1{font-size: 1.4rem;}
h2{font-style: italic; font-weight: 700; font-size: 1.2rem;
 margin-top: 2px;}


#titre {
color: yellow;
background-color: #008CBA;
border: 2px solid black; 
border-radius: 9px;
box-shadow: 8px 10px 5px 3px #909090;
padding: 5px 13px; 
margin-bottom: 30px;
}

.parag {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    font-size: 1.1rem;
    line-height: 1.3rem; letter-spacing: 1px;
    color: white;
    background-color: #606060;
    border: 2px solid black;  
    border-radius: 14px;
    box-shadow: 8px 10px 5px 3px #909090;
    padding: 8px 0 8px 0;
    width: 370px;
    margin-bottom: 25px;
}
.parag p{margin: 5px; text-align: left;}
.hr{width: 40%; background-color: #909090; height: 1px; 
padding: 0; margin: 6px}

#jour{
    display: flex;
    justify-content: center;
    width: 375px;
}
#jour p{
font-size: 1.2rem; font-weight: bold;
color: rgb(31, 56, 103);
padding: 4px; width: 150px;
background-color: #008CBA;
border: 2px solid black; border-radius: 8px;
box-shadow: 8px 10px 5px 3px #909090;
}
#jour p:first-child{margin-right: 12px;}
#jour p:last-child{margin-left: 12px;}

Modifié par alain_47 (14 Aug 2023 - 17:55)
Je débute tout juste en CSS et je n’appréhende pour l'instant pas encore le concept des flexbox (je sais juste que ça existe !)
Faudra que j'essaie de comprendre.

Pour l'Arduino, le principal est d'avoir un but ou un projet précis, ensuite c'est comme tout, on apprend sur le tas, même si c'est chronophage (mais passionnant !)
Je ne me suis mis à l'ESP32 qu'en début d'année, avec les possibilités de connexion en wifi ou bluetooth ( et la plus grande quantité de mémoire), ça ouvre des perspectives totalement nouvelles comparé à un Arduino classique.
Ma page html est est stockée dans un serveur qui se trouve dans l'ESP32 de ce montage :
upload/1692042092-85986-img20230804203548.jpg

Cordialement, Roland