probleme affichage app web sur different taille d ' écrans
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

probleme affichage app web sur different taille d ' écrans



  1. #1
    gren

    probleme affichage app web sur different taille d ' écrans


    ------

    bonjour je ne sais pas si ma question est bien placée mais j'ai un html et un CSS et je n'arrive pas à le rendre responsive je n'arrive pas à aligner les 3 conteneur si vous pouvez m'aider sur une meme ligne
    Code:
            body {
                font-family: Arial, sans-serif;
                margin: 0;
                padding: 0;
                background-color: #fafafa;
            }
    
     header {
        background-image: url('/site/images/good.jpg'); 
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        color: white;
        padding: 20px;
        text-align: center;
    }
    
    header h1 {
        background: rgba(0, 0, 0, 0); 
        display: inline-block;
        padding: 10px 20px;
        border-radius: 10px;
        color: white; 
        font-size: 2em;
        font-weight: bold;
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); 
    }
    
    .header-buttons {
        margin-top: 10px;
    }
    
    .header-button {
        background: linear-gradient(135deg, #4CAF50, #45a049); 
        color: #ffffff;
        padding: 10px 20px;
        border-radius: 25px; 
        text-decoration: none;
        font-weight: bold;
        border: 2px solid #4CAF50;
        margin: 0 10px;
        display: inline-block;
        transition: all 0.3s ease; 
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); 
    }
    
    .header-button:hover {
        background: linear-gradient(135deg, #45a049, #4CAF50); 
        color: #ffffff;
        border-color: #45a049;
        box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); 
        transform: translateY(-2px); 
    }
    
    .header-button:active {
        background: linear-gradient(135deg, #45a049, #4CAF50); 
        transform: translateY(1px); 
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    }
    }
    
            .container {
                display: flex;
                justify-content: space-between;
                padding: 20px;
            }
    
            .left {
                display: flex;
                flex-direction: row;
                width: 70%;
                gap: 20px;
            }
    
            .container-box {
    			width: 30%;
                background-color: #ffffff;
                border: 1px solid #ddd;
                padding: 20px;
                border-radius: 10px;
                box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
                text-align: center;
                position: flex;
                overflow: hidden;
                
            }
    
            .carousel-container {
                position: relative;
                width: 100%;
                height: 400px;
                overflow: hidden;
                border-radius: 10px;
                background: #eee;
                margin: 0 auto;
            }
    
            .carousel-images {
                display: flex;
                transition: transform 0.5s ease;
                width: 100%;
                height: 100%;
            }
    
            .carousel-images img {
                min-width: 100%;
                height: 100%;
                object-fit: cover;
            }
    
            .carousel-button {
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
                background-color: rgba(0, 0, 0, 0.5);
                color: white;
                border: none;
                padding: 10px;
                cursor: pointer;
                z-index: 1000;
                border-radius: 50%;
            }
    
            .carousel-button.prev {
                left: 10px;
            }
    
            .carousel-button.next {
                right: 10px;
            }
    
    .right {
        width: 15%;
        padding: 10px;
        display: flex;
        flex-direction: column;
        gap: 50px;
        height: 500px; 
        
    }
    
            .right h2 {
                background-color: #4CAF50;
                color: white;
                padding: 10px;
                margin-bottom: 10px;
                border-radius: 10px;
            }
    
    .right p {
        padding: 10px;
        border: 1px solid #ddd;
        border-radius: 10px;
        background-color: white;
        margin-bottom: 20px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }
    
    .best-player, .best-horse {
        max-width: 100%;
        max-height: 150px;
        object-fit: cover;
        border-radius: 10px;
        border: 1px solid #ddd;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }
    
    .container-box h3 {
        background-color: #4CAF50;
        color: white;
        padding: 10px;
        border-radius: 10px;
        margin: 0 0 20px;
    }
    
    .ranking-table {
        
        border-collapse: collapse;
        margin-top: 20px;
    }
    
    .ranking-table th, .ranking-table td {
    	width: 30%;
        padding: 10px;
        border: 1px solid #ddd;
        text-align: left;
    }
    
    .ranking-table th {
    	width: 30%;
        background-color: #4CAF50;
        color: white;
    }
    
    .ranking-table tr:nth-child(even) {
        background-color: #f2f2f2;
    }
    
    
    .green-container {
        background-color: #4CAF50; 
        color: white;
        padding: 20px;
        border-radius: 10px; 
        margin-top: 20px; 
        width: 71%;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); 
        text-align: center; 
    }
    
    
    @media (max-width: 768px) {
        .right p {
            padding: 8px;
            margin-bottom: 15px;
        }
    
        .best-player, .best-horse {
            max-height: 120px;
        }
    
        .container-box h3 {
            padding: 8px;
        }
    
        .ranking-table th, .ranking-table td {
            padding: 8px;
        }
    
        .green-container {
            padding: 15px;
            width: 100%;
        }
    }
    
    @media (max-width: 480px) {
        .right p {
            padding: 5px;
            margin-bottom: 10px;
        }
    
        .best-player, .best-horse {
            max-height: 100px;
        }
    
        .container-box h3 {
            padding: 5px;
        }
    
        .ranking-table th, .ranking-table td {
            padding: 5px;
        }
    
        .green-container {
            padding: 10px;
            width: 100%;
        }
    }

    -----

  2. #2
    umfred

    Re : probleme affichage app web sur different taille d ' écrans

    il manque le html, non? et quels sont les 3 containers que tu veux aligner ?

  3. #3
    Ikhar84
    Animateur Informatique

    Re : probleme affichage app web sur different taille d ' écrans

    Effectivement sans le code HTML et les "conteneurs", ce sera bien difficile, voir rébarbatif, de guider vers la résolution du(des) problème(s)…
    J'ai glissé Chef !

  4. #4
    gren

    Re : probleme affichage app web sur different taille d ' écrans

    merci de vos réponses j ais pas mis le html ça fessai déjà beaucoup à lire je suis en train de tous refaire mais vos réponses seront toujours utiles, Tout doit être aligné

    <div class="container-box">
    <h3>Top 3 Joueurs</h3>
    <table class="ranking-table">
    <thead>
    <tr>
    <th>Rang</th>
    <th>Nom</th>
    <th>XP</th>
    <th>Niveau</th>
    <th>Image</th>
    </tr>
    </thead>
    <tbody>
    <?php foreach ($topPlayers as $index => $player): ?>
    <tr>
    <td><?= $index + 1 ?></td>
    <td><?= htmlspecialchars($player['username']); ?></td>
    <td><?= htmlspecialchars($player['xp']); ?></td>
    <td><?= htmlspecialchars($player['niveau']); ?></td>
    <td>
    <?php if (!empty($player['image'])): ?>
    <img src="<?=htmlspecialchars($play er['image']); ?>" alt="Image du joueur" class="best-player">
    <?php else: ?>
    <p>Aucune image disponible.</p>
    <?php endif; ?>
    </td>
    </tr>
    <?php endforeach; ?>
    </tbody>
    </table>
    </div>

    <div class="container-box">
    <h3>Top 3 Chevaux</h3>
    <table class="ranking-table">
    <thead>
    <tr>
    <th>Rang</th>
    <th>Nom du Cheval</th>
    <th>XP</th>
    <th>Niveau</th>
    <th>Image</th>
    </tr>
    </thead>
    <tbody>
    <?php foreach ($topHorses as $index => $horse): ?>
    <tr>
    <td><?= $index + 1 ?></td>
    <td><?= htmlspecialchars($horse['nom_cheval']); ?></td>
    <td><?= htmlspecialchars($horse['xp']); ?></td>
    <td><?= htmlspecialchars($horse['niveau']); ?></td>
    <td>
    <?php if (!empty($horse['image'])): ?>
    <img src="<?=htmlspecialchars($hors e['image']); ?>" alt="Image du cheval" class="best-horse">
    <?php else: ?>
    <p>Aucune image disponible.</p>
    <?php endif; ?>
    </td>
    </tr>
    <?php endforeach; ?>
    </tbody>
    </table>
    </div>
    </div>

    <div class="right">
    <h2>reste vide</h2>

    </div>
    </div>

    </body>
    </html>
    Dernière modification par JPL ; 25/09/2024 à 14h45. Motif: ajout de la balise HTML

  5. A voir en vidéo sur Futura
  6. #5
    gren

    Re : probleme affichage app web sur different taille d ' écrans

    desoler il manquai le carousel

    <div class="container">
    <div class="main-content">
    <div class="container-box">
    <div class="carousel-container">
    <button class="btn-action btn-1" style="background-image: url('site/images/good.jpg');">Bouton 9</button>
    <div class="carousel-images" id="carouselImages">
    <?php
    // Répertoire contenant les images
    $directory = 'site/images/';
    $images = glob($directory . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);

    if (empty($images)) {
    echo '<p>Aucune image trouvée dans le répertoire.</p>';
    } else {
    foreach ($images as $image) {
    $imageName = basename($image);
    echo '<img src="' . $directory . $imageName . '" alt="Image">';
    }
    }
    ?>
    </div>
    <button class="carousel-button prev" onclick="prevImage()">❮</button>
    <button class="carousel-button next" onclick="nextImage()">❯</button>
    </div>
    </div>

    <div class="container-box">
    <h3>Top 3 Joueurs</h3>
    <table class="ranking-table">
    <thead>
    <tr>
    <th>Rang</th>
    <th>Nom</th>
    <th>XP</th>
    <th>Niveau</th>
    <th>Image</th>
    </tr>
    </thead>
    <tbody>
    <?php foreach ($topPlayers as $index => $player): ?>
    <tr>
    <td><?= $index + 1 ?></td>
    <td><?= htmlspecialchars($player['username']); ?></td>
    <td><?= htmlspecialchars($player['xp']); ?></td>
    <td><?= htmlspecialchars($player['niveau']); ?></td>
    <td>
    <?php if (!empty($player['image'])): ?>
    <img src="<?=htmlspecialchars($play er['image']); ?>" alt="Image du joueur" class="best-player">
    <?php else: ?>
    <p>Aucune image disponible.</p>
    <?php endif; ?>
    </td>
    </tr>
    <?php endforeach; ?>
    </tbody>
    </table>
    </div>

    <div class="container-box">
    <h3>Top 3 Chevaux</h3>
    <table class="ranking-table">
    <thead>
    <tr>
    <th>Rang</th>
    <th>Nom du Cheval</th>
    <th>XP</th>
    <th>Niveau</th>
    <th>Image</th>
    </tr>
    </thead>
    <tbody>
    <?php foreach ($topHorses as $index => $horse): ?>
    <tr>
    <td><?= $index + 1 ?></td>
    <td><?= htmlspecialchars($horse['nom_cheval']); ?></td>
    <td><?= htmlspecialchars($horse['xp']); ?></td>
    <td><?= htmlspecialchars($horse['niveau']); ?></td>
    <td>
    <?php if (!empty($horse['image'])): ?>
    <img src="<?=htmlspecialchars($hors e['image']); ?>" alt="Image du cheval" class="best-horse">
    <?php else: ?>
    <p>Aucune image disponible.</p>
    <?php endif; ?>
    </td>
    </tr>
    <?php endforeach; ?>
    </tbody>
    </table>
    </div>
    </div>

    <div class="right">
    <h2>reste vide</h2>

    </div>
    </div>

    </body>
    </html>

  7. #6
    umfred

    Re : probleme affichage app web sur different taille d ' écrans

    tu veux aligner les 2 div "container-box" et la div "right" ?
    on voit qu'il y a un problème de balises pour commencer (a priori dans ce que tu nous a fourni): on voit 2 balises fermantes de div à la fin de la 2nde "container-box", et 2 balises fermantes de div à la fin de "right", donc ça sous-entend que les 2 "container-box" sont dans une div et cette div est avec "right" dans une autre div
    Code:
    <div ...>
        <div ....>
             <div class="container-box">
             <!--top 3 joueurs -->
             </div>
             <div class="container-box">
             <!--top 3 chevaux -->
             </div>
        </div>
        <div class="right">
        </div>
    </div>
    Dans une version simplifiée, je ne vois a priori pas de problème d'alignement des divs.
    Peut-être montrer aussi visuellement ta problématique (n'oublie pas que tu peux jouer avec "l'inspecteur de page" des navigateurs, ça permet aussi de voir les styles utilisés, ça permet de voir aussi que "position:flex;" n'est pas valide (flex n'est pas une valeur valide pour position))

  8. #7
    JPL
    Responsable des forums

    Re : probleme affichage app web sur different taille d ' écrans

    IL manque toujours le HTML du début.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  9. #8
    gren

    Re : probleme affichage app web sur different taille d ' écrans

    merci pour vos intérêts j ais tous refait ancor un souci avec le conteneur droit mais pas grave
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Test Ma Page Web</title>
    <link rel="stylesheet" type="text/css" href="site/css/index_html.css">
    </head>
    <body>

    <!-- Conteneur de la bannière -->
    <div class="textstyle1">
    <!-- Section avec la bannière en image -->
    <div id="banniere">
    <div id="banniere_padding"></div>
    <div class="button-container">


    <a href="site/php/inscription.php" class="btn" id="signup-btn">Inscription</a>
    <a href="site/php/connexion.php" class="btn" id="login-btn">Connexion</a>



    </div>
    </div>

    <!-- Section du diaporama -->
    <div id="diaporama">
    <div id="diaporama_padding">
    <div class="textstyle1">
    <div id="slide_show">
    <script type="text/javascript" src="rc_images/wsp_slideshow.js"></script>
    <script type="text/javascript">
    var js_slide_show = new wsp_slideshow(
    'slide_show',
    [
    'rc_images/_6ee9e37a_ae2c_4461_a662_6d65f bc489c9.jpg',
    'rc_images/_76b9c476_5cbd_47a8_891e_c2d6a e801107.jpg',
    'rc_images/_96de6952_9bf9_4e36_b3ff_6bdcd ec69f8b.jpg',
    'rc_images/_335896c7_e8d6_4a5f_b89f_9e427 23a1c72.jpg',
    'rc_images/1.gif',
    'rc_images/alz_b.png'
    ],
    'fade', // Effet de transition "fondu"
    1000, // Durée de l'effet (1 seconde)
    250, // Temps entre les images
    'width', null
    );
    </script>
    </div>
    </div>
    <div style="clear:both"></div>
    </div>
    </div>

    <!-- Conteneurs vides pour l'agencement de la page -->
    <div id="conteneur_gauche" class="conteneur">
    <h3>Top 3 Joueurs</h3>
    <div id="conteneur_gauche_padding"> </div>
    <table class="ranking-table">
    <thead>
    <tr>
    <th>Rang</th>
    <th>Nom</th>
    <th>XP</th>
    <th>Niveau</th>
    <th>Image</th>
    </tr>
    </thead>
    <tbody>
    <?php foreach ($topPlayers as $index => $player): ?>
    <tr>
    <td><?= $index + 1 ?></td>
    <td><?= htmlspecialchars($player['username']); ?></td>
    <td><?= htmlspecialchars($player['xp']); ?></td>
    <td><?= htmlspecialchars($player['niveau']); ?></td>
    <td>
    <?php if (!empty($player['image'])): ?>
    <img src="<?= htmlspecialchars($player['image']); ?>" alt="Image du joueur" class="best-player">
    <?php else: ?>
    <p>Aucune image disponible.</p>
    <?php endif; ?>
    </td>
    </tr>
    <?php endforeach; ?>
    </tbody>
    </table>
    </div>

    <div id="conteneur_centre" class="conteneur">
    <h3>Top 3 Chevaux</h3>
    <div id="conteneur_centre_padding"> </div>
    <table class="ranking-table">
    <thead>
    <tr>
    <th>Rang</th>
    <th>Nom</th>
    <th>XP</th>
    <th>Niveau</th>
    <th>Image</th>
    </tr>
    </thead>
    <tbody>
    <?php foreach ($topHorses as $index => $horse): ?>
    <tr>
    <td><?= $index + 1 ?></td>
    <td><?= htmlspecialchars($horse['nom_cheval']); ?></td>
    <td><?= htmlspecialchars($horse['xp']); ?></td>
    <td><?= htmlspecialchars($horse['niveau']); ?></td>
    <td>
    <?php if (!empty($horse['image'])): ?>
    <img src="<?= htmlspecialchars($horse['image']); ?>" alt="Image du cheval" class="best-horse">
    <?php else: ?>
    <p>Aucune image disponible.</p>
    <?php endif; ?>
    </td>
    </tr>
    <?php endforeach; ?>
    </tbody>
    </table>
    </div>

    <div id="conteneur_droit">
    <h2>aaa</h2>
    <p>aaa</p>
    <h2>aaa</h2>
    <p>aaa</p>
    <h2>aaa</h2>
    <p>aaa</p>
    </div>

    <!-- Conteneur vert sous les trois conteneurs -->
    <div class="green-container">
    <p>aaaaaaaaaaaaaaaaaaaaaaaaa a</p>
    </div>
    </div>

    </body>
    </html>


    le css
    /* Styles des liens */
    a { color: #5D5D9E; }
    a:visited { color: #5D5D9E; }
    a:active { color: #5C615E; }
    a:hover { color: #B2B3B4; }

    /* Styles généraux pour HTML et BODY */
    html, body {
    min-height: 100%;
    }

    body {
    background-color: #FFFFFF;
    background-image: url('../rc_images/good.jpg');
    background-position: top left;
    background-size: cover;
    padding: 0;
    margin: 0;
    }

    .textstyle1 {
    text-align: left;
    }
    /* Conteneur vert sous les trois conteneurs */

    #right {
    width: 15%;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 50px;
    height: 500px; /* Ajustez cette valeur selon vos besoins */

    }
    /* Conteneur de la bannière avec une image */
    #banniere {
    vertical-align: top;
    border-radius: 25px;
    position: relative;
    display: inline-block;
    width: 100%;
    min-height: 150px;
    background-color: #FFFFFF;
    background-image: url('../images/baniere2.png');
    background-position: top left;
    background-size: cover;
    margin-bottom: 20px; /* Ajoute un espace de 20px en dessous de la bannière */
    }

    #banniere_padding {
    margin: 10px;
    display: block;
    }

    .button-container {
    position: absolute;
    top: 50px;
    right: 250px;
    }

    #btn {
    background-color: #4CAF50;
    color: white;
    padding: 10px 20px;
    margin: 5px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    }

    #btn:hover {
    background-color: #45a049;
    }

    /* Conteneur du diaporama d'images */
    #diaporama {
    box-sizing: border-box;
    vertical-align: top;
    border-radius: 15px;
    position: relative;
    display: inline-block;
    width: 25%;
    min-height: 500px;
    background: none;
    border: 1px solid #404040;
    margin-right: 20px; /* Ajoute un espace de 20px à droite du diaporama */
    }

    #diaporama_padding {
    margin: 10px;
    display: block;
    }

    #slide_show {
    overflow: hidden;
    vertical-align: bottom;
    position: relative;
    display: inline-block;
    width: 100%;
    height: 500px;
    background: none;
    }

    /* Styles des conteneurs gauche et centre */
    .conteneur {
    box-sizing: border-box;
    vertical-align: top;
    border-radius: 25px;
    position: relative;
    display: inline-block;
    width: 25%;
    min-height: 500px;
    max-height: 400px; /* Limite la hauteur maximale */
    background-color: blue;
    /*border: 10px solid #404040;*/
    color: white;
    padding: 10px;
    border-radius: 10px;
    margin: 0 20px 20px 0; /* Ajoute un espace de 20px à droite et en bas des conteneurs */
    overflow: hidden; /* Assure que le contenu ne dépasse pas */
    text-align: center; /* Centre le texte à l'intérieur du conteneur */
    }

    /* Ajustement des images dans les tables */
    .ranking-table img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
    text-align: center; /* Centre le texte à l'intérieur du conteneur */
    }

    /* Assurez-vous que la table ne dépasse pas du conteneur */
    .ranking-table {

    width: 100%;
    table-layout: fixed; /* Assure que la table s'adapte au conteneur */
    text-align: center; /* Centre le texte à l'intérieur du conteneur */
    }

    .ranking-table th, .ranking-table td {

    padding: 10px;
    border: 1px solid #ddd;
    /*text-align: left;*/
    word-wrap: break-word; /* Permet de casser les mots longs */
    text-align: center; /* Centre le texte à l'intérieur du conteneur */
    }

    .ranking-table th {
    background-color: #4CAF50;
    color: red;
    }

    .ranking-table tr:nth-child(odd) {
    background-color: green; /* Couleur pour les lignes impaires */
    }

    .ranking-table tr:nth-child(even) {
    background-color: green; /* Couleur pour les lignes paires */
    }

    /* Conteneur droit */
    #conteneur_droit {
    position: absolute;
    left: 79%;
    top: 17%;
    width: 19%;
    min-height: 600px;
    background-color: #FF80C0;
    /*border: 10px solid #404040;*/
    text-align: center; /* Centre le texte à l'intérieur du conteneur */

    }

    /* Conteneur du pied de page */
    #pied_de_page {
    width: 100%;
    min-height: 150px;
    background-color: #00FF40;
    border: 1px solid #404040;
    }

    /* Conteneur vert sous les trois conteneurs */
    .green-container {
    background-color: #4CAF50; /* Couleur de fond vert */
    color: white;
    padding: 20px;
    border-radius: 25px; /* Coins arrondis */
    margin-top: 20px; /* Espacement au-dessus du conteneur vert */
    width: 75%;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Ombre portée */
    text-align: center; /* Centre le texte à l'intérieur du conteneur */
    }

    /* Media Queries pour les écrans plus petits */
    @media (max-width: 1200px) {
    .conteneur {
    width: 33%;
    }
    #conteneur_droit {
    left: 66%;
    width: 33%;
    }
    }

    @media (max-width: 992px) {
    .conteneur {
    width: 50%;
    }
    #conteneur_droit {
    position: relative;
    left: 0;
    top: 0;
    width: 100%;
    min-height: auto;
    }
    }

    @media (max-width: 768px) {
    .conteneur {
    width: 100%;
    }
    #diaporama {
    width: 100%;
    }
    #slide_show {
    height: auto;
    }
    }

Discussions similaires

  1. [Outils/Fab/Comp] protocole d'affichage des écrans OLED
    Par abracadabra75 dans le forum Électronique
    Réponses: 11
    Dernier message: 06/09/2019, 09h55
  2. Ecrans d'affichage d'indicateurs
    Par invite2fe91aaa dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 25/03/2011, 16h03
  3. Taille d'affichage d'images aléatoires
    Par invite59a3adea dans le forum Internet - Réseau - Sécurité générale
    Réponses: 7
    Dernier message: 19/05/2004, 12h40