210 votes

`col-xs-*` ne fonctionne pas dans Bootstrap 4

Je n'ai jamais rencontré ce problème auparavant, et j'ai beaucoup de mal à trouver la solution. Lorsque l'on a une colonne égale à medium dans bootstrap comme ceci :

<h1 class="text-center">Hello, world!</h1>

  <div class="container">
      <div class="row">
          <div class="col-md-12 text-center">
              <h1>vicki williams</h1>
          </div>
      </div>
  </div>

L'alignement du texte fonctionne bien : enter image description here

Mais en rendant la colonne égale à extra petite comme ceci :

 <div class="container">
      <div class="row">
          <div class="col-xs-12 text-center">
              <h1>vicki williams</h1>
          </div>
      </div>
  </div>

Ensuite, l'alignement du texte ne fonctionne plus : enter image description here

Y a-t-il un concept de bootstrap que je ne comprends pas ou s'agit-il en fait d'une erreur comme je le pense ? Je n'ai jamais eu ce problème, car mon texte a toujours été aligné dans le passé avec xs. Toute aide serait grandement appréciée. Voici mon code complet :

<!DOCTYPE html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
  </head>
  <body>
    <h1 class="text-center">Hello, world!</h1>

      <div class="container">
          <div class="row">
              <div class="col-xs-12 text-center">
                  <h1>vicki williams</h1>
              </div>
          </div>
      </div>

    <!-- jQuery first, then Tether, then Bootstrap JS. -->
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
  </body>
</html>

7 votes

col-xs-* n'existe plus dans la dernière version v4, c'est pourquoi vous voyez ceci. Le site col-xs-12 n'a pas une largeur fixée à 100% comme votre col-md-12 . Vérifiez DevTools pour tout voir et voyez ceci Tirer

545voto

Andrei Gheorghiu Points 3898

col-xs-* ont été abandonnés dans Bootstrap 4 en faveur de col-* .

Remplacer col-xs-12 avec col-12 et cela fonctionnera comme prévu.

Notez également col-xs-offset-{n} ont été remplacés par offset-{n} dans la v4.

14 votes

Vérifiez toujours docs . Bon codage ! : : }<(((*> : :

10 votes

Ce n'est pas quelque chose que l'on recherche normalement dans la documentation. J'ai vérifié tous les documents et j'ai manqué ça aussi. J'avais pensé, après deux migrations de sites bs4 maintenant, que col était pour le générique, et col-xs serait spécifique, cependant avec le recul cela n'a aucun sens, car étant mobile first, xs et plus est générique (par défaut). Merci pour le rappel, je pense que j'ai survolé cela lors de ma dernière migration, mais j'étais bloqué sur ce point lors de celle-ci.

3 votes

Veuillez lire cette réponse sur ce qui a changé entre v3 et v4 ) et aussi un lien vers un outil, si vous décidez de suivre cette voie. Ce n'est pas une tâche facile et, à mon avis, il est plus facile de travailler sur un modèle propre et d'insérer simplement le php que de modifier le balisage.

25voto

Sabir Hussain Points 749

Je me demandais juste, pourquoi col-xs-6 n'a pas fonctionné pour moi mais j'ai trouvé la réponse dans la documentation de Bootstrap 4. Le préfixe de la classe pour les très petits appareils est maintenant col- alors que dans les versions précédentes, il était col-xs .

https://getbootstrap.com/docs/4.1/layout/grid/#grid-options

Bootstrap 4 a tout laissé tomber col-xs-* donc utiliser col-* à la place. Par exemple col-xs-6 remplacé par col-6 .

12voto

SMWalker Points 71

Ils ont abandonné XS parce que Bootstrap est considéré comme un outil de développement " mobile-first ". Sa valeur par défaut est considérée comme xs et n'a donc pas besoin d'être définie.

0 votes

Ils auraient pu l'ajouter comme alternative au lieu de l'abandonner. Il semble qu'ils doivent certainement garantir une compatibilité brisée entre différentes versions et ils y sont parvenus.

5voto

Dorjee Karma Points 139

Sur Bootstrap 4.3 , col-xs-{valeur} est remplacé par col-{valeur}.

Il n'y a pas de changement dans sm, md, lg, xl reste le même.

.col-{valeur}
.col-sm-{valeur}
.col-md-{valeur}
.col-lg-{valeur}
.col-xl-{valeur}

2voto

wiwolavida Points 51

Vous pouvez faire ceci, si vous voulez utiliser l'ancienne syntaxe (ou si vous ne voulez pas réécrire chaque modèle)

@for $i from 1 through $grid-columns {
  @include media-breakpoint-up(xs) {
    .col-xs-#{$i} {
      @include make-col-ready();
      @include make-col($i);
    }
  }
}

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