• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak prawidłowo zmieścić background image w @media css?

Object Storage Arubacloud
0 głosów
309 wizyt
pytanie zadane 14 kwietnia 2021 w HTML i CSS przez Kubs Mądrala (5,190 p.)

Witajcie,

na stronie wszystko wyświetla się prawidłowo, jednak na telefonie obrazy wychodzi poza ekran i nie jest do niego doskalowany. Mam kilka obrazków, które zmieniają się wraz z przewijaniem dół/góra.

Jak dopasować je w @media?

<section id="banner" class="bg-img" data-bg="image.jpg">
				<div class="inner">
					<header>
						<h1>TEST</h1>
					</header>
				</div>
				<a href="#first" class="more">Learn More</a>
			</section>

i adekwatnie kolejne <section> poniżej.

Mam w tym kodzie przycisk dalej 

<a href="#first" class="more">Learn More</a>

który również widać tylko w połowie przy dolnej części ekranu telefonu.

Czy każdy element trzeba skalować osobno czy po prostu da się wszystkie dopasować do telefonu ustawiając jakiś jeden ogólny kod?

2 odpowiedzi

0 głosów
odpowiedź 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)

Najwygodniej by było, gdybyś kod umieścił na codepen. Czy masz dodany viewport w head? Jeżeli tak, czy ustawiałeś wartość background-size?

komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)

Tak, mam.

Ustawiłem w @media,

#body {
    background-size: cover;
  }

ale nie działa.

komentarz 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)
Ustawiłeś styl dla identyfikatora, a nie znacznika. Spróbuj usunąć znak "#".
komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)
Zmieniłem, również nie działa.
komentarz 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)
Udostępnij kod w obecnej formie na codepen, zobaczymy co i jak :D
komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)
komentarz 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)
Huh, ciężki trochę ten kod.. Ja to bym chyba napisał od nowa. Widzę atrybut data-bg, ale nie jest on nigdzie wykorzystywany. Nie widzę w CSS również ustawiania tła. Style dla znaczników pomieszane z klasami...

 

Na szybko klepnąłem rozwiązanie podobne do twojego, okrojone z zbędnego cssa. Kod HTML nadal jest do poprawy. W miejsce atrybutów HTML użylem zmiennych CSS.

Link: https://codepen.io/radek024/pen/QWdrMgd
komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)
Tak, ten mój kod jest trochę chaotyczny.

A jak twój można zaaplikować dla telefonów?
komentarz 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)
Chcesz aby jedna grafika była na pełnym ekranie komórki tak? Jeżeli tak, to jest to zrobione z definicji, ponieważ klasa bg-img zajmuje 100% viewportu pod kątem wysokości.
komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)

Pomału coś działa. I teraz tak:

bg-img wciąż zajmują u mnie więcej niż ekran, zarówno na wysokości jaki i szerokości.

przycisk more wciąż jest za nisko.

i zmiana czcionki

#banner h1 {
    font-size: 10vw;
    font-family: "Fondamento", cursive;
  }

w ogóle nie zadziałała. Używam tą samą co jest w przeglądarce.

komentarz 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)
Masz marginesy, paddingi, jakieś bordery - stąd taka sytuacja. Użyj box-sizing:border-box. Dzięki temu całość będzie zawierała przestrzeń, ale w ramach dostępnego miejsca, a nie zajmowania nowego.

Nie widzę, abyś gdziekolwiek załączał czcionkę, więc nie ma pewności, że zostanie załadowana.
komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)

czyli

.body{
    box-sizing: border-box;
  }

?

komentarz 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)

Odnoszę wrażenie, że nie masz zbyt dużo wiedzy na temat CSS. Zachęcam Cię do przeczytania następujących artykułów:

W szczególności pierwszy i ostatni link będzie przydatny dla Ciebie teraz. 

Znajdź odpowiedni selektor i to mu nadaj właściwość border-box.

komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)

Ok, doczytam.

Mam tą czcionkę w:

#banner h1 {
  font-size: 7em;
  line-height: 1.1;
  font-family: "Fondamento", cursive;
  margin-bottom: 0.25em;
  color: rgba(255, 255, 255, 0.75);
  text-shadow: -2px -2px 0 rgba(0, 0, 0, 0.125);
  text-transform: none;
  letter-spacing: 20px;
}

ale gdy używam

@media screen and (max-width: 400px) {
  #banner h1 {
    font-size: 10vw;
  }
}

to w ogóle pojawia się jakaś inna niż na stronie

komentarz 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)

Nie widzę, abyś gdziekolwiek załączał czcionkę, więc nie ma pewności, że zostanie załadowana.

W font-family można wpisać jakąkolwiek nazwę, ale to nie jest dołączenie czcionki, a jej użycie. Na podstawie czego jej używasz? Masz dołączone Google Fonts, jest dostępna systemowo, może posiadasz gdzieś dołączone jej pliki do katalogu strony? Jest dużo możliwości. 

komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)
Tak, mam ją podlinkowaną w <head> i na stronie działa. Ale już w @media nie.
komentarz 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)
A to jeszcze o tym poczytaj: https://radek024.github.io/blog/css/strony-www/bykiwkodzie/2017/06/30/css-shorthands/#font

Może gdzieś przypadkiem używasz pełnej właściwości i stąd jest problem z czcionką. Jak pisałem, kod zarówno CSS i HTML z mojej perspektywy jest do przepisania, trudno się w nim odnaleźć.
komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)
Dzięki. Doradź jeszcze proszę na koniec jak zrobić by w @media nie pojawiał się żaden wcześniejszy kod z CSS? Po prostu zamiast poprawiać taką pajęczynę, wrzucę do @media jeden osobny obrazek, żeby cokolwiek wisiało i tyle.
komentarz 14 kwietnia 2021 przez radek024 Szeryf (77,160 p.)
Takie podejście jest złe. Rozwijanie takiego CSSa może być bardzo trudne. Co do tła możesz rozwiązać problem stosując wstawienie tła na sztywno, a nie na podstawie zmiennej CSS.
komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)
Jak to zrobić dla @media?
komentarz 15 kwietnia 2021 przez Kubs Mądrala (5,190 p.)

@radek024,

Witaj Radek, 

według twoich wskazówek zrobiłem porządek w CSS. Wciąż jednak nic na telefonie nie dopasowuje się do jego rozmiaru. Co tu zmienić?

https://codepen.io/KubsKuba/pen/bGgKGbj

komentarz 15 kwietnia 2021 przez radek024 Szeryf (77,160 p.)
Co się nie dopasowuje? Wklejka na codepenie nie wykazuje, aby jakiś element się wysypywał.
0 głosów
odpowiedź 14 kwietnia 2021 przez niezalogowany
komentarz 14 kwietnia 2021 przez Kubs Mądrala (5,190 p.)
Kurczę, to jak tonącego wepchnąć na głębszą wodę :)

Pomóż z kodem chociaż trochę :)
komentarz 15 kwietnia 2021 przez Kubs Mądrala (5,190 p.)

Witaj ponownie,

próbuje wyskalować image do rozmiarów telefonu. Jak to złapać w @media?

 

<section id="banner" class="bg-img" data-bg="image.jpg">

#banner .bg-img oraz #banner .data-bg  nie działa.

Podobne pytania

0 głosów
0 odpowiedzi 712 wizyt
pytanie zadane 3 września 2022 w HTML i CSS przez kingkushlee Gaduła (3,960 p.)
0 głosów
1 odpowiedź 642 wizyt
pytanie zadane 31 grudnia 2018 w HTML i CSS przez Strugaczka Początkujący (260 p.)
+1 głos
2 odpowiedzi 921 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...