web-dev-qa-db-fra.com

Existe-t-il un sélecteur CSS pour les nœuds de texte?

Ce que je voudrais faire (pas dans IE évidemment) est:

p:not(.list):last-child + :text {
  margin-bottom: 10px;
}

Ce qui donnerait une marge à un nœud de texte. (Est-ce même possible?) Comment pourrais-je obtenir le nœud de texte avec CSS?

149
Rudie

Les marges ou tout autre style ne peuvent pas être appliqués aux nœuds de texte. Par conséquent, tout style de travail auquel vous devez appliquer le style doit être contenu dans un élément. Si vous souhaitez que le texte à l'intérieur de votre élément soit stylé différemment, enveloppez-le dans un span ou div, par exemple.

99
Jacob

Vous ne pouvez pas cibler des nœuds de texte avec CSS. Je suis d'accord; Je souhaite que vous puissiez ... mais vous ne pouvez pas :(

Si vous n'enroulez pas le noeud de texte dans un <span>comme le suggère @Jacob , vous pouvez plutôt donner l'élément environnant padding par opposition à margin:

HTML

<p id="theParagraph">The text node!</p>

CSS

p#theParagraph
{
    border: 1px solid red;
    padding-bottom: 10px;
}
44
Richard JP Le Guen