Résoudre le défi de la copie sélective de HTML CSS JS à partir d'éléments DOM
Les développeurs sont souvent confrontés à la nécessité d'examiner et d'utiliser des sections spécifiques du code du site Web. pour des projets personnels. La copie d'éléments individuels et des styles associés peut prendre du temps. Pour relever ce défi, nous avons recherché un outil permettant l'extraction de HTML CSS JS pour n'importe quel élément souhaité.
La réponse : SnappySnippet
La réponse réside dans SnappySnippet, un outil développé et mis à disposition sur GitHub. Il permet aux utilisateurs d'extraire HTML, CSS et JS du nœud DOM le plus récemment inspecté. De plus, il offre la possibilité d'envoyer ce code extrait directement à CodePen ou JSFiddle.
Principales fonctionnalités
SnappySnippet possède une gamme de fonctionnalités, notamment :
Défis et solutions de mise en œuvre
La mise en œuvre de SnappySnippet devait être surmontée plusieurs obstacles :
1. getMatchedCSSRules() Limitations :
Au départ, l'accent était mis sur la récupération des règles CSS originales à partir des fichiers CSS, mais l'approche s'est avérée inefficace en raison de problèmes de correspondance du sélecteur CSS dans le contexte de l'extrait HTML isolé.
2. Considérations sur getComputedStyle() :
La tentative suivante impliquait l'utilisation de getComputedStyle(), mais nécessitait de séparer le CSS du HTML.
2.1 Séparer le CSS et le HTML :
Les identifiants étaient attribué aux nœuds, permettant la création de règles CSS appropriées, résolvant ainsi le problème de séparation.
2.2 Suppression des propriétés par défaut :
getComputedStyle() renvoie toutes les propriétés possibles, y compris les valeurs par défaut du navigateur. La solution impliquait de comparer les styles d'éléments dans le contexte du site Web avec ceux d'une iframe vide sans feuilles de style CSS, permettant l'identification et la suppression des propriétés par défaut.
2.3 Suppression des propriétés préfixées :
Les propriétés préfixées telles que -webkit- ont été identifiées et supprimées car elles sont souvent inutiles et peuvent indiquer des fonctionnalités propriétaires.
2.4 Combinaison Mêmes règles CSS :
Des règles CSS identiques ont été combinées pour réduire la taille du code et améliorer la lisibilité.
2.5 Nettoyage et formatage HTML :
La propriété externalHTML renvoie le code dans son format d'origine, nécessitant un reformatage à l'aide d'une bibliothèque JavaScript (jquery-clean).
2.6 Facultatif Filtres :
Pour garantir la flexibilité, tous les filtres sont configurables par l'utilisateur via le menu Paramètres, permettant une personnalisation en fonction des besoins individuels.
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!