Maison  >  Article  >  interface Web  >  taille de police adaptative HTML

taille de police adaptative HTML

不言
不言original
2018-05-03 14:24:452000parcourir

Cet article présente principalement la taille de police adaptative HTML, qui a une certaine valeur de référence. Maintenant, je la partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Dans le processus de développement, j'ai rencontré le besoin d'ajuster. l'interface dom La largeur et la hauteur de la page sont utilisées pour définir la taille de police adaptative. Nous allons maintenant partager les idées de développement

Lorsque la largeur et la hauteur de l'élément dom de la page sont limitées, il est impossible de la définir. la même taille de police pour tous les éléments, et la taille de la police est Si le paramètre est trop petit, cela ne favorise pas la beauté de l'interface, donc mon idée de développement est d'utiliser JS pour contrôler dynamiquement la taille de la police dans le dom, c'est-à-dire c'est-à-dire, obtenez la largeur et la hauteur du dom via JS, puis accumulez la taille de police à partir de 12px jusqu'à ce que la taille de la police puisse s'adapter au dom. Jusqu'à la largeur et la hauteur, la taille de police finale obtenue est la taille de police requise

.

Ici, je l'ai développé en utilisant Angularjs, je publierai donc les instructions écrites pour référence

***.directive("doCalculateFontsize",['$timeout',function ($timeout) {
    /*
    *   通用的字体大小自适应,通过在改变字体大小的同时计算dom元素的宽高是否超界实现
    * */
    return function(scope, element, attr) {
        attr.$observe("doCalculateFontsize",function (interpolatedValue) {
            if(interpolatedValue!=undefined&&interpolatedValue!="") {
                var maxwidth = parseInt(attr.domMaxWidth);
                var maxheight = parseInt(attr.domMaxHeight);
                var th = parseInt(attr.domTotalHeight);
                var text = attr.doCalculateFontsize;
                var nowsize = 12;
                var maxsize = 200;
                angular.element(element).css("visibility", "hidden").html(text).css("font-size", nowsize + "px");

                for (; nowsize < maxsize; nowsize++) {
                    var nowwidth = angular.element(element)[0].offsetWidth;
                    var nowheight = angular.element(element)[0].offsetHeight;

                    if (nowwidth >= maxwidth || nowheight >= maxheight) {
                        break;
                    }
                    else {
                        angular.element(element).css("font-size", nowsize + "px").css("marginTop", (th - 0.5 * nowheight) + "px").css("visibility", "visible");
                    }
                }
            }
            else{
                angular.element(element).css("visibility", "visible").html("").css("font-size", "12px");
            }
        })
    };
}])

Ici, j'utilise Angularjs. Masquez l'élément DOM avant d'ajouter la taille de la police, puis définissez l'élément DOM sur être visible une fois que la taille de police requise a été obtenue. Lors des tests locaux, aucune anomalie telle que le scintillement de l'interface n'a été trouvée. Par exemple, lorsque l'interface doit traiter trop d'éléments ou doit actualiser les données régulièrement, vous devrez peut-être prendre en compte les performances. de la page

Il convient de noter que vous devez effectuer certains réglages pour le style de l'élément dom en CSS. Par exemple, vous devrez peut-être définir le contenu pour qu'il ne soit pas renvoyé à la ligne, le débordement de contenu, le dimensionnement de la boîte. , etc., en fonction de la situation réelle Définissez-le vous-même

Si vous devez définir plusieurs tailles de police adaptatives DOM, vous pouvez également utiliser cette idée pour gérer

Recommandations associées :

Explication détaillée des hyperliens HTML

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
Article précédent:Formatage du texte HTMLArticle suivant:Formatage du texte HTML