Chcę, aby zielone tło znajdowało się tuż za tekstem, a nie na 100% szerokości strony. Oto mój obecny kod:
h1 {
text-align: center;
background-color: green;
}
<h1>The Last Will and Testament of Eric Jones</h1>
Chcę, aby zielone tło znajdowało się tuż za tekstem, a nie na 100% szerokości strony. Oto mój obecny kod:
h1 {
text-align: center;
background-color: green;
}
<h1>The Last Will and Testament of Eric Jones</h1>
Odpowiedzi:
Umieść tekst w elemencie wbudowanym , takim jak
<span>
.Następnie zastosuj kolor tła w elemencie wbudowanym.
Element wbudowany jest tak duży, jak jego zawartość, więc powinno to zrobić za Ciebie.
źródło
h1 { display:inline; }
opcja 1
display: table;
skrzypce
http://jsfiddle.net/J7VBV/293/
więcej
display: table
mówi elementowi, aby zachowywał się tak jak normalna tabela HTML.Więcej o tym w w3schools , CSS Tricks i tutaj
Opcja 2
display: inline-flex;
text-align: center;
od rodzicaWariant 3
display: flex;
o
Prawdopodobnie najpopularniejszy przewodnik po Flexbox, do którego ciągle się odwołuję, znajduje się w CSS Tricks
Opcja 4
display: block;
Opcja 5
::before
skrzypce
http://jsfiddle.net/J7VBV/457/
o
Więcej o pseudo elementach CSS :: before i :: after na CSS Tricks i ogólnie o pseudo elementach na w3schools
Opcja 6
display: inline-block;
centrowanie za pomocą
position: absolute
itranslateX
wymaga
position: relative
rodzicao
Więcej o centrowaniu z
transform: translate();
(i ogólnie centrowaniu) w tym artykule o sztuczkach CSSOpcja 7
text-shadow:
ibox-shadow:
skrzypce
https://jsfiddle.net/Hastig/t8L9Ly8o/
Więcej możliwości
Jest na to kilka innych sposobów, łącząc różne opcje wyświetlania i metody środkowania powyżej.
źródło
display: table
mogą być tak potężne, ale doceniam, że zapewniłeś działające alternatywy.Trochę późno na grę, ale pomyślałem, że dodam moje 2 centy ...
Aby uniknąć dodawania dodatkowego znacznika wewnętrznego zakresu, możesz zmienić
<h1>
właściwość wyświetlania zblock
nainline
(złapać, aby upewnić się, że elementy po<h1>
są elementami blokowymi.HTML
CSS
Wynik
JSFIDDLE http://jsfiddle.net/J7VBV/
źródło
Bardzo prostą sztuczką jest dodanie
<span>
tagu i dodanie do niego koloru tła. Będzie wyglądać tak, jak chcesz.I CSS
CZEMU?
<span>
w tagu elementu wbudowanego, więc będzie obejmował tylko treść udającą efekt.źródło
EDYTUJ: odpowiedź poniżej będzie miała zastosowanie w większości przypadków. OP jednak później wspomniał, że nie mogą edytować niczego poza plikiem CSS. Ale zostawię to tutaj, aby mogło się przydać innym.
Główną kwestią, którą inni zaniedbują, jest to, że OP stwierdził, że nie może modyfikować HTML.
Możesz kierować na to, czego potrzebujesz w DOM, a następnie dodawać klasy dynamicznie za pomocą javascript. Następnie stylizuj według potrzeb.
W utworzonym przeze mnie przykładzie skierowałem wszystkie
<p>
elementy za pomocą jQuery i otoczyłem go elementem div z klasą „coloured”Następnie w moim CSS wycelowałem
<p>
i nadałem mu kolor tła i zmieniłem nadisplay: inline
Ustawiając wyświetlacz jako wbudowany, tracisz część stylu, który normalnie by dziedziczył. Dlatego upewnij się, że celujesz w najbardziej konkretny element i stylizujesz kontener tak, aby pasował do reszty projektu. Jest to tylko punkt wyjścia do pracy. Używaj ostrożnie. Działające demo na CodePen
źródło
h1 jest elementem blokowym. Będziesz musiał użyć czegoś takiego jak span, ponieważ jest to element liniowy (tj. Nie obejmuje całego wiersza).
W twoim przypadku proponuję co następuje:
style.css
html
źródło
Jak zauważają inne odpowiedzi, możesz dodać
background-color
do<span>
wokół tekstu, aby to zadziałało.W przypadku, gdy
line-height
jednak masz, zobaczysz luki. Aby to naprawić, możesz dodaćbox-shadow
trochę wzrostu do swojej rozpiętości. Będziesz także chcąbox-decoration-break: clone;
dla FireFox, aby uczynić go prawidłowo.EDYCJA: Jeśli masz problemy w IE11 z box-shadow, spróbuj dodać
outline: 1px solid [color];
również tylko dla IE.Oto jak to wygląda w akcji:
źródło
Spróbuj usunąć środek wyrównania tekstu i wyśrodkować
<h1>
lub<div>
tekst znajduje się w środku .źródło
może używać znacznika znacznika HTML5 w tagu akapitu i nagłówka.
źródło
Możesz użyć
<mark>
tagu HTML5 .HTML:
CSS:
źródło
Spróbuj tego:
Pamiętaj, że kalkulator nie jest kompatybilny ze wszystkimi przeglądarkami :) Po prostu chcę być spójny z wyrównaniem w oryginalnym poście.
https://jsfiddle.net/richardferaro/ssyc04o4/
źródło
Musisz wspomnieć o szerokości tagu h1 ..
twój css będzie taki
źródło
HTML
CSS
Demo na codepen
źródło
box-decoration-break: clone;
, developer.mozilla.org/en-US/docs/Web/CSS/box-decoration-breakHTML
CSS
źródło
źródło