Pourquoi CSS ne prend pas en charge le remplissage négatif?

J’ai vu à de nombreuses resockets que la perspective d’un remplissage négatif pourrait aider à développer le CSS de certains éléments de la page. Cependant, il n’y a pas de disposition pour un remplissage négatif dans le CSS W3C. Quelle est la raison derrière cela? Y a-t-il une obstruction à la propriété qui empêche son utilisation en tant que telle? Merci pour vos réponses.

METTRE À JOUR

Comme je le vois, par exemple, si vous utilisez une police ayant quelque chose, disons, un espacement vertical de 20px et que vous souhaitez appliquer une bordure en pointillés au bas de la police, indiquez quand un lien hypertexte apparaît. Dans de tels cas, vous trouverez le style trop minable, car la bordure en pointillés apparaîtra 20px sous le mot spécifié. Si vous utilisez une marge négative, cela ne fonctionnera pas, car la marge modifie la zone en dehors des frontières. Le remplissage négatif peut aider dans de telles situations.

J’ai récemment répondu à une question différente en expliquant pourquoi le modèle de boîte est comme ça.

Il existe des raisons spécifiques pour chaque partie du modèle de boîte. Le rembourrage est destiné à étendre l’arrière-plan au-delà de son contenu. Si vous devez réduire l’arrière-plan du conteneur, vous devez définir la taille correcte du conteneur parent et atsortingbuer à l’élément enfant des marges négatives. Dans ce cas, le contenu n’est pas rempli , il déborde.

Le remplissage par définition est un entier positif (y compris 0).

Le remplissage négatif entraînerait la réduction de la bordure dans le contenu (voir la page du modèle de boîte sur w3) – cela réduirait la taille de la zone de contenu par rapport au contenu, ce qui n’a aucun sens.

Cela pourrait aider, en passant:

La propriété CSS dimensionnant les boîtes est utilisée pour modifier le modèle de boîte CSS par défaut utilisé pour calculer les largeurs et les hauteurs des éléments.

http://www.w3.org/TR/css3-ui/#box-sizing
https://developer.mozilla.org/En/CSS/Box-sizing

Je voudrais décrire un très bon exemple de pourquoi le negative padding serait utile et génial.

Comme nous le soaps tous les développeurs CSS, l’alignement vertical d’un div dynamicment dimensionné dans un autre est un problème et, pour la plupart, considéré comme impossible uniquement avec CSS. L’incorporation de negative padding pourrait changer cela.

Veuillez lire le code HTML suivant:

 
This DIV's height will change based the width of the screen.

Avec le CSS suivant, nous pourrions centrer verticalement le contenu de la div interne dans la div externe:

 .vertical-align { position: absolute; top:50%; padding-top:-50%; overflow: visible; } 

Permettez-moi d’expliquer …

Le positionnement absolu du sumt de la div interne à 50% place le bord supérieur de la div interne au centre de la div externe. Assez simple. Cela est dû au fait que le positionnement basé sur le pourcentage est relatif aux dimensions internes de l’élément parent .

Le remplissage basé sur le pourcentage , quant à lui, est basé sur les dimensions internes de l’élément ciblé . Donc, en appliquant la propriété de padding-top: -50%; nous avons déplacé le contenu de la div interne vers le haut d’une distance de 50% de la hauteur du contenu de la div interne, centrant ainsi le contenu de la div interne dans la div externe tout en laissant dynamic la hauteur de la div interne!

Si vous me demandez OP, ce serait le meilleur cas d’utilisation, et je pense qu’il devrait être implémenté pour que je puisse faire ce piratage. lol. Ou bien, ils doivent simplement corriger la fonctionnalité d’ vertical-align et nous donner une version d’ vertical-align qui fonctionne sur tous les éléments.

Vous avez demandé POURQUOI, pas comment le tromper:

Généralement à cause de la paresse des programmeurs de l’implémentation initiale, parce qu’ils ont déjà mis beaucoup plus d’efforts dans d’autres fonctionnalités, offrant plus d’effets secondaires bizarres comme des flottants, car ils étaient plus demandés par les concepteurs à ce jour et pourtant ils n’ont pas pris le temps pour permettre cela, nous pouvons utiliser les quatre propriétés pour pousser / tirer un élément contre ses voisins (maintenant nous n’avons plus que quatre pour pousser et seulement deux pour tirer).

Lorsque le HTML a été conçu, les magazines adoraient le texte qui renfermait des images à l’époque, maintenant détestées parce qu’aujourd’hui nous avons des tendances en matière de toucher et que nous aimons les choses squary avec beaucoup d’espace et rien à lire. C’est pourquoi ils ont mis plus de pression sur les flotteurs que sur le centrage, ou ils auraient pu concevoir quelque chose comme margin-top: fill; ou margin: average 0; pour simplement aligner le contenu vers le bas ou répartir son espace autour.

Dans ce cas, je pense que cela n’a pas été implémenté pour la même raison qui fait que CSS manque d’un :parent pseudo-sélecteur :parent : pour empêcher les évaluations en boucle.

Sans être un ingénieur, je peux voir que CSS est conçu pour peindre des éléments une fois, se souvenir de certaines propriétés pour les futurs éléments à peindre, mais ne jamais revenir aux éléments déjà peints.

C’est pourquoi (j’imagine) le remplissage est calculé sur la largeur, car c’est la valeur disponible au moment de commencer à la peindre.

Si vous aviez une valeur négative pour le remplissage, cela affecterait les limites externes, ce qui a déjà été défini lorsque la marge a déjà été définie. Je sais, rien n’a encore été peint, mais quand vous lisez comment le processus de peinture a été créé par des génies avec la technologie des années 90, j’ai l’impression de poser des questions stupides et de dire “merci” hehe.

L’une des exigences des pages Web est qu’elles sont rapidement disponibles, contrairement à une application qui peut prendre son temps et consumr les ressources informatiques pour que tout soit correct avant de l’afficher. Les pages Web utilisent peu de ressources ( possible) et faire défiler dans une brise.

Si vous voyez des applications avec refusion et positionnement complexes, comme InDesign, vous ne pouvez pas faire défiler cette application rapidement! Les processeurs et les cartes graphiques demandent beaucoup d’efforts pour passer aux pages suivantes!

Donc, peindre et calculer en avant et oublier un élément une fois dessiné, pour l’instant, il semble être un MUST.

Quel serait le but du rembourrage négatif? Le remplissage est utilisé pour réduire le contenu de sa boîte en laissant de la place entre la bordure et le contenu. À moins que le but ne soit pas d’extraire le contenu de sa boîte au-delà de ses limites, ce qui ne me semble pas utile. Peut-être que quelqu’un peut avoir une opinion différente.

L’ajustement d’un Iframe à l’intérieur des conteneurs ne correspondra pas à la taille du conteneur. Il ajoute environ 20px de rembourrage. Actuellement, il n’y a pas de moyen facile de résoudre ce problème. Vous avez besoin de javascript ( http://css-sortingcks.com/snippets/jquery/fit-iframe-to-content/ )

Des marges négatives seraient une solution facile.