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

Problem z powiększaniem strony - HTML, CSS

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
756 wizyt
pytanie zadane 27 lutego 2016 w HTML i CSS przez KamQiX Dyskutant (9,090 p.)

Witam.

Od kilku dni zająłem się programowaniem webowym (na razie raczkuję w CSS i HTML, ale to dopiero początki).

Stworzyłem swoją trzecią jak dotąd okodowaną stronę. Wzorowałem się głównie na tym: https://login.microsoftonline.com/ - ale kod pisałem całkowicie od 0, bez choćby spoglądania na kod strony Microsoftu.

Problemy wyglądają następująco:

Pierwszy z nich to przesuwanie się background-image w divie po powiększaniu strony. A drugi to znikający, a właściwie przenoszący się pod obrazek panel logowania wraz ze stopką. Nie pojawia się jednak suwak przez użycie overflow:hidden w body.

W rozmiarze 100% moja strona wygląda tak:

A po przybliżeniu do 150% tak:

Jak widać teraz ręka gościa na obrazku jest bliżej lewej krawędzi ekranu, a logowanie przeniosło się pod ekran. Kompletnie nie mam pojęcia co zrobić by strona zachowywała się podobnie jak https://login.microsoftonline.com/

Po oddaleniu do np. 75% stopka ląduje obok panelu logowanie, a nie trzyma się sztywno dołu strony. Niby wiem przez co tak jest, ale nie mam pojęcia jak to naprawić:

To mój kod HTML:


<!DOCTYPE HTML>
<html lang="pl">

<head>
	<meta charset="UTF-8">
	<meta name="keywords" content="dziennik,edziennik,elektroniczny,dziennik,szkola">
	<title>Edumia - elektroniczny system szkolny</title>
	
	<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body>
	<div id="container">
		<div id="obrazek"></div>
		<div id="head">
			<div id="logo"></div>
		</div>
		<div id="login">
			<span class="logowanie">LOGOWANIE</span><br /><br />
			
			<span class="tekst">Zaloguj się do swojego konta </span><br /><br />
			<form action="">
			Login: <input type="text" name="login"><br /><br />
			
			Hasło: <input type="password" name="haslo"><br />
			
			<input type="Checkbox"> Zapamiętaj mnie!
			<input type="submit" value="Zaloguj">
			
			</form>
		</div>
		<div id="footer">&copy; 2016 - Wszelkie prawa zastrzeżone!</div>
	</div>
</body>

</html>

Natomiast CSS tak:

html
{
	height: 100%;
	overflow:hidden
}

body 
{
	margin: 0;
	height: 100%;
}

#container
{
	height: 100%;
}
#obrazek 
{
	left: 0px;
	right: 0px;
	float: left;
	width: 950px;
	height: 100%;
	background-image: url("images/obrazek.jpg");
	background-size: auto 100%;
	background-position: -200px;
	background-repeat: no-repeat;
}
#head
{	
	position: absolute;
	background-color: white;
	opacity: 0.92;
	z-index: 2;
	width: 98%;
	float: left;
	text-align: center;
	height: 80px;
	padding: 10px;
}

#logo
{	
	margin-top: 15px;
	margin-left: 1000px;
	width: 200px;
	height: 54px;
	background-image: url("images/logox.png");
	float: left;
}

#logo:hover
{
	background-image: url("images/logo2.png");
}

#login
{	
	margin-left: 10px;
	padding: 50px;
	font-weight: bold;
	margin-top: 100px;
	font-family: lato, sans-serif;
	width: 50% - 20px;
	float: left;
}
input[type="text"]
{
	margin-left: auto;
	margin-right: auto;
	height: 25px;
	width: 300px;
	padding-left: 10px;
	padding-right: 10px;
	border-bottom: 2px solid #96b537;
	border-top: none;
	border-right: none;
	border-left: none;
}

input[type="password"]
{
	margin-left: auto;
	margin-right: auto;
	height: 25px;
	width: 300px;
	padding-left: 10px;
	padding-right: 10px;
	border-bottom: 2px solid #96b537;
	border-top: none;
	border-right: none;
	border-left: none;
}

input[type="submit"]
{
	font-family: lato, sans-serif;
	font-weight: bold;
	background-color: #96b537;
	margin-left: auto;
	margin-right: auto;
	margin-top: 10px;
	height: 25px;
	width: 100%;
	padding-left: 10px;
	padding-right: 10px;
	border: none;
}

input[type="submit"]:hover
{
	background-color: #A7C646;
}

.logowanie
{
	font-size: 25px;
	color: #96b537;
}

.tekst
{
	font-size: 12px;
	color: #444444;
}

#footer
{
	float: left;
	margin-top: 325px;
	margin-left: 60px;
	font-family: lato, sans-serif;
	font-size: 11px;
	color: #444444;
}

input[type="checkbox"]
{
	margin-top: 10px;
}

Zdaję sobie sprawę, że w kodzie jest z 5 500 500 500 podstawowych błędów o których nie wiem. Przy okazji proszę proszę o wskazanie mi ich.

1 odpowiedź

+1 głos
odpowiedź 27 lutego 2016 przez Czort Nałogowiec (32,500 p.)
wybrane 21 marca 2016 przez KamQiX
 
Najlepsza
Co do stopki - clear:both; dopisać do #footer (swoją drogą do stylowania powinno się używać klas a nie id)

Co do pierwszego problemu - jeśli chcesz aby elementy zawsze mieściły się na szerokość, to musisz ustawić width w procentach, a nie w px.
1
komentarz 27 lutego 2016 przez HaKIM Szeryf (87,590 p.)

Można też w px, tylko trza pobawić się w media, lecz... Kiedy nie trzeba?

komentarz 27 lutego 2016 przez KamQiX Dyskutant (9,090 p.)
Tylko, że gdy dodam np. #obrazek {width: 70%;} a #login {width: 30%;} i chcę dodać padding np. 10px i margin-left np. 20px to również nie mieści się na ekranie, a nie wiadomo wtedy ile odjąć od width: 30%: w #login.
komentarz 27 lutego 2016 przez Czort Nałogowiec (32,500 p.)
Dokładnie. W sumie to na siłę ściskanie elementów jest bez sensu, na małych wyświetlaczach nawet powinny układać się jeden pod drugim albo przynajmniej ukrywać.
1
komentarz 27 lutego 2016 przez Czort Nałogowiec (32,500 p.)

Tylko, że gdy dodam np. #obrazek {width: 70%;} a #login {width: 30%;} i chcę dodać padding np. 10px i margin-left np. 20px to również nie mieści się na ekranie, a nie wiadomo wtedy ile odjąć od width: 30%: w #login.

margin i padding też można ustawić na %%, poza tym jest coś takiego jak box-model

1
komentarz 27 lutego 2016 przez writen Nałogowiec (29,060 p.)

Tylko, że gdy dodam np. #obrazek {width: 70%;} a #login {width: 30%;} i chcę dodać padding np. 10px i margin-left np. 20px to również nie mieści się na ekranie, a nie wiadomo wtedy ile odjąć od width: 30%: w #login.

 To wystarczy ustawić box-sizing: border-box; i po problemie.

https://css-tricks.com/box-sizing/

A jeśli nie chcesz to jest jeszcze funkcja calc().

Podobne pytania

0 głosów
1 odpowiedź 1,033 wizyt
0 głosów
2 odpowiedzi 2,085 wizyt
+1 głos
1 odpowiedź 437 wizyt

93,188 zapytań

142,204 odpowiedzi

322,027 komentarzy

62,515 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2581p. - dia-Chann
  2. 2537p. - Łukasz Piwowar
  3. 2528p. - Łukasz Eckert
  4. 2514p. - CC PL
  5. 2476p. - Tomasz Bielak
  6. 2445p. - Łukasz Siedlecki
  7. 2443p. - rucin93
  8. 2418p. - Michal Drewniak
  9. 2373p. - Marcin Putra
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2156p. - Anonim 3619784
  13. 2016p. - Michał Telesz
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...