Notes de mise en route CSS 4


Rem est là

Div hiérarchique, position de positionnement CSS, contexte en cascade

Préface

C'est le point de connaissance que j'ai résumé sur la manière d'apprendre. Le graphique du code source présente en détail div hiérarchique, position de positionnement CSS et contexte en cascade. J'espère que cela sera utile à tout le monde, et je continuerai à Gauguin, progressons ensemble dans la nouvelle année!


1. Superposition de div

L'étape suivante consiste à vérifier la position de chaque élément dans la couche div. L'idée principale est de chevaucher et de couvrir

1.1 D'où vient le fond? Où est la couleur de fond div

La plage d'arrière-plan est la zone délimitée par le bord extérieur de la bordure.

Idées

Comment le vérifier?

Il peut être vu en définissant la bordure semi-transparente

processus

code montrer comme ci-dessous

<head>
...
  <meta charset="utf-8">
  <title>JS Bin</title>
  <style>
    .demo{
     
     
    box-sizing: border-box;
    margin: 12px;
    border: 10px solid rgba(255,0,0,1);
    padding: 22px;
    width: 100px;
    height: 100px;
    background: blue;
    color: white;
    }
  </style>
</head>

<body>
  <div class="demo">
    内容
  </div>
</body>

Le code spécifique peut être consulté sur http://js.jirengu.com/vemax/1/edit?html, css, sortie

L'effet obtenu en ajustant la transparence de la bordure 1 à 0 via les outils de développement est le suivant

Bordure transparente

en conclusion

Le rouge devient transparent, le bleu apparaît- "On peut en conclure que la plage d'arrière-plan se situe à la fin de la zone délimitée par le bord extérieur de la bordure, ce qui prouve que la couleur d'arrière-plan est en dessous du corps de la bordure

1.2 Où est le contenu du texte?

Idées

On peut voir de face que le contenu couvre la couleur d'arrière-plan et que le contenu est au-dessus de l'arrière-plan. Le contenu est-il au-dessus de la bordure?

Il peut être vérifié par code.

processus

Sur la base du code ci-dessus, ajoutez un élément span ( <span class=text>内容</span>) au div, puis définissez le style pour augmenter la taille de la police ( .text{ font-size: 100px; color: green }).

Le code spécifique peut être consulté à http://js.jirengu.com/zifot/1/edit?html, css, sortie

On peut voir que l'effet est le suivant

Le contenu couvre la frontière

en conclusion

On peut voir sur l'image que le contenu couvre la bordure - donc le contenu est au-dessus de la bordure

1.3 Où sont les sous-éléments de ce bloc?

Idées

En ajoutant des éléments enfants au niveau du bloc, il chevauche l'objet de comparaison

processus

Toujours passer la vérification du code

<head>
...
<style>
    .demo{
     
     
    background: rgb(120,184,211);
    width: 200px;
    height: 200px;
    border: 15px solid rgba(255,0,0,1);
    padding: 10px;
  }
  .childDiv{
     
     
    background: white;
    height: 50px;
    margin-top: -10px;
  }
  </style>
</head>

<body>
  <div class="demo">
    我是文字内容
    <div class="childDiv"></div>
  </div>
</body>

Ajout d'un élément enfant de niveau bloc childDiv au div, définissez son style sur blanc et déplacez-le de -10px vers le haut

en conclusion
  • On peut voir que le div blanc de l' élément enfant au niveau du bloc est sur l'arrière-plan du div parent. "L' élément enfant au niveau du bloc est en arrière-plan.

  • On peut voir que le contenu textuel du div parent couvre le div blanc - "On peut conclure que le contenu textuel est l'élément enfant en ligne au-dessus de l'élément enfant au niveau du bloc

1.4 Où est l'élément flottant?

Idées

Ajoutez un div flottant vert à gauche dans le div parent et définissez la marge droite sur -20px pour chevaucher le texte.

processus

code montrer comme ci-dessous

<head>
...
  <style>
    .demo{
     
     
    background: rgb(120,184,211);
    width: 200px;
    height: 200px;
    border: 15px solid rgba(255,0,0,1);
    padding: 10px;
  }
  .childDiv{
     
     
    background: white;
    height: 50px;
  }
  .float{
     
     
    float: left;
    background: green;
    height: 50px;
    width: 50px;
    color: red;
    margin-right: -20px;
  }
  </style>
</head>

<body>
  <div class="demo">
    我是文字内容
    <div class="float"></div>
    <div class="childDiv"></div>
  </div>
</body>

Le code spécifique peut être consulté à http://js.jirengu.com/zaban/1/edit?html, css, sortie

Le diagramme des effets est le suivant

Élément flottant

en conclusion
  • On peut voir que l'élément flottant vert recouvre l'élément blanc non flottant. "L' élément flottant est au-dessus de l'élément enfant de niveau bloc.

  • On peut voir que le texte recouvre l'élément flottant vert- "L' élément enfant en ligne est au-dessus de l'élément flottant

1.5 En résumé, ce chiffre peut être vérifié:

Regardez div à 45 degrés

Peu importe que le texte se trouve sur la partie la plus externe ou à l'intérieur d'un certain élément div, il est traité de la même manière.


2. Position de positionnement CSS

Après avoir compris la couche div, comprenons la position de positionnement CSS.

Quelle est la différence entre la mise en page et le positionnement écrits en CSS Getting Started Note 3 ?

  • La disposition est le plan d' écran sur

  • Le positionnement est perpendiculaire à l'écran

Comprendre le positionnement CSS d'abord comprendre le flux de documents et le modèle de boîte

Le flux de documents et le modèle de boîte peuvent afficher les notes d'entrée CSS 2

Ou vérifiez le flux de documents standard (flux normal) MDN / modèle de boîte (modèle de boîte) MDN

Cinq valeurs de position

选择器{
    
    
	...
	position: 五个取值;   
}
2.1 statique

static est la valeur par défaut, ce qui signifie que l'élément actuel est dans le flux de documents

选择器{
    
    
	...
	position: static;   
}
2.2 Positionnement relatif relatif

Le positionnement relatif augmente, mais ne s'écarte pas du flux de documents

选择器{
    
    
	...
	position: relative;   
}

scènes à utiliser:

  1. Pour le
    relatif
    code spécifique pour le déplacement (rarement utilisé) , veuillez consulter http://js.jirengu.com/newuc/1/edit?html, css, sortie

Du point de vue du div noir, votre div vert est toujours dans sa position d'origine et la position que vous occupez reste la même, mais l'emplacement affiché est un peu décalé.

  1. Utilisé pour parent sbsolute

  2. Avec z-index

  • z-index: auto; valeur par défaut, ne crée pas de nouveau contexte en cascade

  • indice z: 0/1/2;

  • indice z: -1 / -2

Le z-index par défaut est auto, la valeur calculée par auto est 0, mais 0 ne peut pas être écrit (0 peut créer un contexte en cascade),

2.3 Positionnement absolu absolu

Sera positionné par rapport au premier élément positionné de l'élément ancêtre (tant qu'il n'est pas statique) , principalement associé à un élément relatif

  • scènes à utiliser
  1. Éloignez-vous de la position d'origine et créez un nouveau calque, tel que le bouton de fermeture d'une boîte de dialogue
    absolu

Le code spécifique peut être consulté sur http://js.jirengu.com/zizaf/1/edit?html, css, sortie

  1. Fonction de contenu d'affichage du survol de la souris
<head>
...
 <style>
    .container{
     
     
    border: 1px solid red;
    height: 300px;
    position: relative;
    padding: 20px;
  }
  button{
     
     
    position: relative;
  }
  button span{
     
     
    position: absolute;
    border: 1px solid red;
    white-space: nowrap;
    /*控制文字内容不准换行*/
    bottom: calc(100% + 10px);
    /*距离底部100%再加10px*/
    left: 50%;
    transform: translateX(-50%)
    
  }
  
  /*默认不浮现,悬浮着浮现*/
  button span{
     
     
    display: none;
  }
  button:hover span{
     
     
    display: inline-block;
  }
  </style>
</head>

<body>
  <div class="container clearfix">
    <div style="height: 100px;"></div>
    <button>点击
      <span class=tips>提示内容</span>
    </button>

  </div>
</body>

Veuillez vérifier le code spécifique http://js.jirengu.com/zosof/1/edit?html,css,output

Des effets similaires sont les suivants

Rappel de survol

  • Peut être utilisé avec z-index

Sur certains navigateurs, si vous n'écrivez pas en haut / à gauche, la position sera confuse

Faire bon usage de la gauche: 100%; utilisé pour trouver l'emplacement

Faire bon usage de gauche: 50%; ajouter une marge négative (ou transformer: translateX (50%); ...)

2.4 Positionnement relatif de la fenêtre fixe

La fenêtre (viewport) est la zone que cette page Web peut montrer à l'utilisateur

Ne mettez pas fixd dans un attribut de transformation, il ne sera pas orthogonal.

Essayez de ne pas utiliser cet attribut sur votre téléphone portable, il y aura de nombreux problèmes

  • scènes à utiliser
  1. Annonces ennuyeuses
  2. Bouton retour en haut
    fixe1111

Pour un code spécifique, veuillez consulter http://js.jirengu.com/sibulo/1/edit?html,css,output

  • Avec z-index
2.5 positionnement collant collant

Peut être utilisé comme barre de navigation, mauvaise compatibilité (la compatibilité peut être trouvée en recherchant sticky sur caniuse.com )

Similaire à ce qui suit

bâton1111

Le code spécifique peut être consulté à http://js.jirengu.com/rajeg/1/edit?html, css, sortie


Contexte à trois cascades

Aussi appelé contexte d'empilement

3.1 Éléments de positionnement

L'élément de positionnement est en haut par défaut (z-index = 0/1/2 / ...), il sera basé sur ce calque et continuera à monter, le z-index de -1 sera sous l'arrière-plan et continuera vers le bas. L'index z ne peut pas dépasser le contexte en cascade lorsqu'il est négatif. Cela n'a pas de sens de courir derrière html.

<head>
...
 <style>
    *{
     
     margin: 0;padding: 0;box-sizing: border-box;}
  
  .container{
     
     
    border: 1px solid black;
    height: 200px;
    background: rgba(52, 235, 232, .5);
    /*设置半透明可以看到背景下的relativ2的黑色*/
  }
  .relative{
     
     
    height: 50px;
    background: red;
    position: relative;
    margin-top: -10px;
  }
  
  .relative2{
     
     
    height: 50px;
    background: black;
    position: relative;
    top: -20px;
    z-index: -1;
  }
  </style>
</head>

<body>
  <div class="container">
    我是文字
    <div class="relative"></div>
    <div class="relative2"></div>
  </div>
</body>

Le code spécifique peut être consulté à http://js.jirengu.com/wupop/2/edit?html, css, sortie

Le diagramme des effets est le suivant

index z

en conclusion

On peut voir sur l'image que la boîte de positionnement relative rouge recouvre le texte - l'élément de positionnement est en haut

On peut voir sur la figure que le fond bleu translucide du conteneur recouvre le fond de la case 2 avec z-index: -1 ;. . . - "Au fond

Il y a une image dessinée par l'enseignant pour illustrer

Contexte en cascade

3.2 Les éléments de positionnement peuvent-ils dépendre de la taille de l'indice z?

Non, cela dépend s'ils sont dans le même périmètre.

z-index: 9; est-il supérieur à z-index: 2 ;?

Utilisez le code pour vérifier

Différents contextes en cascade

Le code spécifique peut être consulté sur http://js.jirengu.com/dayev/2/edit?html, css, sortie

en conclusion:
  • Le bleu 2 recouvre le rouge 9 - " a et b2 sont dans le même petit monde (le contexte empilé apporté par le conteneur). L'index z dans ce petit monde n'a rien à voir avec le monde extérieur. Seuls les z-index dans le même petit monde peuvent être comparés

3.3 Quels attributs peuvent créer un contexte en cascade?

Le code ci-dessus est de créer un contexte d'empilement en positionnement relatif absolu où la valeur de z-index n'est pas auto. Le parent ci-dessus avec z-index parle également de z-index: auto; la valeur par défaut ne crée pas de nouveau contexte d'empilement

Il existe de nombreuses situations dans lesquelles vous pouvez créer un contexte en cascade, et certaines propriétés non orthogonales peuvent également être créées. Celles dont il faut se souvenir sont:

  • z-index (l'élément dont la valeur de position est absolue (positionnement absolu) ou relative (positionnement relatif) et la valeur z-index n'est pas auto)

  • flex (élément enfant du conteneur flex (flexbox), et la valeur z-index n'est pas auto;)

  • opacité (éléments avec une valeur d'attribut d'opacité inférieure à 1)

  • transform (la valeur d'attribut n'est pas aucune)

Vous pouvez rechercher «MDN de contexte en cascade» pour en savoir plus sur le contexte en cascade et comment le créer.

-continuer



Je suis en route pour apprendre le front-end de l'entrée au sol. Chaque fois que vous regardez, c'est votre plus grand encouragement pour mon parcours d'apprentissage, travaillons dur ensemble!

Bienvenue à laisser vos précieux commentaires.

Ojbk

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46383761/article/details/112089309
conseillé
Classement