Pages :
Bonjour à tous,

J'ai un souci je veux faire une div avec un hexagone en fond et donner l'impression qu'il contient du texte et mon site doit être responsive sauf que dans ma situation mon texte est dans l'hexagone mais mon Hexagone s'adapte à la hauteur du texte qu'est ce que je dois changer pour mettre mon hexagone dans sa taille initiale et le texte au centre ?


<html>

    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <link rel="stylesheet" href="css/styles.css">
        <link rel="stylesheet" href="css/bootstrap/css/bootstrap.min>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="msapplication-TileColor" content="#b0d139">
        <meta name="msapplication-TileImage" content="chemin/Logo.png">
        <meta name="application-name" content="Lycée Cifflé">
        <link rel="icon" href="http://ebialec.bialec.fr/Ciffle/css/images/Logo.png">
        <script src="css/bootstrap/js/jquery.js"></script>
        <script src="css/bootstrap/js/bootstrap.min.js"></script>

        <title> Lycée Cifflé - Accueil</title>
    </head>

    <body>

        <!--Div de l'entête-->
        <header>

            <div class="container-fluid">
                <!--Bandeau-->
                <div class="bandeau">
                    <!--Logo-->
                    <div class="Logo">

                    </div>
                </div>
            </div>
            <!--Barre de navigation-->
            <nav class="navbar navbar-default">
                <div class="container-fluid">
                    <ul class="nav navbar-nav">
                        <li class="cursor active"> <a href="index.html">Accueil</a> </li>
                        <li class="cursor"> <a href="presentation.html">Présentation</a>
                        </li>
                        <li class="dropdown cursor"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Formations <span class="caret"></span></a>
                            <ul class="dropdown-menu">
                                <li><a href="Formation_1.html">Formation 1</a>
                                </li>
                                <li><a href="Formation_2.html">Formation 2</a>
                                </li>
                                <li><a href="Formation_3.html">Formation 3</a>
                                </li>
                            </ul>
                        </li>
                        <li class="cursor"> <a href="vie_lycee.html">Vie du lycée</a>
                        </li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <li class="cursor"> <a href="contact.html">Contact</a>
                        </li>
                    </ul>
                </div>
            </nav>
        </header>
        <div class="container">
            <div class="row ">
                <div class=" hexa col-lg-6">
                    <a>
                        Construit entre 1928 et 1933 d'après les plans de l'architecte Frédéric Wielherski le lycée professionnel doit son nom à Paul Louis Cyfflé
                    </a>
                </div>
            </div>
            <div class="row">
                <div class=" col-lg-offset-4 hexa col-lg-6 hexa">
                    <a>
                        Les différentes études possibles
                    </a>
                </div>
            </div>
        </div>
        <footer>
            <p>1 rue Cyfflé - CS 55236 54052 Nancy Cedex - Tel: 03 83 35 11 37 - Fax: 03 83 35 97 10 - ce.0540082@ac-nancy-metz.fr
            </p>
        </footer>
    </body>

</html>


html {
    height: 100%;
    box-sizing: border-box;
}

.element {
  margin-top: 50vh; /* poussé de la moitié de hauteur de viewport */
  transform: translateY(-50%); /* tiré de la moitié de sa propre hauteur */
}

body {
    min-height: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.map-responsive {
    overflow: hidden;
    padding-bottom: 30%;
    position: relative;
    height: 0%;
}

.map-responsive iframe {
    left: 0;
    top: 0;
    height: 100%;
    width: 40%;
    position: absolute;
    border: none;
}

.hexa {
    text-align: justify;
    text-align: center;
    vertical-align: middle;
    background: url(http://ebialec.bialec.fr/Ciffle/css/images/Hexagone_bordure_bleu.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
        
}

.text {
    position:relative;
    margin: auto;
    width: 50%;

}


.cursor:hover {
    background-color: lightgray;
}

.bandeau {
    height: 20%;
    background-position: center;
    background-image: url(http://ebialec.bialec.fr/Ciffle/css/images/Bandeau.jpg);
    background-size: contain;
    background-repeat: no-repeat;
}

.Logo {
    height: 50%;
    background-position: left;
    background-image: url(http://ebialec.bialec.fr/Ciffle/css/images/Logo.png);
    background-size: contain;
    background-repeat: no-repeat;
}


footer {

    background: url(http://ebialec.bialec.fr/Ciffle/css/images/footer.png);
    height: 50px;
    text-align: center;
    width: 100%;
    color: firebrick;
    box-sizing: border-box;
}

.active {
    background-color: grey;
}

.lien {
    text-decoration: none;
    overflow: hidden;
}



Merci Smiley biggrin
Modifié par Tryno (06 Jun 2018 - 08:34)
Greg_Lumiere a écrit :
Peut-être quelque-chose dans ce genre là, non ?


Euh bah oui c'est ça Smiley bouncepurple

Mais coup si les personnes qui seront les possesseurs du site et qu'il font changer , les couleurs des hexagones par exemple , il vaut mieux que je fasse ça en svg ou toujours avec mes images ?
Ca donne pas la même chose chez moi Smiley crash

Le texte se barre un peu partout sur la page mais l'hexagone est joli Smiley lol
Modérateur
L'avantage du Svg est qu'il n'y pas de perte à l'agrandissement et une fois les chemins établis le rendu est impec à n'importe quelle taille. Une image trop agrandie fera apparaît les lignes en escalier et maintenir des images à diverses résolutions est toujours un gros effort à fournir en cas de changement.

Contenir le texte dans un objet contenant des lignes obliques t'obligera à tricher afin de ne pas en sortir (jouer avec les émargements et les espacements voire même les retours à la ligne).
Il me semble de mémoire que le W3C a pondu une propriété Css (shape-bidulle) pour donner une forme à un conteneur mais sa compatibilité est très (très) limitée.

Tryno a écrit :
Ca donne pas la même chose chez moi Smiley crash

Le texte se barre un peu partout sur la page mais l'hexagone est joli Smiley lol

Le texte de l'hexagone ? A dire vrai j'ai fait ça à la va vite pour te montrer le principe Smiley confused
Modérateur
Ha oui, j'oubliais un détail qui a son importance:
Un hexagone ne peut l'être que si son conteneur est carré. Donc tu es obligé d'imposer des tailles ou au moins des limites pour que la disproportion ne soit pas une tentative d’assassinat des yeux de tes "victimes". Smiley cligne
Donc le svg est la meilleure solution à priori , je vais voir l'histoire du shape-machin même si ça à l'air casse gueule un peu.

Du coup j'ai à peu près compris le principe
Greg_Lumiere a écrit :
Ha oui, j'oubliais un détail qui a son importance:
Un hexagone ne peut l'être que si son conteneur est carré. Donc tu es obligé d'imposer des tailles ou au moins des limites pour que la disproportion ne soit pas une tentative d’assassinat des yeux de tes "victimes". Smiley cligne


Mettre une width et height en 100% pourrait aider ou ca va être compliquer un SVG en responsive avec bootstrap ?
Modérateur
Bootstrap appartient pour moi au domaine de l'inconnu mais je ne vois pas en quoi l'intégration d'un svg et sa personnalisation seraient impossible dans ce contexte.

100% de quoi à qui ? Mettre 100% sur width et height ne formera pas un carré car ces pourcentages n'ont pas la même référence. C'est bien pour ça que dans mon exemple j'ai mis des vw (j'ai gardé la même unité de mesure pour w/h)

A brûle pourpoint je ne vois pas autre solution en css que de fixer la taille du conteneur et de faire varier cette valeur avec des media-queries en fonction de la taille du viewport.

Autrement il faut se tourner vers JS. Fixer par exemple la largeur à 100% et demander à JS de la calculer puis d'appliquer cette valeur au height.
Dans cet esprit on peut même aller plus loin en faisant calculer l'encombrement du texte. Bref, un joyeux casse-tête en perspective.
Modérateur
Avant de te lancer dans le svg, il serait peut-être plus sage de trouver solution avec ton image. Tu pourras, si tes essais deviennent concluant, remplacer l'image par un svg à posteriori Smiley smile
Smiley hum

Vive la première année de BTS , je sens que le stage va être extrêmement long

Merci , je vais explorer les solution pis bon bah bootstrap on va voir avec la doc
Modérateur
OU alors....

Si le texte a vocation à être définitif et immuable, tout faire en svg et ajouter en avant plan le lien qui se superposera à la figure. C'est aussi une possibilité.
Hum...Théorique le texte ne doit pas changer puisque c'est l'histoire de l'école mais bon pas sur du tout donc je pense pas prendre de risques
Modifié par Tryno (01 Jun 2018 - 11:16)
Modérateur
OU alors, ultime option :
<html>

    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <link rel="stylesheet" href="css/styles.css">
        <link rel="stylesheet" href="css/bootstrap/css/bootstrap.min>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="msapplication-TileColor" content="#b0d139">
        <meta name="msapplication-TileImage" content="chemin/Logo.png">
        <meta name="application-name" content="Lycée Cifflé">
        <link rel="icon" href="http://ebialec.bialec.fr/Ciffle/css/images/Logo.png">
        <script src="css/bootstrap/js/jquery.js"></script>
        <script src="css/bootstrap/js/bootstrap.min.js"></script>

        <title> Lycée Cifflé - Accueil</title>
    </head>

    <body>

        <!--Div de l'entête-->
        <header>

            <div class="container-fluid">
                <!--Bandeau-->
                <div class="bandeau">
                    <!--Logo-->
                    <div class="Logo">

                    </div>
                </div>
            </div>
            <!--Barre de navigation-->
            <nav class="navbar navbar-default">
                <div class="container-fluid">
                    <ul class="nav navbar-nav">
                        <li class="cursor active"> <a href="index.html">Accueil</a> </li>
                        <li class="cursor"> <a href="presentation.html">Présentation</a>
                        </li>
                        <li class="dropdown cursor"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Formations <span class="caret"></span></a>
                            <ul class="dropdown-menu">
                                <li><a href="Formation_1.html">Formation 1</a>
                                </li>
                                <li><a href="Formation_2.html">Formation 2</a>
                                </li>
                                <li><a href="Formation_3.html">Formation 3</a>
                                </li>
                            </ul>
                        </li>
                        <li class="cursor"> <a href="vie_lycee.html">Vie du lycée</a>
                        </li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <li class="cursor"> <a href="contact.html">Contact</a>
                        </li>
                    </ul>
                </div>
            </nav>
        </header>
        <!--- HA HA HA HA HA -->
        <footer>
            <p>1 rue Cyfflé - CS 55236 54052 Nancy Cedex - Tel: 03 83 35 11 37 - Fax: 03 83 35 97 10 - ce.0540082@ac-nancy-metz.fr
            </p>
        </footer>
    </body>

</html>
Disparu le problème Smiley biggol
Smiley lol Smiley rofl

Aller, trinquons Smiley biere
upload/1527845404-71174-screenshot1.png Bon je veux pas dire mais je crois que je touche du bout du doigt xD
Modifié par Tryno (01 Jun 2018 - 11:30)
Tryno a écrit :
Bon je veux pas dire mais je crois que je touche du bout du doigt xD
Modérateur
Un truc que je n'avais pas remarqué: tu appelles ton css perso avant celui de Bootstrap. C'est l'inverse qu'il faut faire. Tu utilise les style Bootstrap par défaut et ton custom réécrit les règles si nécessaire. Smiley smile
Pages :