Maison  >  Article  >  interface Web  >  Six solutions de mise en page CSS classiques à trois colonnes

Six solutions de mise en page CSS classiques à trois colonnes

小云云
小云云original
2017-12-04 13:32:5810387parcourir

CSS est un langage indispensable pour nos programmeurs de développement front-end. Être capable de bien maîtriser CSS peut grandement améliorer le travail de développement front-end. Cet article présente principalement le schéma de mise en page CSS classique à trois colonnes et le partage avec tout le monde.

La disposition à trois colonnes, comme son nom l'indique, est fixe des deux côtés et adaptative au milieu. La disposition à trois colonnes est très courante dans le développement

1. Disposition flottante

La disposition à trois colonnes la plus simple consiste à utiliser float pour la mise en page. Tout d'abord, dessinez les colonnes de gauche et de droite :

    <style>
      .left {
        float: left;
        width: 100px;
        height: 200px;
        background-color: red;
      }
    
      .right {
        float: right;
        width: 100px;
        height: 200px;
        background-color: yellow;
      }
    </style>
      
      <p class="container">
        <p class="left"></p>
        <p class="right"></p>
        <p class="main"></p>
      </p>

A ce moment, vous pouvez obtenir la répartition des colonnes de gauche et de droite :

Voyons ensuite comment gérer la colonne du milieu. Nous savons que pour les éléments float, ils se détacheront du flux de documents et que les autres boîtes ignoreront cet élément. (Mais le texte dans les autres cases fera toujours de la place pour cet élément et l'entourera.) Donc pour le moment, il vous suffit d'ajouter un p normal dans le conteneur conteneur, qui ignorera la gauche et la droite et remplira tout le conteneur. De plus, la marge peut être gauche et droite pour s'écouler sur l'espace :

   <style>
      .left {
        float: left;
        width: 100px;
        height: 200px;
        background-color: red;
      }
    
      .right {
        float: right;
        width: 100px;
        height: 200px;
        background-color: yellow;
      }
    
      .main {
        background-color: green;
        height: 200px;
        margin-left: 120px;
        margin-right: 120px;
      }
    
      .container {
        border: 1px solid black;
      }
    
      <p class="container">
      <p class="left"></p>
      <p class="right"></p>
      <p class="main"></p>
      </p>

Avantages : Simple

Inconvénients : La partie centrale est chargée en dernier, ce qui affecte l'expérience lorsqu'il y a beaucoup de contenu

2 Règles BFC

BFC ( Les règles de contexte de formatage de bloc) stipulent : BFC ne se mélangera pas avec les éléments flottants qui se chevauchent. Donc, si vous définissez l'élément principal comme élément BFC :

    <style>
      .left {
        float: left;
        width: 100px;
        height: 200px;
        background-color: red;
      }
    
      .right {
        float: right;
        width: 100px;
        height: 200px;
        background-color: yellow;
      }
    
      .main {
        background-color: green;
        height: 200px;
        overflow: hidden;
      }
    
      <p class="container">
        <p class="left"></p>
        <p class="right"></p>
        <p class="main"></p>
      </p>

3. Le cœur de la mise en page du Saint Graal est que les colonnes de gauche, du milieu et de droite sont toutes flottantes, puis ajustées par une marge négative.

La première étape consiste à jeter un œil à la mise en page de base

    <style>
        .left {
            float: left;
            width: 100px;
            height: 200px;
            background-color: red;
        }

        .right {
            float: left;
            width: 100px;
            height: 200px;
            background-color: yellow;
        }

        .main {
            float: left;
            width: 100%;
            height: 200px;
            background-color: blue;
        }
    </style>
    <body>
        <p class="container">
            <p class="main"></p>
            <p class="left"></p>
            <p class="right"></p>
        </p>
    </body>

Vous voyez à ce moment-là, l'effet est le suivant : les colonnes de gauche et de droite sont comprimées dans la deuxième ligne. C'est parce que la largeur de la main est de 100 %. Ensuite, nous mettons la gauche, le centre et la droite sur une seule ligne en ajustant les marges des colonnes de gauche et de droite :

        .left {
            float: left;
            width: 100px;
            height: 200px;
            margin-left: -100%;
            background-color: red;
        }

        .right {
            float: left;
            width: 100px;
            height: 200px;
            margin-left: -100px;
            background-color: yellow;
        }
La deuxième étape est à La marge gauche de gauche est définie sur -100 %. À ce moment, la colonne de gauche se déplacera au début de la première ligne. Fixez ensuite la marge gauche de droite à la valeur négative de sa largeur : -100px, et la colonne de droite sera également déplacée sur la même ligne que les colonnes de gauche et du milieu :

Cependant, ce n'est pas encore fait, nous essayons d'ajouter du texte au principal :

    <body>
        <p class="container">
            <p class="main">fjlskdjflkasjdfljasdljlsjdljsdjflksadj</p>
            <p class="left"></p>
            <p class="right"></p>
        </p>
    </body>

Vous pouvez voir le texte Étant supprimé, l'étape suivante consiste à résoudre le problème.

La troisième étape consiste à donner au conteneur un remplissage, qui doit être exactement égal à la largeur des colonnes de gauche et de droite :

        .container {
            padding-left: 100px;
            padding-right: 100px;
        }
À l'heure actuelle, le résultat est que les colonnes de gauche, du milieu et de droite ont toutes été réduites, mais le texte est toujours supprimé.

La quatrième étape consiste à ajouter une disposition relative aux colonnes de gauche et de droite, puis à les déplacer vers l'extérieur en définissant les valeurs de gauche et de droite :

        .left {
            float: left;
            width: 100px;
            height: 200px;
            margin-left: -100%;
            position: relative;
            left: -100px;
            background-color: red;
        }

        .right {
            float: left;
            width: 100px;
            height: 200px;
            margin-left: -100px;
            position: relative;
            right: -100px;
            background-color: yellow;
        }
Ça y est, vous avez terminé :

4. Disposition des ailes volantes doubles

Les deux premières étapes de la mise en page à double aile sont les mêmes que la mise en page Saint Graal, sauf que la solution au problème du blocage du contenu dans la colonne du milieu est différente :

Depuis le contenu dans la partie principale sera bloqué, puis à l'intérieur de la partie principale Ajoutez un contenu et définissez sa marge pour éviter l'occlusion, et le problème pourra être résolu :

<!DOCTYPE html>
<html lang="en">
<head>
    <style>
        .main {
        float: left;
        width: 100%;
        }
        .content {
        height: 200px;
        margin-left: 110px;
        margin-right: 220px;
        background-color: green;
        }
        
        .main::after {
        display: block;
        content: &#39;&#39;;
        font-size: 0;
        height: 0;
        clear: both;
        zoom: 1;
        }
    .left {
        float: left;
        height: 200px;
        width: 100px;
        margin-left: -100%;
        background-color: red;
    }
    .right {
        width: 200px;
        height: 200px;
        float: left;
        margin-left: -200px;
        background-color: blue;
    }   
    </style>
</head>
<body>
    <p class="main">
        <p class="content"></p>
    </p>
    <p class="left"></p>
    <p class="right"></p>
</body>
</html>
La seule chose à noter est qu'il doit être dans le principal. Ajoutez un élément après pour effacer le flotteur.

5. Mise en page Flex

La mise en page Flex est la tendance Il est également très simple d'utiliser flex pour mettre en œuvre une mise en page à trois colonnes, mais vous devez y prêter attention. compatibilité du navigateur :

        <style type="text/css">
            .container {
                display: flex;
                flex-direction: row;
            }
            .middle {
                height: 200px;
                background-color: red;
                flex-grow: 1;
            }

            .left {
                height: 200px;
                order: -1;
                margin-right: 20px;
                background-color: yellow;
                flex: 0 1 200px;
            }

            .right {
                height: 200px;
                margin-left: 20px;
                background-color: green;
                flex: 0 1 200px;
            }
        </style>
    </head>
    <body>
        <p class="container">
            <p class="middle">fsdfjksdjflkasjdkfjsdkljfklsjadfkljaksdljfskljffjksldfjldsfdskjflsdjfkljsdlfjsldjfklsjdkflj</p>
            <p class="left"></p>
            <p class="right"></p>
        </p>
    </body>
Il y a quelques points à noter :

main doit être écrit en premier si il doit être chargé en premier, mais parce que left Il doit être affiché à l'extrême gauche, donc l'ordre de gauche doit être défini sur -1
  1. La méthode d'écriture complète du L'attribut flex est : flex : flex-grow flex-shrink flex-basis. C'est également le cœur de la disposition à trois colonnes de flex. Main définit flex-grow sur 1, ce qui signifie que tout l'espace supplémentaire est attribué à main. Lorsqu'il n'y a pas assez d'espace, seules les parties gauche et droite sont réduites. en même temps, car la base flexible des parties gauche et droite est spécifiée, augmentez la largeur des deux pour assurer l'effet d'affichage
  2. Positionnement absolu

Le positionnement absolu est également relativement simple et peut être chargé en premier. Sujet :

Le contenu ci-dessus concerne six plans de mise en page CSS classiques à trois colonnes. J'espère qu'il pourra aider tout le monde.

Recommandations associées :

Écrivez d'abord du HTML ou du CSS lors de la mise en page de la page Web ?

Dans la page Web mise en page HTML Quelle est la différence entre div et span

Quelles sont les techniques de mise en page CSS

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn