O que eu quero é que o plano de fundo verde fique logo atrás do texto, não seja 100% da largura da página. Aqui está meu código atual:
h1 {
text-align: center;
background-color: green;
}
<h1>The Last Will and Testament of Eric Jones</h1>
Respostas:
Coloque o texto em um elemento embutido , como a
<span>
.E, em seguida, aplique a cor de fundo no elemento embutido.
Um elemento embutido é tão grande quanto seu conteúdo; portanto, isso deve ser feito por você.
fonte
h1 { display:inline; }
Opção 1
display: table;
violino
http://jsfiddle.net/J7VBV/293/
Mais
display: table
diz ao elemento para se comportar como uma tabela HTML normal faria.Mais sobre isso em w3schools , CSS Tricks e aqui
opção 2
display: inline-flex;
text-align: center;
no paiOpção 3
display: flex;
sobre
Provavelmente, o guia mais popular do Flexbox e um que eu refiro constantemente é o CSS Tricks
Opção 4
display: block;
Opção 5
::before
violino
http://jsfiddle.net/J7VBV/457/
sobre
Mais sobre pseudo-elementos css :: before and :: after no CSS Tricks e pseudo-elementos em geral no w3schools
Opção 6
display: inline-block;
centrado com
position: absolute
etranslateX
requer um
position: relative
paisobre
Mais sobre centralização com
transform: translate();
(e centralização em geral) neste artigo de truques do CSSOpção 7
text-shadow:
ebox-shadow:
violino
https://jsfiddle.net/Hastig/t8L9Ly8o/
Mais opções
Existem algumas outras maneiras de fazer isso combinando as diferentes opções de exibição e métodos de centralização acima.
fonte
display: table
poderia ser tão poderoso, mas compreendo que você forneceu alternativas de trabalho.Um pouco tarde para o jogo, mas pensei em adicionar meus 2 centavos ...
Para evitar adicionar a marcação extra de uma extensão interna, você pode alterar a
<h1>
propriedade display deblock
parainline
(catch é necessário garantir que os elementos após os<h1>
elementos do bloco sejam).HTML
CSS
Resultado
JSFIDDLE http://jsfiddle.net/J7VBV/
fonte
Um truque muito simples para fazer isso é adicionar uma
<span>
tag e adicionar a cor de fundo a ela. Ele terá a aparência que você deseja.E CSS
PORQUE?
<span>
em uma tag de elemento embutido, para que ela se estenda apenas sobre o conteúdo que está fingindo o efeito.fonte
EDIT: a resposta abaixo se aplica na maioria dos casos. No entanto, o OP mencionou mais tarde que eles não podiam editar nada além do arquivo CSS. Mas deixará isso aqui para que possa ser útil para outras pessoas.
A principal consideração que outros estão negligenciando é que o OP afirmou que não pode modificar o HTML.
Você pode direcionar o que você precisa no DOM e adicionar classes dinamicamente com javascript. Em seguida, estilize conforme necessário.
Em um exemplo que criei, direcionei todos os
<p>
elementos com jQuery e envolvi-o com uma div com uma classe "coloured"Então, no meu CSS, direcionei o
<p>
e dei a cor de fundo e mudei paradisplay: inline
Ao definir a exibição como embutida, você perde parte do estilo que herdaria normalmente. Portanto, certifique-se de direcionar o elemento mais específico e estilizar o contêiner para o restante do seu design. Isto é apenas um ponto de partida de trabalho. Use com cuidado. Demonstração de trabalho no CodePen
fonte
h1 é um elemento no nível do bloco. Você precisará usar algo como span em vez disso, pois é um elemento de nível inline (ou seja: não abrange toda a linha).
No seu caso, eu sugeriria o seguinte:
style.css
html
fonte
Como as outras respostas observam, você pode adicionar um
background-color
a um<span>
redor do seu texto para que isso funcione.No caso em que você tem
line-height
, você verá lacunas. Para corrigir isso, você pode adicionar umbox-shadow
pouco de crescimento ao seu período. Você também desejabox-decoration-break: clone;
que o FireFox o processe corretamente.Edição: Se você está tendo problemas no IE11 com a sombra de caixa, tente adicionar um
outline: 1px solid [color];
também para o IE.Aqui está o que parece em ação:
fonte
Tente remover o centro de alinhamento de texto e centralize
<h1>
ou<div>
o texto reside.fonte
pode usar a marca html5 dentro da marca de parágrafo e cabeçalho.
fonte
Você pode usar a
<mark>
tag HTML5 .HTML:
CSS:
fonte
Tente este:
Por favor note que calc não é compatível com todos os navegadores :) Só quero ser consistente com o alinhamento na postagem original.
https://jsfiddle.net/richardferaro/ssyc04o4/
fonte
Você deve mencionar a largura da tag h1.
seu css será assim
fonte
HTML
Css
Demonstração no codepen
fonte
box-decoration-break: clone;
, developer.mozilla.org/pt-BR/docs/Web/CSS/box-decoration-breakHTML
CSS
fonte
fonte