J'utilise Twitter Bootstrap 2.0.1 dans un projet Rails 3.1.2, implémenté avec bootstrap-sass. Je charge à la fois le bootstrap.css
et les bootstrap-responsive.css
fichiers, ainsi que le bootstrap-collapse.js
Javascript.
J'ai une mise en page fluide avec une barre de navigation similaire à l' exemple . Ceci suit les instructions de "variation sensible" de la barre de navigation ici . Cela fonctionne bien: si la page est plus étroite que 940px environ, la barre de navigation se réduit et affiche un "bouton" sur lequel je peux cliquer pour agrandir.
Cependant, ma barre de navigation semble bonne jusqu'à environ 550 px de large, c'est-à-dire qu'elle n'a pas besoin d'être réduite à moins que l'écran ne soit très étroit.
Comment dire à Bootstrap de ne réduire la barre de navigation que si l'écran mesure moins de 550 pixels de large?
Notez que , à ce stade , je ne pas envie de modifier les autres comportements réactifs, par exemple des éléments d' empilage au lieu d'afficher côte à côte.
la source
Réponses:
Vous recherchez la ligne 239 de
bootstrap-responsive.css
Où la
max-width
valeur déclenche le nav réactif. Changez-le en 550px environ et il devrait être redimensionné correctement.la source
bootstrap-responsive.css
est enterré dans la gemme bootstrap-sass. Oui, je pourrais le modifier, mais lorsque le bijou est mis à jour, je devrais le refaire. Existe-t-il un moyen de remplacer la requête @media, de la même manière que de remplacer d'autres éléments CSS?@media (max-width: 767px)
bloc. Il semble que je devrai faire un remplacement plus complet, comme suggéré dans la réponse d'Andres Ilich.@media (max-width: 767px)
. Espérons que Bootstrap (ou bootstrap-sass) inclura un jour un moyen d'utiliser des variables pour définir les seuils, mais je pense que cela nécessitera une interpolation dans les sélecteurs de médias .Bootstrap> 2.1 && <3
Mise à jour 2013: le moyen le plus simple
(THX à Archonic via un commentaire)
Mise à jour 2014: Bootstrap 3.1.1 et 3.2 (ils l'ont même ajouté à la documentation )
Si vous personnalisez ou remplacez / modifiez des
.less
variables, vous recherchez:la source
@navbarCollapseWidth: 600px;
dans boostrap_and_overrides.css.less.Vous pouvez créer une nouvelle
@media
requête pour déposer les éléments de la barre de navigation comme bon vous semble, tout ce que vous avez à faire est de réinitialiser l'ancienne pour qu'elle s'adapte à votre nouvelle requête avec la largeur de dépôt souhaitée. Prenons ceci par exemple:CSS
Dans le code suivant, vous pouvez voir comment j'ai inclus la
@media
requête d' origine qui gère le dépôt avant la979px
marque et la nouvelle requête pour prendre en charge le point de dépôt souhaité de550px
. J'ai modifié la requête d'origine directement à partir du css réactif au démarrage pour réinitialiser tous les styles appliqués à cette requête spécifique pour les éléments de la barre de navigation et les ai portés vers la nouvelle requête qui porte le point de dépôt dont vous avez besoin à la place. De cette façon, nous pouvons commuter tous les styles de la requête d'origine à la nouvelle requête sans déranger dans la feuille de style bootstrap-responsive, de cette façon les valeurs par défaut s'appliqueront toujours aux autres éléments de votre document.Voici une courte démo avec une requête multimédia définie à
550px
votre guise: http://jsfiddle.net/wU8MW/Remarque: J'ai placé les
@media
requêtes modifiées ci-dessus bien en dessous du cadre css car le nouveau css modifié est censé être chargé en premier que le css réactif.la source
@media (max-width: 979px)
requête d' origine pour créer la nouvelle@media (max-width: 550px)
requête. Puis (2) vous avez codé à la main une nouvelle requête 979px pour remplacer les effets de la requête 979px dans le mainbootstrap-responsive.css
? La séquence des balises dans votre CSS ne semble pas suivre la séquence dansbootstrap-responsive.css
, donc j'ai du mal à les comparer pour voir ce que vous avez fait.@media (max-width: 550px)
requête que j'ai écrite ne suit pas la@media (max-width: 979px)
syntaxe des requêtes initiales car tout ce que j'ai fait était un exemple rapide de la remplacer à la main via firebug et copier / coller, je suis paresseux sur celui-là, mais la bonne façon de le faire est comme vous l'avez mentionné sur votre deuxième point.bootstrap-sass supportera la variable $ navbarCollapseWidth dans la prochaine version (2.2.1.0). Vous pourrez le mettre à jour pour faire exactement ce que vous voulez une fois que cette version sera en ligne!
la source
@import "bootstrap";
Depuis août 2013, une page Bootstrap 3 «Personnaliser et télécharger» est disponible à l' adresse http://getbootstrap.com/customize/
Avec Bootstrap 3, la variable pertinente est @ grid-float-breakpoint.
La page de débordement de pile suivante contient des détails supplémentaires: Bootstrap 3 Navbar Collapse
la source
Je soupçonne (et j'espère) que cela sera bientôt mis en œuvre de manière officielle. En attendant, je fais juste un simple hack css, en utilisant visible-phone sur le bouton déroulant et visible-tablet sur un deuxième ensemble de boutons que j'ai placés dans la barre de navigation. Donc avant ça ressemblait à ça:
Et maintenant, ça ressemble à:
Notez que l'ordre des éléments est important, sinon vous pourriez avoir des problèmes avec les éléments entrant dans la ligne suivante
la source
J'ai créé un fichier SCSS séparé qui répertorie tous les partiels dont le bootstrap a besoin, de cette façon je peux activer et désactiver les partiels en fonction des besoins de notre site. De cette façon, je suis capable de remplacer facilement la variable de point d'arrêt. Voici ce que j'ai:
la source
Voici mon code (toutes les autres solutions ont montré une barre de défilement funky alors que la barre de navigation descendait, j'ai donc modifié le code pour que ce ne soit pas le cas). Je n'ai pas pu poster sur une autre réponse, je vais donc le faire ici pour que les autres la trouvent. J'utilise des rails pour faire cela avec Bootstrap 3.0.
assets / stylesheets / framework et remplacements collez ceci: (Ajustez la largeur maximale à n'importe quelle valeur pour atteindre votre objectif.)
la source
Bootstrap 3.x
en utilisant LESS , vous pouvez modifier la valeur de
@screen-small
pour cibler votre taille minimaleexemple:
@screen-small: 600px;
je l'utilise uniquement pour passer en mode "petit appareil" une fois que la largeur est inférieure à 600 px
la source
Bootstrap 3.x
en utilisant SASS, vous pouvez modifier la valeur de $ screen-sm pour cibler votre taille minimale
exemple: $ screen-sm: 600px;
Vous devez mettre cette valeur dans votre fichier application.scss avant le @import "bootstrap";
Moins de variables commencent par "@" juste les changées en "$" pour les remplacer avant l'importation.
Voici la liste des variables.
la source
Bootstrap 4.x
Changer le seuil de réduction dans Bootstrap 4.x est un jeu d'enfant. Il y a 6 cas:
<nav class="navbar navbar-expand">...</nav>
<nav class="navbar navbar-expand-sm">...</nav>
<nav class="navbar navbar-expand-md">...</nav>
<nav class="navbar navbar-expand-lg">...</nav>
<nav class="navbar navbar-expand-xl">.../nav>
<nav class="navbar">...</nav>
(Retirez simplement lenavbar-expand-*
classe. Mobile-first comme dans Bootstrap 4.x)Crédit à cet article de Carol Skelly, j'ai trouvé https://medium.com/wdstack/examples-bootstrap-4-navbar-b3c9dc0edc1a
la source
Ceci est un excellent exemple où vous pourriez utiliser la version LESS des fichiers CSS Bootstrap. Comment faire cela est ci-dessous.
Encore mieux serait de soumettre ceci comme une pull request sur Github afin que tout le monde puisse en profiter et que votre "code personnalisé" fasse partie, espérons-le, de Bootstrap à l'avenir.
variables.less
qui spécifie quand réduire la barre de navigation. Quelque chose comme:@navCollapseWidth: 979px
responsive-navbar.less
...@media (max-width: 979px)
de@media (max-width: @navCollapseWidth)
@media (min-width: 980px)
pour@media (max-width: @navCollapseWidth - 1)
Bien sûr ... vous devrez compiler MOINS en utilisant l'une des méthodes suggérées .
la source
En poussant encore plus loin le piratage de Tyler en ajoutant un bloc de classe de téléphone visible et une classe de téléphone caché à un élément dans la navigation principale pliable, vous pouvez `` extraire '' un ou deux des éléments réduits pour les afficher même dans la barre de navigation du téléphone.
la source
Écrivez simplement ce code dans votre fichier style.css personnalisé et cela fonctionnera
la source