CSS vraag | verkeerd uitgelijnt

Status
Niet open voor verdere reacties.

jipyboy

Gebruiker
Lid geworden
5 jul 2009
Berichten
41
Ik ben bezig met een nieuwsbrief site. Maar ik heb nu dus een probleem. Wanneer ik mijn pagina laad zie je bovenaan logo, daaronder balk voor e-mail adres en daaronder zwart blok voor tekst later. Nu het probleem het "tekstblok" (textbox) staat een heel klein beetje naar links in vergelijking met het e-mail adres blok. Ik irriteer me er echt aan :p

hier de codes

HTML
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>XXXXXXX.nl | Home</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>

<div id="logo"></div>
<div id="aanmelden" class="border-radius"><input type="text" class="e-mail" value="Vul hier uw E-mail adres in."/>
<input type="submit" class="verzenden" value="verzenden"/><div>
<div id="textbox" class="border-radius"></div>

</body>
</html>

Code:
body {background-color: #F0FFF0;}
body {font-size: 17px; font-family: Arial;}

#logo {
position: relative;
background: url(images/logo.png);
background-repeat: no-repeat;
top: 5px;
margin: 0 auto;
width: 700px;
height: 100px;
border: 0px;
}

#aanmelden {
position: relative;
padding: 7px;
background: #000000;
top: 30px;
margin: 0 auto;
width: 700px;
height: 30px;
border: 0px;
}

#textbox {
position: relative;
padding: 7px;
background: #000000;
top: 30px;
margin: 0 auto;
width: 700px;
height: 300px;
border: 55px;
}

#footer {

}

.e-mail {
background-color: #F0FFF0;
padding: 7px;
height: 16px;
border: 0px;
width: 300px;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 10px;
behavior: url(border-radius.htc);
}

.verzenden {
background-color: #F0FFF0;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 10px;
behavior: url(border-radius.htc);
height: 30px;
border: 0px;
width: 100px;
}

.border-radius {
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 10px;
behavior: url(border-radius.htc);
}

p.s. als je nog andere tips hebt hoor ik het ook graag
 
Laatst bewerkt:
Als ik zo kijk naar je stukje html, dan zie ik dat je gebruik maakt van de xhtml regels. Je sluit de meeste elementen af met een slash, alleen raad ik je wel aan hier een spatie voor de zetten (voor oudere browsers). Verder heb je nog niet elk element afgesloten.

Je css klopt ook niet helemaal volgens de css validator!

Validator links:
http://validator.w3.org/
http://jigsaw.w3.org/css-validator/

Misschien helpt het als je de foutjes er eventjes uithaalt ;)

PS: Kun je ook eventjes een voorbeeldje online zetten? Dat is wat makkelijker :)
 
CSS klopt qua codes wel, en HTML heb ik zo aangepast

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Diskon.nl | Home</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>

<div id="logo"></div>
<div id="aanmelden" class="border-radius"><input type="text" class="e-mail" value="Vul hier uw E-mail adres in." />
<input type="submit" class="verzenden" value="verzenden" /><div>
<div id="textbox" class="border-radius"></div>

</body>
</html>

Is het zo goed?, ik heb op het moment geen host dus ik kan het niet uploaden sorry!
 
Als ik hem laat inspringen, dan mis ik nog wel enkele sluitingstags, dus daar moet je even goed naar kijken:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>Diskon.nl | Home</title>
		<link href="style.css" rel="stylesheet" type="text/css" />
	</head>

	<body>
 		<div id="logo"></div>
		<div id="aanmelden" class="border-radius">
			<input type="text" class="e-mail" value="Vul hier uw E-mail adres in." />
			<input type="submit" class="verzenden" value="verzenden" />
			
			<div>
				<div id="textbox" class="border-radius">
			</div>
	</body>
</html>
 
Ik begrijp niet echt wat je bedoeld. Ik doe het altijd zo dus ik weet niet beter, zou je het kunnen uitleggen en misschien voorbeeld willen geven?
 
bij xhtml moet je elk element afsluiten, en dat kan op 2 manieren:

1. Zoals de meesten gewend zijn:
PHP:
<div></div>

2. Zelf-sluitend:
HTML:
<div />

Als ik jou stukje code bekijk, dan zie ik dat je ze door elkaar gebruikt, wat trouwens geen punt is. Je moet er alleen wel voor zorgen dat alle tags afgesloten zijn, wat hier niet het geval is. In dit geval heb je de div met als id "aanmelden" niet afgesloten.
 
Bedankt!, ik heb maar even de site helemaal overnieuw gemaakt het was niet zoveel en het probleem is verholpen.
 
Hoi jipyboy,
=====
De html
=====
5blabla5 heeft gelijk: goed naar de <div></div>'s paren kijken, en goed inspringen maakt meestal veel duidelijk.
Jouw code van reactie nr.#3 is:
HTML:
<body>
<div id="logo"></div>
<div id="aanmelden" class="border-radius"><input type="text" class="e-mail" value="Vul hier uw E-mail adres in." />
<input type="submit" class="verzenden" value="verzenden" /><div>
<div id="textbox" class="border-radius"></div>
</body>
Als ik de html-code iets anders laat inspringen dan 5blabla5 in reactie nr.#4, staat er:
HTML:
<body>
 
<div id="logo"></div>
<div id="aanmelden" class="border-radius">
	<input type="text" class="e-mail" value="Vul hier uw E-mail adres in." />
	<input type="submit" class="verzenden" value="verzenden" />
<div>
<div id="textbox" class="border-radius"></div>
 
</body>
Als je nu niet meteen ziet waar het (tik)foutje zit, helpt de html-validator, die als commentaar geeft dat er twee keer:
end tag for "div" omitted,
You may have neglected to close an element, or perhaps you meant to "self-close" an element, that is, ending it with "/>" instead of ">".
In de informatie-opmerkingen van de html-validator staat er bij waar de <div>'s zijn begonnen die niet zijn afgesloten: in regel 82 en regel 85.
Dat klopt als je gaat natellen!
  • De <div id="logo"> wordt afgesloten met een </div>.
  • De <div id="aanmelden"> wordt nergens afgesloten met een </div>.
  • De losse <div> wordt ook niet afgesloten.
  • En de <div id="textbox"> wordt wel volgens de regels afgesloten met z'n </div>
Kortom, het losse <div>'je moet een </div> zijn, dan zijn beide fouten tegelijk opgelost.
Nu geeft de html-validator alleen nog twee waarschuwingen: "No Character Encoding Found!" - Dat betekent: er hoort bij een html-pagina opgegeven te worden welke "charset" (set van characters = lettertekens) gebruikt moet worden om de code te ontcijferen. Dit moet helemaal in het begin gebeurden: met een (php) header die de server er op plakt, en/of met een <meta> element waarin het staat.
Het kan opgelost worden door in de <head> toe te voegen, meteen in het begin (zodat het gebruikt kan worden voor alles wat volgt):
HTML:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
... rest van de head-elementen ...
</head>
=====
De css
=====
Nu de fouten die de css-validator aangeeft: deze 12 fouten. Die hebben allemaal met de border-radius te maken:
  • dat is css3, terwijl de validator standaard op css2.1 test,
  • daarnaast is browser-specifieke css opgenomen: -moz-border-radius, -webkit-border-radius en behavior:url(border-radius.htc).
Conclusie: hier is niets ernstigs aan de hand. In het ergste geval maakt een browser geen ronde hoekjes. Verder kan er niets in de war geschopt worden.

=====
Overig
=====
Als Doctype gebruik je Xhtml Transitional. Dat was er in 1999 (!) voor bedoeld om toen "backwards compatible" te zijn voor oude coderingen in toen bestaande websites: zodat niet opeens websites in elkaar gingen storten. Voor nieuwe websites verdient het sindsdien verreweg de voorkeur om Xhtml Strict te gebruiken. Dat is een veel betere standaard (met verbod van achterhaalde codes als <center> e.d.), en geeft de meeste garanties voor goede cross-browser weergave.
Verder moet eigenlijk in het begin van de code aangegeven worden in welke voertaal de tekst is (o.a. handig voor Google, en noodzakelijk voor voorlees-browsers), zowel in de html- als in de xml-notatie.
Samen worden dan de eerste regels:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="nl" xml:lang="nl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>... enz.

Verder valt op dat de kop links en rechts 7px smaller is dan het onderstuk:

nieuwsbrief-padding.png

Dat komt omdat de <div id="aanmelden"> en de <div id="textbox"> dezelfde breedte (700px) hebben als de <div id="logo">, maar een padding hebben gekregen van 7px.
En er geldt: een padding wordt altijd toegevoegd aan de grootte van een element.
Om ze gelijk op te laten lopen moet het dus worden:
Code:
#aanmelden {
    width: 686px; /* 700px min 7px padding links min 7px padding rechts */
    ... enz.
    }
#textbox {
    width: 686px; /* 700px min 7px padding links min 7px padding rechts */
    ... enz.
    }
Al met al is m'n handtekening ook hier van toepassing. ;)

Met vriendelijke groet,
CSShunter
 
Ai! Dat was dus een stevige kruispost, terwijl we alletwee aan het werk waren! :D
Maar nu is in elk geval verklaard wat er mis ging. :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan