CSS3 Zone d'ombre de la taille – pour-cent des parts?
Je suis en train de travailler sur un projet qui nécessite l'utilisation de CSS3 box-shadow propriété.
C'est très bien, mais j'ai trouvé que la propagation de la taille de l'ombre ne peut pas être fixé à un pourcentage de l'objet parent.
Je comprends parfaitement que box-shadow n'est pas additif, donc il ne prend pas la taille d'un parent à titre de référence.
Mais étant donné le fait que j'ai besoin pour disposer d'un site responsive avec des objets de mise à l'échelle de façon fluide (pas seulement sur des points d'arrêt), mais cela pose également un problème, je peux mettre de l'ombre à la propagation de la propriété uniquement en unités absolues (em ou px).
Est qu'il ya une solution pour cela? J'ai pensé à utiliser un récipient intérieur (pour le contenu) dans le conteneur (pour "l'ombre" – c'est sans flou), mais cela crée un autre problème – centrage vertical du récipient intérieur.
Toute solution? Pas de jQuery s'il vous plaît, juste pur CSS.
- Quelle est la frontière au lieu d'une ombre?
- Je voudrais essayer de travailler avec
pseudo-elements
- em est relative à la taille de police. Une astuce consiste à faire de votre police d'échelle, aussi.
Vous devez vous connecter pour publier un commentaire.
Vrai. Mais vous pouvez définir
font-size
sur l'objet parent, puis de définir la taille de l'objet dansem
s, et utiliser le mêmeem
s pour définir labox-shadow
taille.Ou, si votre objet parent qui se passe à la fenêtre, vous pouvez utiliser fenêtre d'affichage unités:
volkswagen
etvh
.Si vous êtes après un encart
box-shadow
vous pouvez utiliser un radial-gradient de fond pour imiter le comportement. Ainsi, au lieu de -Vous utiliseriez -
Support: FF16+, IE10+, Safari 5.1+
Je ne trouve pas de réponse définitive sur lorsque google Chrome a commencé à soutenir le bien, mais ma version actuelle (39.0.2171.65) certainement le prend en charge.
ColorZilla est un joli outil utile pour générer des radiale (entre autres) des gradients le long de avec la nécessaire préfixes si vous décidez d'aller dans cette voie.
Avez-vous essayé d'utiliser le
rem
unité (racine em unité)? Je crois que vous pouvez l'utiliser pour rendre compte de l'échelle de manière fluide.La rem de l'unité est toujours par rapport à la racine de l'élément html, de sorte qu'il sera mis à l'échelle en conséquence et vous n'avez pas à vous soucier de contenants intérieurs ou quelque chose comme ça. Il a également assez large prise en charge du navigateur à ce point.
Je l'utilise sur mes projets pour les rendre plus réactifs, mais toujours suivre un paramètre déjà défini par px ou em, de sorte qu'il ne parvient pas normalement juste au cas où. Par exemple:
Voici un excellent article expliquant tout ce que vous devez savoir à propos de cet appareil: http://snook.ca/archives/html_and_css/font-size-with-rem
Voulez-vous que le box-shadow pour s'adapter à la largeur du conteneur ou de la hauteur du conteneur? Vous ne pouvez pas spécifier la hauteur et la largeur de votre ombre, seulement une diffusion. Donc, si votre conteneur réduit de 10% dans la largeur, mais ne se réduit pas à la hauteur, alors votre ombre sera réduit de 10% (si possible), par exemple, votre ombre est à la hauteur de l'échelle, même si elle ne devrait probablement pas.
Si vous voulez le box-shadow à fait à l'échelle correctement en ce qui concerne la hauteur et la largeur, vous devez créer plusieurs zones d'ombre - un pour la hauteur, l'une pour la largeur.
Toutefois, vous ne serez jamais en mesure de l'échelle réelle de l'ombre, seul le conteneur de l'ombre. Si vous créez un conteneur à l'intérieur de votre conteneur principal et puis de lui donner des marges négatives et fixez le box-shadow. Cependant, vous remarquerez très vite que votre ombre pousse réellement à la place de la réduction lorsque vous mettez à l'échelle du conteneur vers le bas.
Semble un peu exagéré pour essayer quelque chose qui n'est pas évolutive, sans l'aide de requêtes de média ou jQuery.
Toutefois, si vous êtes à la recherche pour les évolutive des frontières, c'est à dire box-shadow sans flou :P, alors ne cherchez pas plus loin:
http://jsfiddle.net/925r2/3/
box-shadow
avec des unités de pourcentagebox-shadow
. À peu près toute réponse sera un hack qui utilise certains autres contenants pour obtenir l'effet. Donc, soit la question devrait être affiché sur le W3C et les fournisseurs de navigateur ou si l'affiche est à la recherche d'une solution c'est une solution qui est une ombre, le pourcentage de base sans effet de flou.