Je crée un simulateur mobile qui simule l’apparence et les fonctionnalités d’un iPhone (et d’autres appareils ultérieurement) dans un navigateur Web, en utilisant 100% de javascript, HTML5 et CSS, le simulateur étant entièrement fonctionnel avec uniquement du code côté client.
Tout en essayant d’accomplir cette tâche avec le moins de modifications nécessaires aux projets d’application originaux eux-mêmes pour être hébergés dans le simulateur, j’injecte les balises et
dans la tête de la page, puis charge le HTML dans un
Le problème est que lorsque je charge un nouveau fichier css, il (évidemment) remplace celui que j’utilise pour styliser la page et, par conséquent, certains éléments sont affectés (par exemple, l’arrière-plan change de couleur).
Ma question est la suivante: existe-t-il un moyen de limiter la “scope” d’un fichier .css
externe à appliquer uniquement aux objects de l’écran
de la page, je l’injecte dans un élément
dans l’écran
?
- Cibler une classe CSS dans une autre classe CSS
- Animation de rotation CSS continue en survol, animée de nouveau à 0deg sur le survol
- Styling le dernier td dans une table avec css
- Test d’unité CSS
- Obtenir la hauteur de l’élément inline-block pour remplir le parent
UPDATE La prise en charge de cette fonctionnalité a été supprimée. S’il vous plaît chercher d’autres options
Poste d’origine:
Vous voudrez peut-être regarder des styles de scope; voir http://css-sortingcks.com/saving-the-day-with-scoped-css/ .
L’idée de base est
Cependant, vous êtes à la pointe du progrès en termes de support de navigateur. Voir http://caniuse.com/style-scoped .
Une alternative serait d’utiliser un iframe.
Enveloppez simplement tout votre code css dans le sélecteur pour l’élément parent, dites que c’est un div avec l’id de foo
vous feriez comme suit:
div#foo{ //All your css }
Et le convertir en less
de css
avec un outil comme http://less2css.org/ , il appenda les bons sélecteurs. Notez que vous devez faire attention manuellement à des choses comme les requêtes @media, etc.
En écrivant ceci, l’équipe
est déconseillée par l'équipe Chrome. En conséquence, j'ai expérimenté certaines approches et publié https://github.com/thgreasi/jquery.scopeLinkTags . Remarque: vous ne devez utiliser cette approche que si vous ne pouvez pas contrôler le fichier CSS importé. Si vous pouvez utiliser SASS / LESS / nothing pour prétraiter votre CSS, vous devriez préférer cela.
Un moyen simple consiste à append une pré-classe avant tout sélecteur dans un fichier CSS.
Je trouve qu’un script grunt peut le faire:
- Déclarez le style CSS en dehors de l’élément “HEAD” d’une page “HTML”?
- SCSS prend-il en charge les commentaires en ligne?
- CSS «et» sélecteur – Puis-je sélectionner des éléments comportant plusieurs classes?
- CSS div alternant la couleur
- Largeur égale au contenu
- Ajout de la classe CSS à Html.BeginForm ()
- Comment activer le lien HTML en cliquant sur ?
- Puis-je append une couleur d’arrière-plan uniquement pour le remplissage?
- Bloc BEM, nommage et imbrication
- Table d’en-tête fixe avec barre de défilement horizontale et barre de défilement verticale sur