2011-11-11 9 views
0

Je me demandais si un type de "transcodeur" existe, qui ajoute automatiquement des propriétés spécifiques au vendeur à une feuille de style? Par exemple, si je crée une feuille de style comme ceci:CSS Transcoder: Render Vendor Propriétés spécifiques

div.rounded { 
    border-radius: 5px; 
    opacity: 0.8; 
} 

je peux exécuter le fichier à travers le transcodeur, qui sort ceci:

div.rounded { 
    border-radius: 5px; 
    -mox-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    opacity: 0.8; 
    filter:Alpha(Opacity=80); 
} 

J'ai trouvé un Javascript solution, mais je préfère " précompiler "les feuilles de style au lieu de dépendre de JS.

+0

Vous pouvez simplement créer un lien dans une autre feuille de style (générique). Et puis, en fonction de l'ordre dans lequel vous les placez sur la page, vous déterminerez lequel remplacera l'autre. –

Répondre

2

Il existe des outils qui existent pour ce genre de chose, un très populaire est le Compass CSS Framework, en ligne au http://compass-style.com. C'est à CSS que jQuery est à JavaScript - remplir et normaliser tous les détails.

avec boussole (et SASS), vous pouvez faire ce que vous demandez assez facilement:

div.rounded { 
    @include border-radius; /* by default the radius is 5px */ 
} 

La sortie sera alors quelque chose le long des lignes de

div.rounded { 
    -webkit-border-radius: 5px 5px; 
    -moz-border-radius: 5px/5px; 
    -o-border-radius: 5px/5px; 
    -ms-border-radius: 5px/5px; 
    -khtml-border-radius: 5px/5px; 
    border-radius: 5px/5px; 
} 

Si un cadre semble trop vous pouvez considérer une solution plus simple SASS comme un custom mixin with arguments:

@mixin my-border-radius($radius) { 
    -webkit-border-radius: $radius; 
    -moz-border-radius: $radius; 
    -o-border-radius: $radius; 
    -ms-border-radius: $radius; 
    -khtml-border-radius: $radius; 
    border-radius: $radius; 
} 

div.rounded { 
    @include my-border-radius(5px); 
} 
+0

Salut, j'ai regardé Compass dans le passé, et c'est plutôt joli, mais ça fait * loin * plus que ce que je veux. Je suppose que je pourrais l'utiliser uniquement pour les fonctionnalités dont j'ai besoin, mais j'espérais trouver quelque chose de plus léger. – mellowsoon

+0

@mellowsoon Compass vous permet d'utiliser uniquement des parties de l'infrastructure à la fois. Par exemple, pour n'utiliser que la fonction de rayon de bordure, '@import" compass/css3/border-radius "'. Bien sûr, il y a de bonnes chances que vous vouliez d'autres fonctionnalités, comme 'box-shadow'. Étant donné que cela est pré-compilé, les ressources ne sont pas non plus à craindre. Bien sûr, vous pouvez également utiliser un mixage SASS nu si c'est plus attrayant. – Sampson