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
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
A voir également:
- Créé du CSS ?
- Cree un compte google - Guide
- Cree un compte gmail - Guide
- Comment cree un groupe sur whatsapp - Guide
- Cree un compte instagram - Guide
- Cree outlook - Guide
4 réponses
Bilow
Messages postés
1014
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
17 avril 2011 à 18:21
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 ;-)
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 ;-)
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
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 ...
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 ...
Bilow
Messages postés
1014
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
20 avril 2011 à 12:43
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 ;-)
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 ;-)
coeus
Messages postés
3021
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
119
20 avril 2011 à 13:34
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 ?
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 ?
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
17 avril 2011 à 17:41
17 avril 2011 à 17:41
Bonjour,
Pourquoi s'évertuer à recréer la roue ??
A+
Pourquoi s'évertuer à recréer la roue ??
A+
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
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 ^^"
et ... pour mon souci, vive le javascript quoi ^^"
Bilow
Messages postés
1014
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
29 août 2011 à 11:53
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 ;-)
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 ;-)
Bilow
Messages postés
1014
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
29 août 2011 à 12:08
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 :
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 :
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.
J'avais pas mal de lignes que j'allais jeter, content que ça ait pu servir à quelqu'un. Bonne chance !
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 !
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
29 août 2011 à 12:19
he ben ... merci, je crois que j'en aurais besoin :S
x)
x)