Ce que je veux, c'est que l'arrière-plan vert soit juste derrière le texte, pas à 100% de la largeur de la page. Voici mon code actuel:
h1 {
text-align: center;
background-color: green;
}
<h1>The Last Will and Testament of Eric Jones</h1>
Réponses:
Placez le texte dans un élément en ligne , tel qu'un
<span>
.Et puis appliquez la couleur d'arrière-plan sur l'élément en ligne.
Un élément en ligne est aussi grand que son contenu, donc cela devrait le faire pour vous.
la source
h1 { display:inline; }
Option 1
display: table;
violon
http://jsfiddle.net/J7VBV/293/
plus
display: table
indique à l'élément de se comporter comme un tableau HTML normal.En savoir plus sur w3schools , CSS Tricks et ici
Option 2
display: inline-flex;
text-align: center;
du parentOption 3
display: flex;
à propos
Probablement le guide le plus populaire de Flexbox et celui que je référence constamment est à CSS Tricks
Option 4
display: block;
Option 5
::before
violon
http://jsfiddle.net/J7VBV/457/
à propos
En savoir plus sur les pseudo éléments css :: avant et :: après dans CSS Tricks et pseudo éléments en général sur w3schools
Option 6
display: inline-block;
centrage avec
position: absolute
ettranslateX
nécessite un
position: relative
parentà propos
Plus d'informations sur le centrage
transform: translate();
(et le centrage en général) dans cet article sur les astuces CSSOption 7
text-shadow:
etbox-shadow:
violon
https://jsfiddle.net/Hastig/t8L9Ly8o/
Plus d'options
Il existe quelques autres façons de procéder en combinant les différentes options d'affichage et méthodes de centrage ci-dessus.
la source
display: table
Je n'avais aucune idée que le pourrait être si puissant, mais j'apprécie que vous ayez fourni des alternatives fonctionnelles.Un peu tard au jeu mais j'ai pensé ajouter mes 2 centimes ...
Pour éviter d'ajouter le balisage supplémentaire d'une travée intérieure, vous pouvez changer la
<h1>
propriété d'affichage deblock
àinline
(vous devez vous assurer que les éléments après les<h1>
éléments sont des blocs.HTML
CSS
Résultat
JSFIDDLE http://jsfiddle.net/J7VBV/
la source
Une astuce très simple pour ce faire est d'ajouter une
<span>
balise et d'ajouter une couleur d'arrière-plan à cela. Il ressemblera exactement à ce que vous voulez.Et CSS
POURQUOI?
<span>
balise dans une balise d'élément en ligne, de sorte qu'elle ne s'étendra que sur le contenu simulant l'effet.la source
EDIT: la réponse ci-dessous s'appliquerait dans la plupart des cas. OP a cependant mentionné plus tard qu'il ne pouvait rien modifier d'autre que le fichier CSS. Mais laissera ceci ici pour qu'il puisse être utile à d'autres.
La principale considération que d'autres négligent est que OP a déclaré ne pas pouvoir modifier le HTML.
Vous pouvez cibler ce dont vous avez besoin dans le DOM puis ajouter des classes dynamiquement avec javascript. Puis coiffez selon vos besoins.
Dans un exemple que j'ai fait, j'ai ciblé tous les
<p>
éléments avec jQuery et je l'ai enveloppé avec un div avec une classe de "coloré"Ensuite, dans mon CSS, j'ai ciblé le
<p>
et lui ai donné la couleur d'arrière-plan et changé endisplay: inline
En définissant l'affichage en ligne, vous perdez une partie du style dont il hériterait normalement. Assurez-vous donc de cibler l'élément le plus spécifique et de styliser le conteneur en fonction du reste de votre conception. C'est juste un point de départ de travail. Utilisez avec précaution. Démo de travail sur CodePen
la source
h1 est un élément de niveau bloc. Vous devrez utiliser quelque chose comme span à la place car il s'agit d'un élément de niveau en ligne (c'est-à-dire qu'il ne couvre pas toute la ligne).
Dans votre cas, je suggérerais ce qui suit:
style.css
html
la source
Comme le notent les autres réponses, vous pouvez ajouter un
background-color
à un<span>
autour de votre texte pour que cela fonctionne.Dans le cas où vous en avez
line-height
, vous verrez des lacunes. Pour résoudre ce problème, vous pouvez ajouter unbox-shadow
peu de croissance à votre envergure. Vous voudrez également quebox-decoration-break: clone;
FireFox le rende correctement.EDIT: Si vous rencontrez des problèmes dans IE11 avec le box-shadow, essayez également d'ajouter un
outline: 1px solid [color];
pour IE uniquement.Voici à quoi cela ressemble en action:
la source
Essayez de supprimer le centre d'alignement du texte et centrez le
<h1>
ou<div>
le texte réside dans.la source
peut utiliser la balise de marque html5 dans la balise de paragraphe et de titre.
la source
Vous pouvez utiliser la
<mark>
balise HTML5 .HTML:
CSS:
la source
Essaye celui-là:
Veuillez noter que calc n'est pas compatible avec tous les navigateurs :) Je veux juste être cohérent avec l'alignement dans le message d'origine.
https://jsfiddle.net/richardferaro/ssyc04o4/
la source
Vous devez mentionner la largeur de la balise h1.
votre css sera comme ça
la source
HTML
Css
Démo sur codepen
la source
box-decoration-break: clone;
, developer.mozilla.org/en-US/docs/Web/CSS/box-decoration-breakHTML
CSS
la source
la source