Maison  >  Article  >  interface Web  >  Utilisez javascript pour un développement réactif

Utilisez javascript pour un développement réactif

亚连
亚连original
2018-06-12 11:34:401824parcourir

Cet article présente principalement l'utilisation de rem en javascript pour un développement réactif. Maintenant, je le partage avec vous et vous donne une référence.

La version informatique du centre commercial a été terminée hier soir, et je me précipite aujourd'hui pour réaliser la version mobile. Lorsqu'il s'agit du site Web mobile, la première chose qui me vient à l'esprit est de s'adapter à la largeur du site. différents écrans de téléphones mobiles pour garantir qu'il peut être affiché normalement sur différents téléphones mobiles, lorsque je faisais ce type de site Web auparavant, j'ai introduit le bootstrap sans aucune réflexion. Mais après avoir terminé le projet précédent, j'ai découvert que même si le bootstrap est bon, j'utilise rarement les différents styles qu'il contient. Lorsque le site Web est enfin téléchargé, vous constaterez que même après la compression, il prendra du temps. beaucoup d'espace. Une grande partie, donc cette fois je souhaite utiliser l'écriture native et le développement réactif (je m'y connais encore un peu maintenant, je sais :

1. Méthode du pourcentage :

Comme son nom l'indique, la marge, le remplissage, la largeur, la hauteur, etc. des éléments de la page sont tous calculés en %. À quoi fait référence la centaine dans le pourcentage en CSS ? Il fait référence à l'élément parent. Tous les pourcentages sont comme ceci. Si la largeur de l'élément enfant est de 50 %, alors la largeur de l'élément parent est de 100, le remplissage gauche de l'élément enfant est de 50 %, la largeur de l'élément parent est de 100 et la marge supérieure de l'élément enfant est de 50 %. L'élément parent est de 20 %, alors la hauteur de l'élément parent est de 100. Par conséquent, la largeur par défaut du corps est la largeur de l'écran (en référence à la largeur du navigateur sur PC). Les éléments descendants peuvent être positionnés en fonction de pourcentages (ou de tailles spécifiées). Cela ne convient que pour les pages avec des mises en page simples. pour implémenter des pages complexes.

2. Requête média :

Ceci est donné en CSS3 Le problème que nous voulons résoudre est de s'adapter à l'écran du téléphone mobile. ce problème. La fonction de la requête multimédia est de définir différents styles CSS pour différents médias. Le "média" inclut ici la taille de la page, la taille de l'écran de l'appareil, etc. Le formulaire le plus couramment utilisé est

téléphone :@écran multimédia. et (max -width : 767px) {/Mobile style/}

pad : @media screen et (max-width : 991px)et (min-width :768) {/Tablet style/}

pc :@media screen et (min-width : 992px){/PC style/}

...(Vous pouvez également définir plus de nœuds)

Si vous utilisez media query Pour garantir que chaque pixel a un effet d'adaptation correspondant, vous devez évidemment définir une plage de largeur plus petite

3 Il existe également l'unité css3 rem :

rem ; consiste à utiliser la valeur de taille de police du nœud racine html comme taille de base de la page entière. Par exemple, 24f6ee081ffe8b8b47a5b9b95efd48bf Ensuite, vous devez utiliser js pour obtenir la largeur de la fenêtre (largeur de la fenêtre du navigateur) $(window).width() lorsque la page est chargée lors du développement de pages mobiles, nous définissons généralement la largeur maximale à 640 px, car 640 px ; peut garantir Lorsqu'elle est affichée sur le téléphone mobile le plus large à ce jour, les deux extrémités de la page Web s'adaptent à l'écran. Laissez-moi vous donner un petit exemple.

Les trois p du zoom d'écran et du zoom sont également dans la même ligne.

html

<p class="container">
  <p class="box">1</p>
  <p class="box">2</p>
  <p class="box">3</p>
</p>

css

<style>
  html{font-size: 20px;}
  .container{
    max-width: 640px;
    border:1px solid red;
    margin:0 auto;
    overflow: hidden;
    box-sizing: border-box;
  }
  .box{
    float: left;
    width:10.6rem;
    //我这里设置html的font-size:20px;最大
宽为640px,即相当于640/20=32rem;一行有3个p,所以每个p宽10.6rem

你也可以像论坛里面讲的那样设置html的font-size:62.5%;因为浏览器默认像素16px;乘以62.5%之后为整数10px;方便计算

    height:10.6rem;
    border:1px solid #000;
    box-sizing: border-box;
  }
</style>

js

<script>
 window.onresize = window.onload = function () {
   var w = $(window).width();
   if(w<640){
     var size = 20*w/640;//640的时候
对应html的font-size为20,那么宽度为w是对应
的font-size可这么求
     $(&#39;html&#39;).css(&#39;fontSize&#39;,size+&#39;px&#39;);
   }
 }
</script>

Notez qu'il y a un petit trou ici Lorsque vous apportez cette petite démo à Google Chrome pour vérification, vous constaterez que les 3 p apparaîtront au début. Il rétrécit à mesure que la fenêtre de votre navigateur rétrécit et cesse de bouger après avoir atteint une certaine valeur. La raison en est que la valeur de taille de police minimale prise en charge par défaut par Google Chrome est de 10 px ; si elle est inférieure à cette valeur, elle ne sera pas plus petite. C'est ce que j'ai passé près de deux heures à chercher sur Internet le problème que j'avais rencontré à ce moment-là. Je l'ai démontré encore et encore, mais je n'arrivais toujours pas à le comprendre. Finalement, j'ai trouvé une raison aussi non humaine.

Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère que cela sera résolu à l'avenir.

Articles associés :

Comment gérer les balises head à l'aide de vue-meta

Quelques problèmes courants avec Nuxt.js (tutoriel détaillé)

React Native a des problèmes avec des erreurs de ressources inter-domaines

Installez la dernière version de npm dans nodejs (tutoriel détaillé)

Comment implémenter la fonction anti-rebond dans js (tutoriel détaillé)

Comment marquer et enregistrer la position de défilement dans vue-scroller

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