Aujourdamp;rsquohui, nous allons examiner un problème réel que CSS ne peut pas facilement résoudre, et examiner les méthodes de réparation de jquery. Dans mon travail de développement frontal, jamp;rsquoutilise souvent JavaScript et jquery, la bibliothèque
voulez une brève introduction à jquery lui même, voici un aperçu rapide des concepts et un bon tutoriel pour débutants. Notre exemple réel namp;rsquoest pas beaucoup plus compliqué que le tutoriel, alors revenez dès que possible! Problème: lamp;rsquoune des Parties les plus uniques du menu de navigation de débordement wpshout Layout est son menu de navigation latérale. Nous lamp;rsquoaimons beaucoup, mais camp;rsquoest aussi la source de la complexité stylistique derrière les exemples damp;rsquoaujourdamp;rsquohui. Notre menu de navigation est absolument positionné, ce qui peut entraîner un débordement en plus de sa forme généralement intéressante, notre menu de navigation se trouve en fait en partie au dessus du conteneur de contenu principal, et le texte de lamp;rsquoarticle se trouve à:
Cliquez sur zoom pour gérer cette mise en page et damp;rsquoautres complexités de mise en page, et notre menu de navigation doit être absolument positionné. Cet attribut CSS, emplacement: absolu, Extraire les éléments du flux de mise en page principal de la page HTML. Lamp;rsquoélément peut encore être associé à damp;rsquoautres éléments Dom, mais ces autres éléments lamp;rsquoignorent complètement dans leurs décisions de mise en page. Comme les éléments sont ignorés les uns des autres, des résultats vraiment problématiques peuvent être obtenus. En particulier, que se passe t il si le menu de navigation est plus haut
Du prochain article? Il devient laid, les éléments se chevauchent de façon inappropriée, et camp;rsquoest ce que jamp;rsquoappelle un
Cliquez pour agrandir nous avons besoin damp;rsquoune hauteur minimale, mais quelle hauteur minimale devrions nous choisir? Même pour les articles courts, nous voulons que le pied de page apparaisse uniquement sous le menu de navigation: Cependant, en cliquant pour agrandir, il namp;rsquoy a aucun moyen de dire dans CSS « namp;rsquoaccédez quamp;rsquoen dessous de cet élément absolument placé », car une partie de lamp;emplacement absolu est que damp;rsquoautres éléments ignorent lamp;rsquoélément absolument placé dans leurs décisions de mise en page. Par conséquent, nous devons définir une hauteur minimale pour le conteneur principal de lamp;rsquoarticle, qui dans ce cas est la DIV de la classe de contenu principale:
En cliquant sur zoom, nous devons continuellement détecter la hauteur du menu et régler la hauteur minimale du conteneur principal à cette hauteur. CSS ne peut pas le faire, mais jquery peut le faire. Quelle doit être la hauteur minimale? Il doit être
Ce dont nous avons besoin, camp;rsquoest damp;rsquoune détection continue de la hauteur des menus et des réglages. Le contenu principal est le même. CSS ne peut pas le faire, mais jquery peut le faire. Correction: hauteur minimale de la page. Pour résoudre ce problème, jamp;rsquoa i écrit un script jquery, page Min height. JS, dans le thème wpshout. Je lamp;rsquoai mis en file damp;rsquoattente. Sujet PHP Je ne vais pas montrer ce processus ici, donc si avez besoin de savoir comment faire la file damp;rsquoattente pour les scripts et les STI
Regardez notre article sur ce sujet. Camp;rsquoest la hauteur minimale de la page. JS lui même: (fonction ($) { 1. Définir la variable var navmenu = amp;lsquo. Navigation principaleamp;rsquo var pagecontent = amp;lsquo. Contenu principalamp;rsquo var gap = parseint ($(amp;lsquohtmlamp;rsquo). CSS (amp;lsquofont sizeamp;rsquo), 10) * 2 2. Définir la fonction assigner la hauteur minimale à la fonction setpagemin () {var height = $(navmenu). Height () $(pagecontent). CSS (amp;lsquoMin heightamp;rsquo, height + GAP)} $ (fenêtre). Load (Function () { 3. Run Function Load setpagemin () on the first Window 4. Run Function every 120ms when the window is redimensionné $(Window). Resize (Function () {settimeout (Function () {setpagemin ()), 120)})})}) (jquery) Je vais expliquer ce code en quatre parties, correspondant aux quatre sections précédentes.
1. Définir les variables dans cette section, nous définissons quelques variables que nous utiliserons dans le reste du script: navmenu est le nom de la classe de menu de navigation, comme indiqué ci dessous. Navigation principale. Pagecontent est le nom de classe du conteneur de contenu principal, ici. Contenu principal. Lamp;rsquoécart peut sembler déroutant, mais il samp;rsquoagit damp;rsquoun entier égal au « double de la taille du caractère principal du document HTML (en pixels) ». Jamp;rsquoai utilisé ce numéro pour créer un
2. Définition setpagemin () Cette section définit une fonction setpagemin () qui fait deux choses: trouver la hauteur actuelle (en pixels) de lamp;rsquoobjet spécifié par navmenu, camp;rsquoest à dire. Navigation principale, menu de navigation lui même. Définissez le contenu de la page du projet. Le contenu principal, donc sa hauteur minimale est égale à la hauteur du navmenu plus lamp;rsquoécart défini précédemment. 3. Exécuter setpagemin ()
Windowsload $(Windows). Chargement (fonction () {}) Définit une fonction qui samp;rsquoexécute lorsque tous les objets Dom sont entièrement affichés dans le navigateur. Camp;rsquoest la hauteur du menu de navigation que nous pouvons mesurer de façon fiable, donc la première chose que nous devons faire à ce stade est damp;rsquoexécuter setpagemin ().
4. Lancez setpagemin () pendant les heures de redimensionnement de la fenêtre, mais nous namp;rsquoavons pas terminé. Que se passe t il si lamp;rsquoutilisateur redimensionne la fenêtre du navigateur? Cela rend facilement le menu de navigation plus haut ou plus court, ce qui le fait se chevaucher ou bien en dessous des limites fixées lors de notre premier appel à setpagemin (). Par conséquent, nous devons écouter lamp;rsquoutilisateur redimensionner la fenêtre et exécuter la fonction lorsque la fenêtre est redimensionnée. Camp;rsquoest $(fenêtre). Redimensionner (fonction () {}) Fa. Quamp;rsquoest ce qui est à lamp;rsquointérieur de la fonction? La chose la plus simple est donc damp;rsquoappeler setpagemin () comme suit:.
$(fenêtre). Redimensionner (fonction () {setpagemin ()}) Cependant, JavaScript est très nerveux. Le code ci dessus exécutera setpagemin () Lamp;rsquoutilisateur Redimensionne le Navigateur toutes les millisecondes. Cela est excessif et peut entraîner un comportement de page instable. Au lieu de cela, nous lancerons setpagemin () Toutes les 120 millisecondes. Ils sont environ huit fois par seconde: très rapides et beaucoup moins intenses pour les humains. Camp;rsquoest ce que fait le code suivant: settimeout (fonction () {setpagemin ()}, 120) souhaitez en savoir plus sur settimeout, je encourage à le lire! Camp;rsquoest une grande fonctionnalité avec une utilisation incroyable.
Dans certains cas, cette section exécute setpagemin () Chaque fois que lamp;rsquoutilisateur redimensionne la fenêtre du navigateur, environ 8 fois par seconde, cela signifie que nous définissons la hauteur minimale pour le contenu principal par rapport à la mesure réelle
Correction d&rsquoune vulnérabilité dans CSS avec jquery: un exemple pratique