Conception de la disposition des lignes et des colonnes de Bootstrap (conception du système réseau)

00-Connaissances de base

01. Le système de grille de Bootstrap divise la largeur de l'écran en 12 colonnes.

01-Disposition des colonnes de même largeur

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>等宽列布局网页效果</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">等宽列布局网页效果</h3>
<div class="row">
    <div class="col border py-3 bg-light">二分之一</div>
    <div class="col border py-3 bg-light">二分之一</div>
</div>
<div class="row">
    <div class="col border py-3 bg-light">三分之一</div>
    <div class="col border py-3 bg-light">三分之一</div>
    <div class="col border py-3 bg-light">三分之一</div>
</div>
<div class="row">
    <div class="col border py-3 bg-light">四分之一</div>
    <div class="col border py-3 bg-light">四分之一</div>
    <div class="col border py-3 bg-light">四分之一</div>
    <div class="col border py-3 bg-light">四分之一</div>
</div>
</body>
</html>

L'effet de course est le suivant :
insérer la description de l'image ici

02-Spécifier la largeur d'une colonne

Exemple de code :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>设置一个列宽布局</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">指定某一列的宽度</h3>
<div class="row">
    <div class="col border py-3 bg-light"></div>
    <div class="col-7 border py-3 bg-light"></div>
    <div class="col border py-3 bg-light"></div>
</div>
<div class="row">
    <div class="col-3 border py-3 bg-light"></div>
    <div class="col border py-3 bg-light"></div>
    <div class="col border py-3 bg-light"></div>
</div>
</body>
</html>

Question : Quelle est la différence entre la classe col, la classe col-7 et la classe col-3 de Bootstrap ?
répondre:

  1. col de classe :

    • Il s'agit de la classe de base pour définir les colonnes de la grille.
    • Si vous utilisez uniquement la classe col, les colonnes seront par défaut à espacement fixe, ce qui divisera automatiquement la largeur de colonne disponible de manière égale, et chaque colonne occupera le même espace.
    • Exemple:<div class="col">...</div>
  2. classe col-7 :

    • Il s'agit d'une classe avec un suffixe numérique, tel que col-7, qui est utilisé pour définir une colonne de grille avec une largeur spécifiée.
    • Le suffixe numérique indique le nombre de colonnes de grille que la colonne doit occuper. Dans ce cas, col-7 signifie que la colonne doit occuper 7 colonnes dans le système de grille.
    • Cette classe vous permet de créer des colonnes de largeur inégale pour attribuer différentes largeurs en fonction des besoins de conception.
    • Exemple:<div class="col-7">...</div>
  3. classe col-3 :

    • La classe col-3 est également une classe avec un suffixe numérique, tel que col-3, qui est utilisé pour définir une colonne de grille de différentes largeurs.
    • Le suffixe numérique indique le nombre de colonnes de grille que la colonne doit occuper. Dans ce cas, col-3 signifie que la colonne doit occuper 3 colonnes dans le système de grille.
    • Semblable à la col-7, la col-3 vous permet de créer des colonnes de largeur inégale pour répondre aux besoins de conception.
    • Exemple : <div class="col-3">...</div>
      L'effet de l'exécution du code est le suivant :
      insérer la description de l'image ici

03-Changer automatiquement la largeur de la colonne en fonction du contenu

L'exemple de code est le suivant :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>根据内容自动改变列的宽度</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
	
	<style>
	  h3 {
      
      
		color: red;
	  }
	</style>

</head>
<body class="container">
<h3 class="mb-4">根据内容自动改变列的宽度</h3>
<div class="row">
    <div class="col border py-3 bg-light"></div>
    <div class="col-md-auto border py-3 bg-light">醉里且贪欢笑,要愁那得工夫。近来始觉古人书,信著全无是处。</div>
    <div class="col border py-3 bg-light"></div>
</div>
<div class="row justify-content-md-center">
    <div class="col border py-3 bg-light"></div>
    <div class="col-md-auto border py-3 bg-light">醉里且贪欢笑,要愁那得工夫。</div>
    <div class="col border py-3 bg-light"></div>
</div>
</body>
</html>

Elle est principalement réalisée à travers la classe col-md-auto :
col-md-auto:

  • col-md-autoLa classe est utilisée pour définir que la largeur d'un élément de colonne mddoit être automatiquement ajustée en fonction de son contenu dans un écran moyen (la taille de l'écran fait généralement référence à une largeur d'écran supérieure ou égale à 768 pixels).
  • Lorsqu'un élément de colonne auquel la classe est appliquée col-md-autocontient du texte ou un autre contenu, la colonne ajustera automatiquement sa largeur pour s'adapter à la taille de son contenu.
  • Cette classe est souvent utilisée pour créer des mises en page réactives, de sorte que sur des écrans de taille moyenne, la largeur de la colonne puisse être ajustée automatiquement en fonction de la quantité de contenu afin de garantir que le contenu ne déborde pas ou ne semble pas trop encombré.
    L'effet de course est illustré dans la figure ci-dessous :
    insérer la description de l'image ici

04- Cinq largeurs de colonnes prédéfinies.col、.col-sm-*、.col-md-*、.col-lg-*、.col-xl-*

.col、.col-sm-*、.col-md-*、.col-lg-*、.col-xl-*Il existe cinq largeurs prédéfinies de petite à grande, à savoir très petite, petite, moyenne, moyenne et très grande.
Lors de l'utilisation de Bootstrap, différentes classes CSS peuvent être utilisées pour définir différentes largeurs de colonnes. Voici des exemples de codes pour cinq classes de largeur de colonne prédéfinies courantes :

  1. .col-*: divise la largeur de la colonne de manière égale sur toutes les dimensions de largeur de la fenêtre.
<div class="container">
  <div class="row">
    <div class="col">1/3</div>
    <div class="col">1/3</div>
    <div class="col">1/3</div>
  </div>
</div>
  1. .col-sm-* : Lorsque la taille de la largeur de la fenêtre d'affichage est supérieure ou égale à 576 px, la largeur de la colonne est divisée de manière égale. Si la taille est inférieure à 576 px, les colonnes sont empilées ensemble, c'est-à-dire que chaque colonne occupe la largeur de la ligne entière.
<div class="container">
  <div class="row">
    <div class="col-sm">1/2</div>
    <div class="col-sm">1/2</div>
  </div>
</div>
  1. .col-md-* : Lorsque la taille de la largeur de la fenêtre d'affichage est supérieure ou égale à 768 px, la largeur de la colonne est divisée de manière égale. Si la taille est inférieure à 768 px, les colonnes sont empilées ensemble, c'est-à-dire que chaque colonne occupe la largeur de la ligne entière.
<div class="container">
  <div class="row">
    <div class="col-md">1/4</div>
    <div class="col-md">1/4</div>
    <div class="col-md">1/4</div>
    <div class="col-md">1/4</div>
  </div>
</div>
  1. .col-lg-* : Lorsque la taille de la largeur de la fenêtre d'affichage est supérieure ou égale à 992 px, la largeur de la colonne est divisée de manière égale. Si la taille est inférieure à 992 px, les colonnes sont empilées ensemble, c'est-à-dire que chaque colonne occupe la largeur de la ligne entière.
<div class="container">
  <div class="row">
    <div class="col-lg">1/2</div>
    <div class="col-lg">1/2</div>
  </div>
</div>
  1. .col-xl-*: Lorsque la largeur de la fenêtre d'affichage est supérieure ou égale à 1 200 px, la largeur de la colonne est divisée de manière égale. Si la taille est inférieure à 1 200 px, les colonnes sont empilées ensemble, c'est-à-dire que chaque colonne occupe la largeur de la ligne entière.
<div class="container">
  <div class="row">
    <div class="col-xl">1/3</div>
    <div class="col-xl">1/3</div>
    <div class="col-xl">1/3</div>
  </div>
</div>

Ces exemples de codes montrent comment utiliser différentes classes de largeur de colonne pour créer des dispositions de grille réactives afin d'afficher différentes largeurs de colonne sur différentes tailles d'écran.

Exemple de code avancé :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>水平排列布局的网页效果</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">水平排列</h3>
<!--在视口尺寸大于等于576px时等分列宽-->
<div class="row">
    <div class="col-sm-8 border py-3 bg-light">col-sm-8</div>
    <div class="col-sm-4 border py-3 bg-light">col-sm-4</div>
</div>
<!--在视口尺寸大于等于768px时等分列宽-->
<div class="row">
    <div class="col-md-8 border py-3 bg-light">col-md-8</div>
    <div class="col-md-4 border py-3 bg-light">col-md-4</div>
</div>
</body>
</html>

Dans le code ci-dessus, pour le premier div :

<div class="row">
    <div class="col-sm-8 border py-3 bg-light">col-sm-8</div>
    <div class="col-sm-4 border py-3 bg-light">col-sm-4</div>
</div>

Lorsque la largeur de la fenêtre est supérieure ou égale à 576px, <div class="row">les colonnes de la première seront affichées comme suit :

  1. <div class="col-sm-8 border py-3 bg-light">col-sm-8</div>: Sur les viewports inférieures à 576px, cette colonne occupera la largeur de la ligne entière, mais sur les viewports supérieurs ou égaux à 576px, car elle utilise des classes, elle occupera col-sm-88/12 (2/3) de la largeur du parent conteneur, et les 4/12 (1/3) restants de la largeur sont laissés pour la colonne suivante.

  2. <div class="col-sm-4 border py-3 bg-light">col-sm-4</div>col-sm-4: Sur les viewports inférieures à 576px, cette colonne occupera la largeur de la ligne entière, mais sur les viewports supérieurs ou égaux à 576px , elle occupera 4/12 (1/3) de la largeur du conteneur parent du fait de son utilisation de la classe Ensemble, les colonnes précédentes remplissent toute la ligne.

Ainsi, lorsque la largeur de la fenêtre d'affichage est de 576 pixels ou plus, <div class="row">les colonnes de la première s'aligneront horizontalement, l'une occupant les 2/3 de la largeur et l'autre occupant 1/3 de la largeur.
Les captures d'écran en cours d'exécution pertinentes sont les suivantes :
insérer la description de l'image ici
insérer la description de l'image ici

Dans le code ci-dessus, pour le deuxième div :

<div class="row">
    <div class="col-md-8 border py-3 bg-light">col-md-8</div>
    <div class="col-md-4 border py-3 bg-light">col-md-4</div>
</div>
  1. Lorsque la largeur de la fenêtre d'affichage est inférieure à 768 pixels, Bootstrap empile les colonnes ensemble par défaut et chaque colonne occupe la largeur de la ligne entière. Ainsi, l'un <div class="col-md-8 border py-3 bg-light">col-md-8</div>ou l'autre <div class="col-md-4 border py-3 bg-light">col-md-4</div>occupera toute la largeur, un au-dessus et un en dessous, dans une disposition verticale.

  2. Lorsque la largeur de la fenêtre d'affichage est supérieure ou égale à 768 px (au mdniveau et au-dessus), les colonnes de la seconde <div class="row">occuperont la largeur du conteneur parent en fonction de la largeur de colonne spécifiée. Spécifiquement:

    • <div class="col-md-8 border py-3 bg-light">col-md-8</div>: occupera 8/12 (2/3) de la largeur du conteneur parent.

    • <div class="col-md-4 border py-3 bg-light">col-md-4</div>: occupera 4/12 (1/3) de la largeur du conteneur parent.

    Ces deux colonnes seront disposées horizontalement sur une même rangée, l'une occupant les 2/3 de la largeur et l'autre occupant 1/3 de la largeur.
    L'effet courant est illustré dans la figure ci-dessous :
    insérer la description de l'image ici

    L'effet mesuré sur le téléphone mobile est le suivant :
    insérer la description de l'image ici
    D'après l'introduction ci-dessus, nous pouvons savoir que la taille de la fenêtre d'affichage du navigateur mobile de Haohongjun doit être inférieure à 576 px.

L'effet mesuré sur la tablette est le suivant :
insérer la description de l'image ici
D'après l'introduction ci-dessus, on peut savoir que la taille de la fenêtre d'affichage du navigateur sur la tablette de Haohongjun doit être supérieure ou égale à 768px.

05-Différentes largeurs de fenêtre sont divisées selon différents schémas de colonnes

Une colonne pleine largeur et une colonne demi-largeur sont affichées sur un appareil inférieur à 576 px, et une colonne est affichée sur un appareil supérieur ou égal à 576 px, représentant respectivement 8 et 4 copies (12 copies au total).
L'exemple de code est le suivant :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>不同视口宽度按不同的分列方案划分</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">不同视口宽度按不同的分列方案划分</h3>
<!--在小于576px的设备上显示为一个全宽列和一个半宽列,在大于等于576px型设备上显示为一列,分别占8份和4份(一共12份)-->
<div class="row">
    <div class="col-12 col-sm-8 border py-3 bg-light">.col-12 .col-sm-8</div>
    <div class="col-6 col-sm-4 border py-3 bg-light">.col-6 .col-sm-4</div>
</div>
</body>
</html>

L'effet de course est illustré dans la figure ci-dessous :
insérer la description de l'image ici
insérer la description de l'image ici

06-Supprimer les marges du modèle de boîte du contenu de la colonne

insérer la description de l'image ici
La classe no-gutters peut être utilisée pour éliminer les marges gauche et droite du contenu de la colonne, à savoir margin-left et margin-right.

La classe Bootstrap no-guttersest utilisée pour supprimer les marges gauche et droitecol entre le contenu de la colonne () afin qu'il n'y ait aucun espace horizontalement. Cela crée des colonnes disposées horizontalement sans aucun espace blanc horizontal entre elles, permettant une disposition plus compacte. Cela n'affecte pas les marges supérieure et inférieure des colonnes, il y aura donc toujours les marges supérieure et inférieure par défaut dans le sens vertical.

L'exemple de code est le suivant :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>删除列内容的左右外边距</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">删除列内容的左右外边距</h3>

<div class="row">
  <div class="col border py-3 bg-light">Column 1</div>
  <div class="col border py-3 bg-light">Column 2</div>
</div>

<div class="row no-gutters">
  <div class="col border py-3 bg-light">Column 1</div>
  <div class="col border py-3 bg-light">Column 2</div>
</div>

</body>
</html>

L'effet de course est le suivant :
insérer la description de l'image ici

07-Que dois-je faire s'il y a plus de 12 colonnes ?

Si plus de 12 colonnes sont placées dans une ligne, les colonnes supplémentaires seront affichées sur une nouvelle ligne.

08-Réorganiser l'ordre des colonnes

08-1- Utiliser la classe .order-* pour trier les colonnes

Vous pouvez utiliser la classe .order-* pour trier les colonnes. Bootstrap fournit un total de 12 niveaux d'ordre de .order-1 à .order-12, qui peuvent prendre effet sur tous les principaux navigateurs.

Remarque : les éléments sans classes .order-* sont classés en premier par défaut.

L'exemple de code est le suivant :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>重新排列各列的顺序</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">重新排列各列的顺序</h3>
<div class="row">
    <div class="col order-12 py-3 border bg-light">
        order-12
    </div>
    <div class="col order-1 py-3 border bg-light">
        order-1
    </div>
    <div class="col order-6 py-3 border bg-light">
        order-6
    </div>
	
	<!--没有定义.order-* 类的元素默认排在最前面。-->
    <div class="col py-3 border bg-light">
        col
    </div>
</div>
</body>
</html>

insérer la description de l'image ici

08-2 - Trier les colonnes avec la classe .order-first et la classe .order-last

L'exemple de code est le suivant :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>使用order-first和order-last类</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 class="mb-4">使用order-first和order-last类排列顺序</h3>
<div class="row">
    <div class="col order-last py-3 border bg-light">
        order-last
    </div>
    <div class="col py-3 border bg-light">
        col
    </div>
    <div class="col order-first py-3 border bg-light">
        order-first
    </div>
</div>
</body>
</html>

L'effet de course est le suivant :
insérer la description de l'image ici

09-Ajouter un décalage à la position de la colonne (réaliser le décalage de la colonne)

09-1 - Implémenter les décalages de colonnes à l'aide des classes .offset-md-*

L'exemple de code est le suivant :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>使用.offset-md-*类实现列偏移</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">使用.offset-md-*类实现列偏移</h3>
<div class="row">
    <div class="col-md-6 offset-md-3 py-3 border bg-light">.col-md-6 .offset-md-3</div>
</div>
<div class="row">
    <div class="col-md-4 offset-md-1 py-3 border bg-light">.col-md-3 .offset-md-3</div>
    <div class="col-md-4 offset-md-2 py-3 border bg-light">.col-md-3 .offset-md-3</div>
</div>
<div class="row">
    <div class="col-md-4 py-3 border bg-light">.col-md-4</div>
    <div class="col-md-4 offset-md-4 py-3 border bg-light">.col-md-4 .offset-md-4</div>
</div>
</body>
</html>

L'effet de course est illustré dans la figure ci-dessous :
insérer la description de l'image ici

09-2- Utilisez ml-auto et mr-auto pour ajuster les marges gauche et droite afin d'obtenir un décalage de colonne

La classe ml-auto est appliquée à la marge gauche d'un élément, provoquant le déplacement de cet élément vers la droite jusqu'à ce que la bordure du conteneur ou d'un autre élément se touche, obtenant ainsi un effet aligné à droite.
La classe mr-auto est appliquée à la marge droite d'un élément, provoquant le déplacement de cet élément vers la gauche jusqu'à ce que la bordure du conteneur ou d'un autre élément se touche, obtenant ainsi un effet aligné à gauche.
Ces deux classes sont souvent utilisées pour ajuster la position des éléments dans les barres de navigation, les groupes de boutons et autres mises en page afin d'obtenir de meilleurs effets visuels et une meilleure expérience utilisateur.
Exemple de code :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>使用margin类实现列偏移</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">使用margin类实现列偏移</h3>
<div class="row">
    <div class="col-md-4 py-3 border bg-light">.col-md-4</div>
    <div class="col-md-4 ml-auto py-3 border bg-light">.col-md-4 .ml-auto</div>
</div>
<div class="row">
    <div class="col-md-3 ml-md-auto py-3 border bg-light">.col-md-3 .ml-md-auto</div>
    <div class="col-md-3 ml-md-auto py-3 border bg-light">.col-md-3 .ml-md-auto</div>
</div>
<div class="row">
    <div class="col-auto mr-auto py-3 border bg-light">.col-auto .mr-auto</div>
    <div class="col-auto py-3 border bg-light">.col-auto</div>
</div>
</body>
</html>

L'effet de course est illustré dans la figure ci-dessous :
insérer la description de l'image ici

10 - Imbrication des lignes et des colonnes

Les lignes et les colonnes peuvent être imbriquées dans une boîte formée par une certaine ligne et colonne, l'exemple de code est le suivant :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>行列嵌套布局网页效果</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="bootstrap-4.5.3-dist/css/bootstrap.css">
    <script src="jquery-3.5.1.slim.js"></script>
    <script src="bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
</head>
<body class="container">
<h3 align="center">行列嵌套布局效果</h3>
<div class="row">
    <div class="col-6">
        <!--嵌套行和列-->
        <div class="row border no-gutters">
            <div class="col-3"><img src="1.jpg" alt=""></div>
            <div class="col-9 pl-3">
                哈密瓜主产于吐哈盆地(即吐鲁番盆地和哈密盆地的统称),它形态各异,风味独特,瓜肉肥厚,清脆爽口。
            </div>
        </div>
    </div>
    <div class="col-6">
        <!--嵌套行和列-->
        <div class="row border no-gutters">
            <div class="col-3"><img src="2.jpg" alt=""></div>
            <div class="col-9 pl-3">
                葡萄为著名水果,生食或制葡萄干,并酿酒,酿酒后的酒脚可提酒石酸,根和藤药用能止呕、安胎。
            </div>
        </div>
    </div>
</div>
</body>
</html>

L'effet de course est le suivant :
insérer la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/wenhao_ir/article/details/132667178
conseillé
Classement