120 votes

Bootstrap 3 Menu déroulant / Barre de navigation sur mobile

Je suis en train de construire une application mobile basée sur un navigateur et j'ai décidé d'utiliser Bootstrap 3 comme framework css pour le design. Bootstrap 3 est livré avec une excellente fonctionnalité "responsive" dans la barre de navigation où elle se réduit automatiquement si elle détecte un "point de rupture" spécifique concernant la résolution du navigateur. Cela fonctionne dans de nombreuses situations.

Mais avez-vous remarqué ces derniers temps comment de nombreuses applications mobiles basées sur navigateur ont la navigation principale cachée à gauche de l'écran, et lorsque l'icône de bascule est pressée (activée/désactivée) dans le coin supérieur droit, la navigation principale se déploie vers la droite à environ 2/3 de l'écran ? C'est une solution de navigation de plus en plus populaire pour naviguer à travers les applications basées sur navigateur sur les appareils mobiles et je pense qu'en théorie, il devrait être assez facile de modifier le css/js de bootstrap pour accommoder cette version de la fonctionnalité de réduction de la navigation.

Comment ces fonctionnalités peuvent-elles être implémentées ? Il semble que cela ne devrait pas nécessiter trop de modifications. J'aimerais vraiment entendre vos réflexions/solutions à ce sujet. De plus, je pense que ce serait une excellente solution à long terme pour Bootstrap d'implémenter cela en tant que fonction intégrée.

Malheureusement, je n'ai pas fait de tentative pour créer cette fonctionnalité car même si je suis familier avec ces technologies, je suis principalement un développeur PHP/MySQL et je crois qu'une fonctionnalité aussi utile que celle-ci devrait être construite par des experts avec une vision que je n'ai pas en tant que développeur front-end.

2 votes

Veuillez inclure votre CSS/HTML Markup actuel. De plus, "Les questions demandant du code doivent démontrer une compréhension minimale du problème à résoudre. Incluez les solutions tentées, pourquoi elles n'ont pas fonctionné, et les résultats attendus."

8 votes

J'ai récemment fait cela, il y a beaucoup de choses impliquées car beaucoup de choses doivent se passer, surtout si la navigation est fixe, elle doit se défixer lorsqu'elle glisse sinon vous ne pourrez pas atteindre les menus plus longs. J'utilise Boostrap tout le temps mais pas leur menu, vous pouvez ajouter des menus qui glissent vous-même et les modifier également. jsbin.com/eHAfIhI/1/edit

2 votes

Lorsque vous regardez le CSS, vous remarquerez que la largeur minimale prend effet à partir de la valeur par défaut de Bootstrap, qui est de 768px. Remarquez que des ajustements ont été apportés au formulaire à la largeur maximale car il aurait sinon un aspect médiocre. De plus, des pourcentages ont été utilisés car le plus petit appareil est de 240px.

138voto

Christina Points 5018

C'était pour mon propre projet et je le partage ici aussi.

DEMO: http://jsbin.com/OjOTIGaP/1/edit

Celui-ci a eu des problèmes après 3.2, donc celui ci-dessous pourrait mieux fonctionner pour vous :

https://jsbin.com/seqola/2/edit --- VERSION AMÉLIORÉE, légèrement


CSS

/* ajuster le body quand le menu est ouvert */
body.slide-active {
    overflow-x: hidden
}
/*premier enfant de #page-content pour qu'il ne bouge pas*/
.no-margin-top {
    margin-top: 0px!important
}
/*envelopper tout le contenu de la page sauf la navigation à l'intérieur de cette div si ce n'est pas en haut fixé, ne pas ajouter de padding en haut */
#page-content {
    position: relative;
    padding-top: 70px;
    left: 0;
}
#page-content.slide-active {
    padding-top: 0
}
/* mettre les barres de basculement à gauche :: ne pas utiliser de bouton */
#slide-nav .navbar-toggle {
    cursor: pointer;
    position: relative;
    line-height: 0;
    float: left;
    margin: 0;
    width: 30px;
    height: 40px;
    padding: 10px 0 0 0;
    border: 0;
    background: transparent;
}
/* styliser la barrette d'icône - facultatif */
#slide-nav .navbar-toggle > .icon-bar {
    width: 100%;
    display: block;
    height: 3px;
    margin: 5px 0 0 0;
}
#slide-nav .navbar-toggle.slide-active .icon-bar {
    background: orange
}
.navbar-header {
    position: relative
}
/* défixer la barre de navigation quand active pour que tous les éléments du menu soient accessibles */
.navbar.navbar-fixed-top.slide-active {
    position: relative
}
/* évitez d'écrire des importants et des trucs, ajoutez juste une largeur maximale puisque ces classes ne sont pas partagées entre les tailles */
@media (max-width:767px) { 
    #slide-nav .container {
        margin: 0;
        padding: 0!important;
    }
    #slide-nav .navbar-header {
        margin: 0 auto;
        padding: 0 15px;
    }
    #slide-nav .navbar.slide-active {
        position: absolute;
        width: 80%;
        top: -1px;
        z-index: 1000;
    }
    #slide-nav #slidemenu {
        background: #f7f7f7;
        left: -100%;
        width: 80%;
        min-width: 0;
        position: absolute;
        padding-left: 0;
        z-index: 2;
        top: -8px;
        margin: 0;
    }
    #slide-nav #slidemenu .navbar-nav {
        min-width: 0;
        width: 100%;
        margin: 0;
    }
    #slide-nav #slidemenu .navbar-nav .dropdown-menu li a {
        min-width: 0;
        width: 80%;
        white-space: normal;
    }
    #slide-nav {
        border-top: 0
    }
    #slide-nav.navbar-inverse #slidemenu {
        background: #333
    }
    /* ceci est derrière la navigation mais la navigation n'est pas à l'intérieur pour que la navigation soit accessible et défile */
    #slide-nav #navbar-height-col {
        position: fixed;
        top: 0;
        height: 100%;
        width: 80%;
        left: -80%;
        background: #eee;
    }
    #slide-nav.navbar-inverse #navbar-height-col {
        background: #333;
        z-index: 1;
        border: 0;
    }
    #slide-nav .navbar-form {
        width: 100%;
        margin: 8px 0;
        text-align: center;
        overflow: hidden;
        /*efficient pour le clearfix*/
    }
    #slide-nav .navbar-form .form-control {
        text-align: center
    }
    #slide-nav .navbar-form .btn {
        width: 100%
    }
}
@media (min-width:768px) { 
    #page-content {
        left: 0!important
    }
    .navbar.navbar-fixed-top.slide-active {
        position: fixed
    }
    .navbar-header {
        left: 0!important
    }
}

HTML

      Basculer la navigation

    Nom du projet

            Rechercher

     Accueil
     À propos
     Contact
      Déroulant 

       Action
       Autre action
       Quelque chose d'autre ici

       En-tête de navigation
       Lien séparé
       Encore un lien séparé
       Action
       Autre action
       Quelque chose d'autre ici

       En-tête de navigation
       Lien séparé
       Encore un lien séparé
       Action
       Autre action
       Quelque chose d'autre ici

       En-tête de navigation
       Lien séparé test titre long va ici
       Encore un lien séparé

jQuery

$(document).ready(function () {

    //coller en hauteur fixe à 100% derrière la barre de navigation mais ne pas l'envelopper
    $('#slide-nav.navbar .container').append($(''));

    // Entrez vos ids ou classes
    var toggler = '.navbar-toggle';
    var pagewrapper = '#page-content';
    var navigationwrapper = '.navbar-header';
    var menuwidth = '100%'; // le menu à l'intérieur du menu déroulant lui-même
    var slidewidth = '80%';
    var menuneg = '-100%';
    var slideneg = '-80%';

    $("#slide-nav").on("click", toggler, function (e) {

        var selected = $(this).hasClass('slide-active');

        $('#slidemenu').stop().animate({
            left: selected ? menuneg : '0px'
        });

        $('#navbar-height-col').stop().animate({
            left: selected ? slideneg : '0px'
        });

        $(pagewrapper).stop().animate({
            left: selected ? '0px' : slidewidth
        });

        $(navigationwrapper).stop().animate({
            left: selected ? '0px' : slidewidth
        });

        $(this).toggleClass('slide-active', !selected);
        $('#slidemenu').toggleClass('slide-active');

        $('#page-content, .navbar, body, .navbar-header').toggleClass('slide-active');

    });

    var selected = '#slidemenu, #page-content, body, .navbar, .navbar-header';

    $(window).on("resize", function () {

        if ($(window).width() > 767 && $('.navbar-toggle').is(':hidden')) {
            $(selected).removeClass('slide-active');
        }

    });

});

0 votes

Y a-t-il un moyen de rendre cela réactif afin que sur un ordinateur de bureau, la barre de navigation s'affiche sous une image d'introduction, mais sur un appareil mobile, la barre de navigation ressemble à cette barre latérale ?

1 votes

Oui. vous concevrez dans les largeurs minimales

9 votes

C'était pour mon propre projet et je le partage de cette façon. Tout soutien, aide supplémentaire, etc., relève de chaque individu.

67voto

Skelly Points 27772

Bootstrap 5 Beta 3 (mise à jour 2021)

Présentation du nouveau Composant Offcanvas Bootstrap 5

Bootstrap 4

Créer un "tiroir" de barre de navigation latérale réactif dans Bootstrap 4?
Menu horizontal Bootstrap se transformant en menu latéral

Bootstrap 3

Je pense que ce que vous recherchez est généralement appelé une disposition "off-canvas". Voici l'exemple standard d'off-canvas tiré de la documentation officielle de Bootstrap: http://getbootstrap.com/examples/offcanvas/

L'exemple "officiel" utilise une barre latérale du côté droit à bascule distincte du menu de barre de navigation en haut. J'ai également trouvé ces variations off-canvas qui glissent depuis la gauche et peuvent être plus proches de ce que vous recherchez.

http://www.bootstrapzero.com/bootstrap-template/off-canvas-sidebar http://www.bootstrapzero.com/bootstrap-template/facebook

2 votes

Cet exemple de menu latéral est vraiment super aussi! C'est plus proche de ce que je cherchais, mais quelques points que j'avais mentionnés dans mes commentaires sur la publication de Cab sont toujours prévalents. Le menu latéral et la zone de contenu principal ne défilent pas indépendamment. De plus, c'est plus un glissement gauche/droite qu'une animation de couverture/révélation. Dites-moi ce que vous en pensez! :) Merci encore beaucoup pour votre contribution Skelly! Cette discussion a été incroyablement instructive et utile!

0 votes

EDIT : Je viens de voir que la version Facebook que vous avez postée défile indépendamment de la zone de contenu principale ! De plus, je me demandais s'il pouvait être totalement invisible par défaut, quel que soit le réglage actuel du navigateur, et que l'on puisse le basculer avec l'icône qui se trouve en haut à droite de cet exemple. Et est-il possible de déplacer ce bouton de bascule en haut à gauche ? Ce serait exactement ce dont j'aurais besoin pour avancer avec ce projet. Le seul problème que j'ai remarqué est que la barre de défilement horizontale s'affiche lorsque vous basculez le menu. Il doit y avoir un moyen d'empêcher cela aussi.

1 votes

Contentement que cela ait aidé. Je suis sûr qu'il est possible d'atteindre ce que vous voulez, mais cela demandera quelques ajustements. Je vous recommande d'expérimenter avec le Bootply (bootply.com/96266). Vous devriez pouvoir ajuster le point de rupture pour la barre latérale en ajustant la requête media @media screen and (max-width: 768px) { .. dans le CSS.

8voto

user3515003 Points 41

Nous pouvons créer un menu hors toile à gauche ou à droite en utilisant le plugin sidr. J'ai mis en œuvre dans l'un de mes projets qui a été conçu avec bootstrap.

J'ai suivi le lien ci-dessous... semble facile à mettre en œuvre. :-)

Créer un menu responsive similaire à celui de Facebook Mobile avec Bootstrap en utilisant le plugin Sidr

0voto

Syam S Points 41

Sans plugin, nous pouvons faire ceci : menu responsive multi-niveaux bootstrap pour téléphone mobile avec slide toggle pour mobile :

$('[data-toggle="slide-collapse"]').on('click', function() {
  $navMenuCont = $($(this).data('target'));
  $navMenuCont.animate({
    'width': 'toggle'
  }, 350);
  $(".menu-overlay").fadeIn(500);
});

$(".menu-overlay").click(function(event) {
  $(".navbar-toggle").trigger("click");
  $(".menu-overlay").fadeOut(500);
});

// if ($(window).width() >= 767) {
//     $('ul.nav li.dropdown').hover(function() {
//         $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
//     }, function() {
//         $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
//     });

//     $('ul.nav li.dropdown-submenu').hover(function() {
//         $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
//     }, function() {
//         $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
//     });

//     $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
//         event.preventDefault();
//         event.stopPropagation();
//         $(this).parent().siblings().removeClass('open');
//         $(this).parent().toggleClass('open');
//         $('b', this).toggleClass("caret caret-up");
//     });
// }

// $(window).resize(function() {
//     if( $(this).width() >= 767) {
//         $('ul.nav li.dropdown').hover(function() {
//             $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
//         }, function() {
//             $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
//         });
//     }
// });

var windowWidth = $(window).width();
if (windowWidth > 767) {
  // $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
  //     event.preventDefault();
  //     event.stopPropagation();
  //     $(this).parent().siblings().removeClass('open');
  //     $(this).parent().toggleClass('open');
  //     $('b', this).toggleClass("caret caret-up");
  // });

  $('ul.nav li.dropdown').hover(function() {
    $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
  }, function() {
    $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
  });

  $('ul.nav li.dropdown-submenu').hover(function() {
    $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
  }, function() {
    $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
  });

  $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    // $('b', this).toggleClass("caret caret-up");
  });
}
if (windowWidth < 767) {
  $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    // $('b', this).toggleClass("caret caret-up");
  });
}

// $('.dropdown a').append('Some text');

@media only screen and (max-width: 767px) {
  #slide-navbar-collapse {
    position: fixed;
    top: 0;
    left: 15px;
    z-index: 999999;
    width: 280px;
    height: 100%;
    background-color: #f9f9f9;
    overflow: auto;
    bottom: 0;
    max-height: inherit;
  }
  .menu-overlay {
    display: none;
    background-color: #000;
    bottom: 0;
    left: 0;
    opacity: 0.5;
    filter: alpha(opacity=50);
    /* IE7 & 8 */
    position: fixed;
    right: 0;
    top: 0;
    z-index: 49;
  }
  .navbar-fixed-top {
    position: initial !important;
  }
  .navbar-nav .open .dropdown-menu {
    background-color: #ffffff;
  }
  ul.nav.navbar-nav li {
    border-bottom: 1px solid #eee;
  }
  .navbar-nav .open .dropdown-menu .dropdown-header,
  .navbar-nav .open .dropdown-menu>li>a {
    padding: 10px 20px 10px 15px;
  }
}

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -1px;
}

li.dropdown a {
  display: block;
  position: relative;
}

li.dropdown>a:before {
  content: "\f107";
  font-family: FontAwesome;
  position: absolute;
  right: 6px;
  top: 5px;
  font-size: 15px;
}

li.dropdown-submenu>a:before {
  content: "\f107";
  font-family: FontAwesome;
  position: absolute;
  right: 6px;
  top: 10px;
  font-size: 15px;
}

ul.dropdown-menu li {
  border-bottom: 1px solid #eee;
}

.dropdown-menu {
  padding: 0px;
  margin: 0px;
  border: none !important;
}

li.dropdown.open {
  border-bottom: 0px !important;
}

li.dropdown-submenu.open {
  border-bottom: 0px !important;
}

li.dropdown-submenu>a {
  font-weight: bold !important;
}

li.dropdown>a {
  font-weight: bold !important;
}

.navbar-default .navbar-nav>li>a {
  font-weight: bold !important;
  padding: 10px 20px 10px 15px;
}

li.dropdown>a:before {
  content: "\f107";
  font-family: FontAwesome;
  position: absolute;
  right: 6px;
  top: 9px;
  font-size: 15px;
}

@media (min-width: 767px) {
  li.dropdown-submenu>a {
    padding: 10px 20px 10px 15px;
  }
  li.dropdown>a:before {
    content: "\f107";
    font-family: FontAwesome;
    position: absolute;
    right: 3px;
    top: 12px;
    font-size: 15px;
  }
}

<!DOCTYPE html>
<html lang="en">

  <head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

  </head>

  <body>
    <nav class="navbar navbar-default navbar-fixed-top">
      <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="slide-collapse" data-target="#slide-navbar-collapse" aria-expanded="false">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
          <a class="navbar-brand" href="#">Brand</a>
        </div>
        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="slide-navbar-collapse">
          <ul class="nav navbar-nav">
            <li><a href="#">Link <span class="sr-only">(current)</span></a></li>
            <li><a href="#">Link</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</span></a>
              <ul class="dropdown-menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li><a href="#">Separated link</a></li>
                <li><a href="#">One more separated link</a></li>
                <li class="dropdown-submenu">
                  <a href="#" data-toggle="dropdown">SubMenu 1</span></a>
                  <ul class="dropdown-menu">
                    <li><a href="#">3rd level dropdown</a></li>
                    <li><a href="#">3rd level dropdown</a></li>
                    <li><a href="#">3rd level dropdown</a></li>
                    <li><a href="#">3rd level dropdown</a></li>
                    <li><a href="#">3rd level dropdown</a></li>
                    <li class="dropdown-submenu">
                      <a href="#" data-toggle="dropdown">SubMenu 2</span></a>
                      <ul class="dropdown-menu">
                        <li><a href="#">3rd level dropdown</a></li>
                        <li><a href="#">3rd level dropdown</a></li>
                        <li><a href="#">3rd level dropdown</a></li>
                        <li><a href="#">3rd level dropdown</a></li>
                        <li><a href="#">3rd level dropdown</a></li>
                      </ul>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li><a href="#">Link</a></li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
            <li><a href="#">Link</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</span></a>
              <ul class="dropdown-menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li><a href="#">Separated link</a></li>
              </ul>
            </li>
          </ul>
        </div>
        <!-- /.navbar-collapse -->
      </div>
      <!-- /.container-fluid -->
    </nav>
    <div class="menu-overlay"></div>
    <div class="col-md-12">
      <h1>Resize the window to see the result</h1>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique
        ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo
        dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet,
        condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.
      </p>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique
        ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo
        dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet,
        condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.
      </p>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique
        ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo
        dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet,
        condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.
      </p>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique
        ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo
        dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet,
        condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.
      </p>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique
        ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo
        dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet,
        condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.
      </p>
    </div>

  </body>

</html>

Référence JS fiddle

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X