• 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

Object Storage Arubacloud
0 głosów
621 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ź 915 wizyt
0 głosów
2 odpowiedzi 1,797 wizyt
+1 głos
1 odpowiedź 339 wizyt

92,556 zapytań

141,404 odpowiedzi

319,563 komentarzy

61,942 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!

...