2010-11-12 6 views
1

J'ai une classe css spécifique "style" qui donne un effet de verre aux différentes divisions. Le site est au http://www.rohanjain.in/. J'ai différentes balises html5 qui utilisent l'effet de verre de la classe css définie. Y a-t-il un moyen de définir dans le fichier .css afin que mes balises d'en-tête, de pied de page et d'article utilisent automatiquement la classe "glass", c'est-à-dire qu'ils héritent de cette classe. J'essaye de faire pour diminuer la taille de css et de HTML. À l'heure actuelle, ces balises sont fournies attribut class = "stlyed" de html. Mais est-il possible de le faire uniquement en utilisant css.
je vraiment ne pas veulent faire quelque chose comme ceci:Une classe commune pour plusieurs balises html utilisant css

article, footer, header{ 
    ...css definations... 
} 

Je veux utiliser la détection du navigateur et de définir la classe verre dans un autre Css selon les fonctions prises en charge tout en gardant la taille minimale .


Mise à jour 1: C'est la source de http://www.rohanjain.in/media/css/style.src.css css. La taille de de style est élevée en raison des définitions d'effets multi-navigateurs.

Mise à jour 2: Il semble qu'il n'y ait aucun moyen simple pour obtenir l'héritage de classes, donc je suis enfin en utilisant class = « stlyed » dans les éléments HTML à ce achive.

+0

fwiw, je ne serais pas vraiment inquiet de la taille de votre CSS comme motivation pour le faire - CSS est une partie relativement légère de toute charge utile de toute façon et très cacheable. – annakata

+0

hmm ... J'essaie juste de voir les limites que je peux réduire la taille de ma page web, essayant ainsi d'implémenter la plupart des nouvelles fonctionnalités (html5, css3) et de réduire l'utilisation d'images, javascripts. – crodjer

Répondre

1

Pensez-y d'un point de vue CSS. Comment votre CSS a-t-il voulu savoir que vous avez des balises qui sont en quelque sorte spéciales si vous n'êtes pas prêt à en parler explicitement au CSS et que vous n'allez pas classer implicitement votre balisage?

La meilleure solution Je crois est de classer votre balisage (mais sans utiliser quelque chose d'aussi insignifiant que "verre") mais le CSS basé sur l'élément explicite est parfaitement acceptable.

0

Si je vous comprends bien, la façon dont vous montrer

article, footer, header{ 
    ...css definations... 
} 

est vraiment la seule et la plus correcte, façon de le faire. Je ne comprends pas pourquoi vous ne voulez pas l'utiliser, ou quel autre type de définition vous recherchez?

1

Il y a un outil appelé MOINS qui fera exactement cela:

Can a CSS class inherit one or more other classes?

+2

LESS se compile encore en CSS normal, mais l'OP a dit qu'il voulait réduire la taille de son CSS. – casablanca

+0

Le changement de taille est négligeable. La seule autre façon serait de définir les trois balises comme le dit le PO, ce qui augmenterait la taille du CSS de toute façon. –

1

Non, vous devez soit les définir ensemble:

article, footer, header, .glass { 
    ... 
} 

afin que ces étiquettes ont les mêmes styles comme la classe "glass", ou vous devez utiliser JavaScript pour ajouter dynamiquement la classe "glass" à ces éléments.

Questions connexes