J'ai du mal à comprendre le problème de mise à l'échelle des polices.
J'ai actuellement un site Web avec 100% de corps de texte font-size
. 100% mais quoi ? Cela semble être calculé à 16 pixels.
J'avais l'impression que 100 % faisait en quelque sorte référence à la taille de la fenêtre du navigateur, mais apparemment pas, puisqu'elle est toujours de 16 pixels, que la fenêtre soit redimensionnée à la largeur d'un mobile ou à un ordinateur de bureau à écran large.
Comment faire en sorte que le texte soit à l'échelle d'un site Web par rapport à son conteneur ? J'ai essayé d'utiliser em
mais cela ne s'adapte pas non plus.
Mon raisonnement est que des éléments comme mon menu sont écrasés lorsque vous le redimensionnez, je dois donc réduire le px
de .menuItem
.menuItem
的 px
font-size
以及其他与容器宽度相关的元素。 (例如,在大桌面上的菜单中,22px
效果很好。向下移动到平板电脑宽度,16px
et d'autres avec des éléments liés à la largeur du conteneur . (Par exemple, dans un menu sur un grand bureau, 22px
fonctionne bien. En descendant vers la largeur de la tablette, 16px
est plus approprié.)
Je sais que je pourrais ajouter des points d'arrêt, mais je veux vraiment que le texte soit mis à l'échelle joliment comme si j'avais des points d'arrêt supplémentaires, sinon je me retrouverais avec des centaines de points d'arrêt tous les 100 pixels que je contrôle la largeur du texte.
Cette question a reçu une réponse de Alex à 2507rkt3.
Le fait quene veut pas dire
vw
不能在某种程度上用于确定该容器的大小。现在要看到任何变化,我们必须假设容器在某种程度上是尺寸灵活的。无论是通过直接百分比宽度
还是通过100%减去边距。如果容器总是设置为,比方说,200px 宽,那么这一点就变得“没有意义”——然后只需设置适合该宽度的font-size
. p>Exemple 1
Cependant, pour les conteneurs avec des largeurs flexibles, il est important de réaliser que le conteneur se redimensionne toujours en fonction de la fenêtre d'affichage dans une certaine mesure. Par conséquent, le paramètre doit être ajusté en fonction de la différence de taille en pourcentage par rapport à la fenêtre d'affichage, ce qui signifie prendre en compte la taille du wrapper parent.
qui vous ressemble. Comme vous pouvez le voir dans les commentaires ci-dessus dans le contenu CSS, vous pouvez « penser » mathématiquement à la taille entière de la fenêtre d'affichage, mais ce n'est pas nécessaire. Le texte se « pliera » avec le conteneur car celui-ci se pliera à mesure que la fenêtre d'affichage est redimensionnée.vw
Regardez cet exemple : Supposons ici quediv
soit un enfant debody
, qui a une largeur50%
de100%
, dans ce cas Fondamentalement, c'est la taille de la fenêtre. En gros, vous souhaitez mettre en place unVoici des exemples de deux conteneurs de tailles différentes
Exemple 2div
是body
的子级,它是100%
的50%
宽度,在这种基本情况下是视口大小。基本上,您想要设置一个对您来说看起来不错的vw
.Vous pouvez contribuer à garantir la taille de la fenêtre d'affichage en forçant les calculs basés sur cela.
Considérons cet exemple : Les dimensions sont toujours basées sur la fenêtre d'affichage, mais sont essentiellement définies en fonction des dimensions du conteneur elles-mêmes.
Si la taille du conteneur change dynamiquement...
Si la taille de l'élément conteneur finit par changer sa relation de pourcentage de manière dynamique via les points d'arrêt @media ou JavaScript, alors quel que soit l'« objectif » sous-jacent, il devra être recalculé pour conserver la même « relation » utilisée pour redimensionner le texte
.Prenons l'exemple n°1 ci-dessus. Si cette option est adoptée, la "largeur" du conteneur est de la même taille lorsqu'elle est réduite de moitié par rapport à la taille de la fenêtre d'affichage, mais réduit désormais son propre calcul de pourcentage en raison du changement.
@media
或 JavaScript 将div
宽度切换为25%
宽度,则同时font-size
需要在媒体查询中或通过 JavaScript 进行调整,以适应新的计算结果5vw * .25 = 1.25
。这将使文本大小与原始50%
DéfiUtilisez CSS
calc()
函数 在使用中,动态调整会变得困难,因为该函数目前无法用于font-size
目的。因此,如果calc()
上的宽度发生变化,则无法进行纯 CSS 调整。当然,对边距宽度的微小调整可能不足以保证对font-size
pour apporter des modifications, cela n'a donc peut-être pas d'importance.Container Query est probablement la meilleure option actuellement, en fonction de votre cas d'utilisation, et est prise en charge par tous les principaux navigateurs. Veuillez vérifier les niveaux de support ici : https://caniuse.com/mdn-css_properties_container
Maintenant, c'est facile à contrôler