Créé du CSS ?

Résolu/Fermé
sayku Messages postés 38 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 14 août 2013 - 17 avril 2011 à 17:26
sayku Messages postés 38 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 14 août 2013 - 29 août 2011 à 12:19
Bonjour, (ou bonsoir)

Je voulais savoir, comment on peut créé du CSS ?

(je parle pas de mettre des propriété CSS dans une feuille de style ... ça je sais faire, merci), je veut dire: comment soit même définir des class, sous class ... tout ça ...

(non pck je trouve "l'histoire du CSS", mais pas les technique de conception ^^")

je voulais tenter de fair mes propres ... truc :P a utilisé dans du CSS (bah qu'est-ce que je risque hein? :P)

mais je sais pas comment c'est fait exactement.
(m'étonnerais que ça soit tout taper direct en binaire :P sont pas fous les gens)

Donc si quelqu'un pouvait me renseigner ^.^

voila voila
mercii :)
A voir également:

4 réponses

Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
17 avril 2011 à 18:21
Salut,

Pour créer cela il te faut un interpreteur. Deux solutions :

Tu écris ton propre code quelque part (un div masqué par exemple), ensuite en Javascript tu le lis, et tu l'analyses. Ce sera dur parce qu'il faudra détecter chaque caractère, à quoi ca correspond etc; Mais c'est faisable.

L'autre solution est de carrément modifier le système de lecture du HTML à la base de ton navigateur (désolé mais j'ai oublié le nom), pour ca tu peux te créer ton propre navigateur en un autre language (C++, Java, ..), mais c'est très dur (voire impossible) et ce ne sera pas portable, parce qu'il faudra distribuer ton nouveau navigateur à tout le monde.

Bonne chance ;-)
1
sayku Messages postés 38 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 14 août 2013 2
18 avril 2011 à 17:47
moef :S

pas vraimment l'objectif tout ça :'(

l'idée c'était juste fair une balise/atribut, ou qu'importe, pour pouvoir combiné des margin (en pixel) des width en %, et des border sans avoir l'habituel problème de dépassement ...
1
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
20 avril 2011 à 12:43
Au final, tu comptes faire un système ressemblant au CSS mais qui accepte les calculs tel que "width: 90% - 500px" (par exemple) ?
En Javascript on peut récupérer les informations du CSS et les modifier. Dès que je retrouve ces fonctions je te les envoi (mots-clés: Javascript css). Tu pourras appeler une fonction css(element, attribut, valeur), qui modifie les propriétés d'un élément. C'est bien ce que tu veux ?
Si je me trompe, explique-moi alors ;-)
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
20 avril 2011 à 13:34
Salut !

Je plussoie pour le commentaire de Bilow.

Le Javascript te permet de faire ces calculs. Exemple : pour la largeur de tes divisions, tu peux comparer le document.<division>.width avec le window.innerWidth pour donner à ta div une largeur en fonction de la largeur de la fenêtre, en prenant en compte s'il y a une barre de défilement à droite ou d'autres variables. Puis tu envoies le résultat de tout ça dans le width CSS de ta division.

Note : c'est très malpropre, et l'ennui c'est que quelques utilisateurs n'ont pas Javascript d'activé, donc ce système a aussi ses faiblesses.

Mais je te dirais : tu n'as même pas besoin de ça. Si ton CSS te pose problème, c'est probablement que tu le construis mal. À la limite, pour faire face aux différences de navigateurs, tu insères un peu de Smarty pointant vers des feuilles de styles adaptées et le tour est joué.

Je n'ai pas encore rencontré de situation où ce genre de problème était tellement insurmontable que j'ai eu recours à du JS. Mon CSS a toujours fini par faire ce que je voulais. Ceci dit, peut-être que tu peux aussi expliquer pourquoi tu as besoin de ça ? Peut-être qu'il existe une alternative ?
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 avril 2011 à 17:41
Bonjour,
Pourquoi s'évertuer à recréer la roue ??
A+
0
sayku Messages postés 38 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 14 août 2013 2
29 août 2011 à 11:15
merci a tous pour vos réponse (que je n'ai lu que très tard x) )
et ... pour mon souci, vive le javascript quoi ^^"
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
29 août 2011 à 11:53
Eh oui c'est tard :p
Oui, en Javascript tu peux récupérer des attributs. Tu auras boin des Regex, et aussi de pouvoir ajouter des propriétés CSS en général ( je pense aux classes). Ces fonctions avaient les mots-clés "CSS, add, rule, addcss" et quelque chose dans le genre... Mais j'ai oublié les noms précis. Bonne recherche ;-)
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
29 août 2011 à 12:08
Edit: Je viens de retrouver mon code de 400 lignes qui ne m'a servi à rien à part apprendre pas mal de fonctions, voici le passage pour le CSS :
var temp_style = document.createElement('style');
temp_style.type = 'text/css';
var temp_head = document.getElementsByTagName('head').item(0);
temp_head.appendChild(temp_style);

map.construct.css = function(objet, attribut, valeur){

if(document.styleSheets[0].insertRule){

var cssType;
if(document.styleSheets[0]['rules']){
cssType = 'rules';
}
else if(document.styleSheets[0]['cssRules']){
cssType = 'cssRules';
}

document.styleSheets[0].insertRule(objet + ' { '+ attribut +': '+ valeur +'; }', document.styleSheets[0]cssType].length);

}
else if(document.styleSheets[0].addRule){
document.styleSheets[0].addRule(objet, attribut + ': '+ valeur +';');
}

}

Quelques explication :
Pour ajouter en Javascript une propriété CSS de cette manière, il faut absolument qu'il y ait une feuille de style déjà déclarée auparavant, soit par la balise <style>, soit par <link> ; COmme ce n'était pas mon cas, j'ai dû ajouter automatiquement une feuille de style, en Javascript. C'est ce à quoi servent les quatre premières lignes. Tu peux donc les enlever s'il y a une feuille de style déjà déclarée.

map.construct.css était le nom de ma fonction, à toi de le modifier...

Il te restera à appeler cette fonction de cette manière :
map.construct.css(".zone", "background", "white");
map.construct.css(".zone", "opacity", "0");
map.construct.css(".zone", "filter", "alpha(opacity=0)");

Complément d'info pouvant te servir :
Tu peux ajouter des fichiers JS de la même manière que je l'ai fait avec les feuilles de style.
function addJS(src){
var temp_script = document.createElement('script');
temp_script.type = 'text/javascript';
temp_script.src = src;
var temp_head = document.getElementsByTagName('head').item(0);
temp_head.appendChild(temp_script);
}

J'avais pas mal de lignes que j'allais jeter, content que ça ait pu servir à quelqu'un. Bonne chance !
0
sayku Messages postés 38 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 14 août 2013 2
29 août 2011 à 12:19
he ben ... merci, je crois que j'en aurais besoin :S
x)
0