7
votes

meilleure façon d'écrire css

Bonjour Création d'un site Web, je suis un peu confus sur la façon d'écrire CSS .. Je veux que je devrais utiliser différentes classes pour le même style de si je dois faire de style classe spécifique et les utiliser tous les endroits ... laissez-moi utiliser un exemple ...

Supposons que je veux donner une hauteur minimale, devrais-je utiliser Ceci: xxx

et utilisez html comme ceci: xxx

ou dois-je le faire comme ceci: CSS: xxx

html: xxx

Quel est le meilleur moyen d'optimiser la manière et laquelle dois-je utiliser, est-ce important.


4 commentaires

Je ne suis pas sûr de savoir pourquoi vos avotes de réception, c'est en fait une très bonne question.


Dupliquer - Stackoverflow.com/Questtions/5045448/...


Veuillez lire ma réponse ici pour une lecture approfondie sur la raison pour laquelle .red est une mauvaise façon de style - Stackoverflow.com / A / 16776592/1729885


Ceci est à la fois non constructif et en double. En outre, la question utilise des noms de classe très médiocres, et l'utilisation de noms de classe descriptifs (plutôt que de noms pour un style très spécifique) serait plus important que la question posée (qui est vague aussi - «pas une vraie question»).


6 Réponses :


0
votes
.text {in-height:225px; float:left;}
.red{background-color:red;}
.blue{background-color:blue;}
.grey{background-color:grey;}

<div class="text red">my text in red bg</div>
<div class="text blue">my text in blue bg</div>
<div class="text grey">my text in grey bg</div>

0 commentaires

7
votes

Je ne ferais ni ni. Je ne ferais pas le premier, car c'est ce que les classes sont pour si les éléments ont les mêmes styles.

Je ne ferais pas ce dernier parce que cela défait le but des styles si vous allez faire des classes personnalisées pour chaque article de style . Considérez les éléments suivants: P>

<div class="font-size color margin text padding float-left">some div</div>


0 commentaires

2
votes

Techniquement, cela n'a pas d'importance car les deux vont fonctionner de la même manière.

Cependant, l'objectif devrait être de rendre votre CSS clair, réutilisable et idéalement minimal, et vous devez cibler vos sélecteurs et vos règles pour le montrer.

Certaines règles telles que des arrière-plans et des couleurs ne s'appliqueront généralement qu'à un élément spécifique. Pour cette raison, vous devez l'appliquer à l'ID de l'élément que vous souhaitez cibler: xxx

N'oubliez pas: ID devrait être unique et s'appliquer uniquement à un seul élément de la page. Les classes sont utilisées lorsque vous visez à cibler plusieurs éléments.

Si vous appliquez des règles à un certain nombre d'éléments que vous souhaitez utiliser la classe. Il existe de nombreuses occasions où les règles sont appliquées similaires à votre deuxième exemple, telles que la classe Clearfix souvent trouvée appliquée à un grand nombre d'éléments. D'autres par exemple peuvent être un peu inutiles. Dans votre premier exemple, vous auriez été préférable de cibler le wrapper parent, puis d'avoir une règle comme celle-ci: xxx

à la fin de la journée, il est souvent préféré personnel, mais rappelez-vous juste que votre code devrait être aussi bien rangé que possible.

Une chose que je garde toujours à l'esprit lorsque vous écrivez le code est " si je passe ceci à un autre développeur, pourraient-ils comprendre ce qui est passer en un coup d'œil? "

Dans le cas d'un autre développeur ajoutant ou modifiant votre code Il est beaucoup plus facile d'éditer votre CSS qu'il ne serait pas de modifier votre HTML , qui serait particulièrement vrai s'ils utilisaient un CMS ou quelque chose qui répandit un code sur différents fichiers de modèle. Pour cette raison si vous commencez à ajouter rouge et gauche dans le code HTML, le développeur devrait écraser les règles actuelles si elles décident qu'ils ne veulent pas qu'un élément spécifique être rouge ou laissé aligné, qui peut rapidement devenir désordonné.

Pour tout utilisateur avancé lisant ceci, je vous recommanderais d'utiliser SCSS plutôt que de CSS car il peut en faire un peu plus facile, car elle permet de nidifier et de les variables Votre CSS - http://sass-lang.com/

espère que cela aide! !


3 commentaires

Je ne ferais probablement pas vraiment un identifiant de quelque chose appelé contact-me-block . Et si pour une raison quelconque, je veux afficher deux de ces blocs à un moment donné pour une raison quelconque? Fondamentalement, ma règle de base personnelle utilise une carte d'identité pour les éléments de structure (en-tête (s'il n'utilise pas HTML5), le pied de page (s'il n'utilise pas HTML5), la teneur principale, etc.) lorsque cela est possible. Mon 2c


Grand point. Bien que souvent unique pour moi, ce n'est pas un excellent exemple ... merci pour l'entrée!


Même si l'exemple de OP est assez court, la façon dont vous définissez vos classes CSS et les propriétés que vous leur ajoutez à des impacts techniquement sur le navigateur Repaintenez. Donc, dire "techniquement, cela n'a pas d'importance car les deux fonctionneront les mêmes" est un lecteur trompeur car il n'est pas vrai sur le "mot techniquement", si vous avez de lourdes domaines avec beaucoup de classes. Il y a beaucoup d'articles à ce sujet, par exemple, voir: addyosmani.com/blog/...



2
votes

Je nommerais des cours pour ce qu'ils représentent, pas pour ce qu'ils ressemblent. Donc, une classe rouge code> est une mauvaise idée. Lorsque vous décidez que tout le texte rouge doit être bleu, vous pourriez vous retrouver avec CSS comme ceci:

.red {
    color: blue;
}


0 commentaires

0
votes

Si tous les DIV doivent avoir le même style CSS, utilisez une classe et donnez-le à tous votre DIV sinon vous devez utiliser plusieurs classes pour chaque DIV:

<div class="divv">afads</div>
<div class="divv">fads</div>
<div class="divv">fads</div>r code here


0 commentaires

1
votes

Tout d'abord, ne marquez pas vos classes CSS en utilisant des noms suggérant une intention visuelle, comme "Minheightstyle". Une partie de l'idée derrière CSS consiste à séparer du contenu et du style, un avantage éprouvé que vous essayez d'invalider avec le (s) nom de classe que vous affichez. Donc, il s'agit de votre première règle de base - si vous souhaitez marquer un élément, vous ne l'étiquetez pas simplement pour le style, vous étiquetez qu'il prenait des indices de la manière dont l'élément est différent des autres par rapport à son contenu. Par exemple, avec vos trois div code> S, si tous sont identiques, il devrait être possible de les sélectionner comme enfants de leur parent, par exemple: xxx pré>

si un d'entre eux est un élément de menu sélectionné (par exemple), vous pouvez lui donner la classe "sélectionnée" et le style en conséquence: p> xxx pré>

en général, essayez de raisonner la structure lorsque concevoir vos sélecteurs, par opposition à la réflexion sur le style. C'est peut-être un conseil que vous allez jeter, recourir à des mesures plus simples, mais je vous assure que c'est le meilleur investissement que vous puissiez faire si vous êtes sérieux au sujet de la conception Web aujourd'hui. La séparation du contenu et du style est absolument essentielle et non seulement avec le HTML et CSS actuels, il est pertinent dans d'autres zones. P>

et seconde, vous devez vous rappeler que les règles que vous écrivez sont appliquées par le navigateur slave - c'est-à-dire les éléments qui finissent par remplacer par vous avec votre feuille de style, doivent par spécification de CSS ont leur style recalculé de tout ce qu'il était. C'est-à-dire que si vous (par exemple) décidez de remplacer le style de tous les éléments em> avec le sélecteur suivant: p> xxx pré>

.. Parce que vous décidez que vous décidez que vous décidez que vous décidez que vous décidez sont fatigués des petites incohérences entre les navigateurs appliquant leurs propres marges et leurs propres marges ici et là-bas, et vous voulez un contrôle en acier des marges et des pavés sur vos pages, vous devez savoir que le navigateur liera la règle ci-dessus (soit informatique. Jusqu'à présent et là, ou de le différer pour plus tard) de chaque élément em> que vous avez. Connaissant cela, vous devriez raisonner si c'est une meilleure idée d'appliquer la règle ci-dessus à quelques éléments. Même raisonnement s'applique généralement aux images d'arrière-plan - est-il préférable d'appliquer la couleur d'arrière-plan aux enfants d'un élément ou simplement à l'élément lui-même (le résultat est souvent indiscernable visuellement)? P>

#foo > div
{
    min-height: 300px;
    float: left;
}

#foo > div:nth-child(1)
{
    color: red;
}

#foo > div:nth-child(2)
{
    color: green;
}

#foo > div:nth-child(3)
{
    color: blue;
}


4 commentaires

Merci Amn, cela m'a beaucoup aidé. Une autre chose que je veux demander ici pourriez-vous me dire comment les propriétés CSS sont rendues par des navigateurs, je veux dire, c'est comment il calcule le style particulier comme vous avez utilisé le sélecteur parent pour sélectionner les enfants Div's, augmente-t-il la vitesse de rendu de la page .


Ils sont liés aux éléments. Enchaîné. Par conséquent, en cascade dans des feuilles de style en cascade (CSS). La page suivante vous donnera un bon départ pour comprendre le concept: w3.org/ Tr / css21 / cascade.html # cascade Mind You, je n'ai pas dit que le navigateur doit Mettre en œuvre la cascade, ils sont libres d'optimiser leur code, mais la pratique observée est que la mise en œuvre ressemble en quelque sorte à une forme de cascade, c'est-à-dire que les choses ne semblent pas très différentes dans la pratique que la spécification théorique / abstraite. Reconnaissez les implications pratiques importantes, mais gardez la théorie à l'esprit pour plus tard.


Je réalise que vos exemples sont destinés à définir les gens de penser, et ils ne sont pas mauvais, mais le dernier exemple n'a pas beaucoup de sens dans le contexte. L'utilisateur souhaite effectuer un Div Red spécifique, en fonction des données de sa part, pas sur l'endroit où elle est dans son parent. Donc, votre exemple tombe séparé lorsque l'utilisateur insère une nouvelle DIV au-dessus du rouge.


@Mrlister c'était un exemple sur la manière d'approcher efficacement CSS. Parfois, Nth-enfant est ce que l'on a besoin. L'OP n'a pas dit qu'il veut faire un Div Red, ils ont 3 divs et veulent appliquer des couleurs rouges, bleues et grises. Cela fait partie de ce que je voulais transmettre - minimiser la taille du code et ne pas trop concevoir. Je ne vois pas l'op de vouloir un arc-en-ciel ;-)