Lo que quiero es que el fondo verde esté justo detrás del texto, no que sea el 100% del ancho de la página. Aquí está mi código actual:
h1 {
text-align: center;
background-color: green;
}
<h1>The Last Will and Testament of Eric Jones</h1>
Respuestas:
Ponga el texto en un elemento en línea , como a
<span>
.Y luego aplique el color de fondo en el elemento en línea.
Un elemento en línea es tan grande como su contenido, por lo que debería hacerlo por usted.
fuente
h1 { display:inline; }
Opción 1
display: table;
violín
http://jsfiddle.net/J7VBV/293/
más
display: table
le dice al elemento que se comporte como lo haría una tabla HTML normal.Más información al respecto en w3schools , CSS Tricks y aquí
opcion 2
display: inline-flex;
text-align: center;
en los padresOpción 3
display: flex;
acerca de
Probablemente la guía más popular de Flexbox y a la que me refiero constantemente está en CSS Tricks
Opcion 4
display: block;
Opción 5
::before
violín
http://jsfiddle.net/J7VBV/457/
acerca de
Más información sobre pseudo elementos css :: before y :: after en CSS Tricks y pseudoelementos en general en w3schools
Opcion 6
display: inline-block;
centrado con
position: absolute
ytranslateX
requiere un
position: relative
padreacerca de
Más sobre centrarse en
transform: translate();
(y centrarse en general) en este artículo de trucos CSSOpcion 7
text-shadow:
ybox-shadow:
violín
https://jsfiddle.net/Hastig/t8L9Ly8o/
Mas opciones
Hay algunas otras formas de hacerlo combinando las diferentes opciones de visualización y los métodos de centrado anteriores.
fuente
display: table
podría ser tan poderoso, pero agradezco que haya proporcionado alternativas de trabajo.Un poco tarde para el juego, pero pensé que agregaría mis 2 centavos ...
Para evitar agregar el marcado adicional de un tramo interno, puede cambiar la
<h1>
propiedad de visualización deblock
ainline
(catch es que debería asegurarse de que los elementos después de que<h1>
sean elementos de bloque.HTML
CSS
Resultado
JSFIDDLE http://jsfiddle.net/J7VBV/
fuente
Un truco muy simple para hacerlo es agregar una
<span>
etiqueta y agregarle color de fondo. Se verá exactamente como lo desea.Y CSS
¿POR QUÉ?
<span>
etiqueta en una etiqueta de elemento en línea, por lo que solo abarcará el contenido que simula el efecto.fuente
EDITAR: la respuesta a continuación se aplicaría en la mayoría de los casos. OP, sin embargo, más tarde mencionó que no podían editar nada más que el archivo CSS. Pero dejaré esto aquí para que pueda ser de utilidad para otros.
La consideración principal que otros están descuidando es que OP ha declarado que no pueden modificar el HTML.
Puede orientar lo que necesita en el DOM y luego agregar clases dinámicamente con javascript. Luego peina como necesites.
En un ejemplo que hice, apunté todos los
<p>
elementos con jQuery y lo envolví con un div con una clase de "color"Luego, en mi CSS, apunté
<p>
y le di el color de fondo y cambié adisplay: inline
Al configurar la pantalla en línea, pierde parte del estilo que normalmente heredaría. Por lo tanto, asegúrese de apuntar al elemento más específico y diseñar el contenedor para que se ajuste al resto de su diseño. Esto es solo un punto de partida funcional. Usar con cuidado. Demostración de trabajo en CodePen
fuente
h1 es un elemento de nivel de bloque. Necesitará usar algo como span, ya que es un elemento de nivel en línea (es decir, no abarca toda la fila).
En su caso, sugeriría lo siguiente:
style.css
html
fuente
Como señalan las otras respuestas, puede agregar un
background-color
a<span>
alrededor de su texto para que esto funcione.Sin
line-height
embargo, en el caso en que lo haya hecho , verá brechas. Para solucionar esto, puede agregar unbox-shadow
poco de crecimiento a su lapso. También querrásbox-decoration-break: clone;
que FireFox lo represente correctamente.EDITAR: si tiene problemas en IE11 con el cuadro de sombra, intente agregar un
outline: 1px solid [color];
solo para IE solamente.Esto es lo que parece en acción:
fuente
Intente eliminar el centro de alineación de texto y centre el
<h1>
o<div>
el texto en el que reside.fuente
puede usar la etiqueta de marca html5 dentro de la etiqueta de párrafo y encabezado.
fuente
Puedes usar la
<mark>
etiqueta HTML5 .HTML:
CSS:
fuente
Prueba este:
Tenga en cuenta que calc no es compatible con todos los navegadores :) Solo quiero ser coherente con la alineación en la publicación original.
https://jsfiddle.net/richardferaro/ssyc04o4/
fuente
Debe mencionar el ancho de la etiqueta h1.
tu CSS será así
fuente
HTML
Css
Demo en codepen
fuente
box-decoration-break: clone;
, developer.mozilla.org/en-US/docs/Web/CSS/box-decoration-breakHTML
CSS
fuente
fuente