10
votes

Quel est le but du sélecteur 'div' et pourquoi tant de développeurs l'utilisent-ils dans leurs feuilles de style?

regarder à travers des feuilles de style des sites Web populaires et impopulaires, j'ai trouvé le sélecteur div inclus dans eux. Les quatre exemples de fond ont été extraits des feuilles de style des sites populaires pile débordement, github, youtube & twitter : xxx

i trouver que je puisse concevoir des feuilles de style CSS pleinement fonctionnant à l'aide du sélecteur div de sorte que la question est la suivante:

Quelle est la fonction div sélecteur ?

&
Pourquoi tant de développeurs l'utilisent-ils?

EDIT:

Pour être clair, lors de l'utilisation du DIV < / Code> Sélecteur, qu'est-ce que cela signifie quand div apparaît avant une adresse id ou classe ? par exemple: xxx

et qu'est-ce que cela signifie lorsque div apparaît après un identifiant ou classe ? par exemple: xxx

lorsque le sélecteur div apparaît après une pièce d'identité ou une classe qui doit avoir un autre sélecteur apparaît après ça? par exemple: xxx


5 commentaires

Lequel de ces quatre sites Web était le impopulaire un?


Eh bien, j'ai dit seulement que j'ai trouvé le sélecteur Div dans des sites populaires et impopulaires. Je n'ai pas spécifié si mes exemples ou non sont de la nature populaire ou impopulaire. En outre, c'est une sorte de sujet hors succursale. Néanmoins, désolé de vous confondre. Je vais le modifier.


@ J3M La chose déroutante sur la question est que le sélecteur div en CSS désigne les balises DIV en HTML. La question plus générale de la question à poser serait: pourquoi les sites spécifient-ils des éléments HTML dans les sélecteurs CSS, au lieu de simplement s'appuyer sur des classes et des identifiants?


@George à droite mais lorsque 'div' apparaît dans une feuille de style CSS, n'est-ce pas connu sous le nom de sélecteur CSS dans ce contexte?


@ j3m ouais, c'est un sélecteur d'élément, par opposition à un sélecteur de classe ou d'identification. Cela dépend de l'existence dudit élément de la source HTML auquel vous postulez que CSS. De même, la classe ou l'ID doit exister dans la source HTML afin que le CSS soit applicable à eux. La différence de base est que le développeur / concepteur détermine le nom et existence de classes / identifiants dans les sources. Toutefois, pour les éléments HTML, les noms sont déterminés par la norme et seule leur existence dans la source est déterminée par le développeur / concepteur.


5 Réponses :


11
votes
  1. Être plus explicite dans votre sélecteur facilite la mémorisation de la structure HTML. Mois en bas de la ligne, je peux lire le CSS et sur la base de mes règles explicites, je peux automatiquement cartographier la structure dans ma tête sans retourner au HTML.
  2. En spécifiant le nom du nœud avant la classe ou l'ID, la règle devient plus spécifique. Si vous souhaitez remplacer .foo {couleur: noir; } pour un div une classe de foo, juste faire div.foo {couleur: rouge; } . Les paragraphes qui ont une classe de foo seraient noirs, tandis que DIVS serait rouge.
  3. Il peut être utile si vous souhaitez servir différentes règles CSS basées sur la structure HTML. Dans les règles ci-dessous, toute portée à l'intérieur d'un div est rouge. Toute portée directe sous #foo est bleue.

    CSS: xxx

    html pour cela: xxx

    Démo en direct que vous pouvez jouer avec: http://jsfiddle.net/6dw2r/

    EDIT:

    1. div # foo correspond à un div avec un identifiant de foo.
    2. div # foo div signifie n'importe quel div des descendants de #foo.
    3. non. Ça ne le fait pas.

      Veuillez lire http: //www.w3. org / tr / css2 / sélecteur.html # motif-correspondant pour d'autres questions.


9 commentaires

Alors que ce que vous avez dit est valide, vous n'avez pas réellement répondu à sa question.


Il demande à propos de div utilisé dans les sélecteurs. Comment ma réponse n'est-elle pas pertinente?


@meder pour que le premier "bla" serait coloré "bleu" et le deuxième "bla" serait coloré "rouge". Correct?


@meder également, dans les 4 exemples, j'ai inclus le sélecteur 'div' apparaît avant les classes telles que «div.form-item-info». Pouvez-vous écrire votre exemple comme 'div # foo span'? Et pouvez-vous écrire mon exemple inclus comme '.form-item-info div'?


Oui, vous pouvez spécifier le nom du nœud avant l'ID ou la classe.


Nice une médiane - bonne explication. @Helixed - pas sûr de ce que vous allez sur :)


@meder merci beaucoup. Tu m'as éclairé. Et merci pour le lien Jsfiddle. Nice et pratique outil. Soulez-vous que les mises à jour se produisent en temps réel.


@Marko, je crois que @Helixed faisait référence à la première réponse de @ Meder qui n'était pas aussi complète pour répondre à ma question telle qu'elle est maintenant.


J'ai mal compris la question la première fois que je l'ai vue. Les modifications ont également aidé. Ma faute. Vote inversé.



1
votes

La balise définit une division ou un section dans un document HTML.

La balise est souvent utilisée pour grouper éléments de blocage pour les formater avec styles.

http://www.w3schools.com/tags/tag_div.asp

Ils sont simplement explicites sur leurs sélecteurs, ce qui a tendance à être une bonne chose, car vous êtes plus spécifique lorsque vous abordez les éléments à contenir. (Plus petites chances de conflits et de coiffage inattendu.)


0 commentaires

4
votes
div.form-item-info{...} // all div elements that have class~=form-item-info

.form-item-info{...}  // all elements that have class~=form-item-info

0 commentaires

2
votes

dans HTML et XHTML,

et sont des éléments de conteneur génériques.
est un élément de niveau de bloc. est un élément en ligne.

La plupart des autres éléments (

,

, , etc.) ont des significations sémantiques spécifiques. C'est une mauvaise pratique d'utiliser, disons, un élément

pour quelque chose qui n'est pas un paragraphe. Mais

est juste un conteneur.

Si vous avez besoin de quelque chose pour être purement décoratif, ou de grouper des éléments liés,

est un bon choix.

7 commentaires

Je pense que la question est la question de savoir pourquoi les gens déclarent div # en-tête vs juste #header. Pas ce qu'est un div est. Je suis vraiment émerveillé cela a reçu 5 upvotes: /


La balise est nouvelle dans HTML5. Il n'existe pas dans XHTML 1.0 / 1.1 ou XHTML4.01.


@Paul Schreiber Je faisais référence au sélecteur «Div» qui est souvent inclus dans une feuille de style CSS, pas la balise «div» incluse dans HTML.


Ooops. Mal interpréter. Mais: Div # L'en-tête a un score de spécificité de CSS plus élevé que Just #header. Et: vous pourriez avoir une en-tête de Div # et un en-tête UL # (ou de rien).


Techniquement, vous ne devriez pas, car les identifiants doivent être uniques. Et je suis désolé j'ai envie de vous intimider: /


@Paul schreiber, alors a la tête de p # en-tête {couleur: green} &

identique à celui d'avoir #header p {couleur: green} &

essentiellement? Ou une version est-elle plus spécifique que l'autre?


En l'absence de toute autre règle CSS, les deux exemples que vous avez donnés se comporteront de manière identique.



1
votes
#foo div span { rule }
#foo div p { rule }

1 commentaires

Excellent travail pour expliquer le sélecteur div et les sélecteurs de descendants. Merci