Geen reset + Mag dit: <i style=" ">

Status
Niet open voor verdere reacties.

janyep

Gebruiker
Lid geworden
7 mei 2008
Berichten
261
Goedenavond,
Durf het bijna niet te vragen (vind het zelf een beetje sullig dat ik hier even niet uitkom), maar:

A.
Doordat ik offline bezig ben, lukt het niet .html te checken met CSS Validation Service =
Bestand niet gevonden: import file://localhost/scripts/style.css
HTML 4-validatie wordt wel goedgekeurd.

Maar mag ik zo verder met <I style=""> = voor uitzonderingen?
CSS:
.fotobox I {margin-left:30px; margin-right:0; font:italic 12px/1.2em Verdana, Arial, sans-serif;}

HTML4:
<DIV CLASS="fotobox">
<I STYLE="color:#888">Prachtige foto</I><BR>
<IMG SRC="....."><BR>
<I STYLE="color:#888">foto: @ janyep</I>
</DIV>


B.
Ik maak geen gebruik van reset
* {margin: 0}

reageren alle browsers idem als ik
margin-left:30px; margin-right:0;
verander in:
margin:0 0 0 30px;


Alle suggesties zijn welkom!
Vr. gr, janyep
 
Laatst bewerkt:
Doordat ik offline bezig ben, lukt het niet .html te checken met CSS Validation Service =
Bestand niet gevonden: import file://localhost/scripts/style.css
HTML 4-validatie wordt wel goedgekeurd.

je kunt toch http://jigsaw.w3.org/css-validator/ gebruiken en dan kiezen voor direct
input ? hier kun je je css chekken.

<DIV CLASS="fotobox">
<I STYLE="color:#888">Prachtige foto</I><BR>
<IMG SRC="....."><BR>
<I STYLE="color:#888">foto: @ janyep</I>
</DIV>

ten eerste waarom schrijf je je html met hoofdletters ?
ten tweede inline css ? geen goed idee maak het gewoon op d.m.v een externe stylesheet

je maakt al gebruik van een class .fotobox waarom benader je de <i> tag niet gewoon d.m.v
HTML:
.fotobox i {
 hier je stijl
}

hoe dieper je iets specificeert hoe belangrijker het word. Ook word gekeken op welke plaats in je css je iets hebt gespecificeerd bijvoorbeeld:

HTML:
.fotobox {
eerste stijl 
margin-left:30px; /* bijvoorbeeld op regel 20 */
}

HTML:
.fotobox{
deze is belangrijker 
margin-left:10px; /* op regel 25 */
}

.fotobox is bijvoorbeeld een algemene class. alles wat je van daaruit anders wilt opmaken kun je dieper specificeren. (.fotobox) in de sidebar moet er anders uit zien
dan doe je

HTML:
#sidebar .fotobox { (diepere specificatie)
/* je stijl */
}

je kunt er ook voor kiezen om een dubbele class ergens op te zetten.
HTML:
<div class="fotobox">elementen in fotobox</div>

.fotobox is hier de algemene class. Nu heb je bijvoorbeeld in de sidebar ook een fotobox dan kun je zeggen:

HTML:
<div class="fotobox sidebar">elementen in fotobox</div>
je maakt hier nu gebruik van een dubbele class. NU kun je .sidebar apart op gaan maken en alleen de stijlen specificeren die anders zijn voor .sidebar (de rest erft hij namelijk van .fotobox)

hoop dat dit een beetje helder is :D

N.B gebruik maken van * { margin: 0; padding: 0; } is geen goed idee en moet je eigenlijk niet gebruiken, beter kun je je css reset aanpassen aan je project, of alleen alle block elementen op margin: 0 padding: 0 zetten. Daarnaast zou ik persoonlijk gewoon gebruik maken van de browsers default opmaak en alles wat ander is opmakend.m.v css

Succes :)
 
Laatst bewerkt:
Hallo Pum,
Ja hoor, glashelder. Enorm bedankt voor de uitgebreide uitleg. Ik mag er graag over lezen.

De volgende kende ik niet zo, ziet er toch wel logisch uit.
HTML:
#sidebar .fotobox { (diepere specificatie)
/* je stijl */
}


ten eerste waarom schrijf je je html met hoofdletters ?
Sinds jaren werk ik met Stone's WebWriter * en, groen als gras, heb ik 'm ooit ingesteld op hoofdletters.
Fijne editor, met de mogelijkheid van 'auto-updating'.
Weet het: in HTML5 zal ik toch echt naar kleine letters moeten, maar nu even geen prioriteit. Ben voorlopig liever consequent: alle HTML groot of alle HTML klein.


{ margin: 0; padding: 0; } is geen goed idee
Snap het niet, maar wil het wel aannemen.:thumb: Prima, laat het zoals het is.


je kunt toch http://jigsaw.w3.org/css-validator/ gebruiken en dan kiezen voor direct
input ?
>>>>>>>>> Sorry! We vonden de volgende fouten (2)
>>>>>>>>> 1 Parse Error. Style sheets mogen geen HTML syntax. <DIV CLASS="fotobox">
Vandaar.


Nogmaals dank,
janyep
 
Als ik die fout zo lees dan heb je html code in je stylesheet :D dat kan inderdaad niet.
een css stylesheet is een extern .css file waarin je al je opmaak zet. een html stijl zet je alleen je html.

dus je hebt een index file (hierin al je html)
je hebt een screen.css (maakt niet uit wat voor naam: hierin zet je al je css)
de css link je aan de html d.m.v

HTML:
<link type="text/css" rel="stylesheet" href="pad waar je css staat/screen.css">

margin en padding op 0 met * betekend alle html elementen geen margin en padding meegeven. dus ook elementen die je niet gebruik in je stylesheet. de browser geeft standaard bijvoorbeeld margin en padding aan:

een p tag
alle h tags (h1, tm/h6)
ul, ol, dl (unorderd lists, orderd lists, defenition lists)
form elementen
blockquote

kortom dit zijn allemaal block elementen die een margin en padding mee krijgen.
het is wel heel radicaal om dit allemaal op 0 te zetten je geeft het immers later weer een stijl mee en dit is dubbel op (je zet het eerst op 0 terwijl het standaard een waarde heeft, en dan geef je het weer een waarde)

wel kun je zeggen h tags en p tags zet ik eerst op 0 dit omdat deze elementen verschillende margins en paddings mee krijgen in de verschillende browsers en is het daarom verstandig deze eerst te resetten en dan een waarde te geven :D anders krjg je verschillen

html 4 is de html die nu nog wel word gebruikt, de opvolger van html 4 was eerst xhtml combinatie van xml en html.
xhtml word niet meer doorontwikkeld en de nieuwe standaard is zometeen dus html 5

html 4 doctype mag je inderdaad oude tags gebruiken mits de doctype transitional is
xhtml moeten img tags en link tags afgesloten worden met een self closing tag />

als je een xhtml doctype gebruikt moet alles in kleine letters geschreven worden.
html hoeft dit niet.

het is maar wat handig is voor je project, gebruik je tables of geen tables, wil je de website later overzetten naar html5 dan gebruik je html 4

ik zou standaard aanleren alle html in kleine letters te schrijven. Dit maakt het in de toekomst makkelijker voor jezelf om html5 te schrijven.

strict wil zeggen : geen hoofdletters gebruiken geen tables toegestaan
transitional mag je tables gebruiken en grootte letters.
 
Laatst bewerkt:
Nee joh, zoals gezegd deze CSS staat al in style.css:
.fotobox I {margin-left:30px; margin-right:0; font:italic 12px/1.2em Verdana, Arial, sans-serif;}

en dit is het HTML4-bestand
<DIV CLASS="fotobox">
<I STYLE="color:#888">Prachtige foto</I><BR>
<IMG SRC="....."><BR>
<I STYLE="color:#888">foto: @ janyep</I>
</DIV>
(<I STYLE="color:#888"> voor uitzonderingen!


Zoals gezegd
B.
Ik maak geen gebruik van reset
* {margin: 0}

reageren alle browsers idem als ik
margin-left:30px; margin-right:0;
verander in:
margin:0 0 0 30px;
dit betrof .fotobox I

Ik weet het: grote letters in HTML is niet handig. Moet anders maar nu even geen prioriteit.
Geen tables in strict: wist ik niet en nu ben ik mooi gewaarschuwd!

Nogmaals dank,
janyep
 
Even een correctie: <table>'s zijn wel in de Strict-doctypes toegestaan (zowel bij html4.01 als bij xhtml1.0), evenals in de Transitional varianten.
  • In de Strict-varianten zijn de D (Deprecated) elementen/attributen niet toegestaan, maar de <table> komt niet in het lijstje voor. Zie de elementen-lijst van de html-specificatie.
Voorbeelden:
Table's mogen dus altijd qua html-code.
Iets anders is, dat het zwaar wordt afgeraden om table's voor lay-out te gebruiken. Dat kan stukken beter met css. Maar soms zijn er tabellarische gegevens (bv. opgehaald uit een database), die juist wel in een tabel moeten komen.

Met vriendelijke groet,
CSShunter
 
ah :) ik meende dat dat juist niet mocht als je strict gebruikte als doctype.
Als ik het dus goed begrijp zijn met een transitional doctype deze deprecated elementen/attributen wel weer toegestaan

paar dingetjes snap ik nog niet
waar gaat deze lijst vanuit ? de quirksmode van de browser ? van welke doctype ?

Empty wat oud dit in ? zoiets als <div id="naam">empty?</div>
Loose DTD (Doctype Defenition) wat houd dit in ?

alvast bedankt :)
 
Laatst bewerkt:
Misschien had ik het niet moeten zeggen, dan wat minder kans op tabellen-voor-opmaak. ;)

Maar er staat geloof ik nog deze vraag:
reageren alle browsers idem als ik
margin-left: 30px; margin-right: 0;
verander in:
margin: 0 0 0 30px;
Met deze verkorte notatie staat er in deze volgorde: (margin-) top=0, right=0, bottom=0, left=30px.
  • Bruggetje voor de ezel: het is altijd bovenaan beginnen, en met de klok mee draaien.
Hier is dus toegevoegd dat de margin-top en de margin-bottom ook nul moeten zijn.
Nu is de complete set voor alle margins opgegeven, en dat moeten dan alle browsers op dezelfde manier vertonen.

Met vriendelijke groet,
CSShunter

[edit]O, kruispost met intussen gewijzigde reactie hierboven. Wordt vervolgd!
[/edit]
 
Laatst bewerkt:
Altijd Strict Doctype ...

Wel, het verhaal van de Doctypes en de Quirksmode is een lang verhaal, dat alles te maken heeft met de geschiedenis van html en css, en ook niet in het minst met de eigenwijzigheid van de browsers in het verleden.
Ik zal proberen het kort samen te vatten. ;)

In den beginne...
... was er html bedacht: een code om vrijwel pure tekst-bestanden (zoals in Kladblok) via internet van de ene naar de andere computer te krijgen. De opmaak was erg beperkt: koppen <h1>, <h2> enz., alinea's <p> en nog een paar dingen.
Met de komst van grafische weergave van Operating Systems en browsers ontstond er behoefte om "mooiere opmaak" te produceren. Aan de html werden zaken als <center> en de eigenschap align="right" toegevoegd.
De verschillende browsers (die toen een browseroorlog uitvochten) streden om de eer om er het mooiste van te maken. Dat deden ze allemaal op hun eigen manier, want er waren nog geen standaarden afgesproken...

Later ...
... begonnen er standaarden te komen en CSS werd uitgevonden om de opmaak geheel van de html te scheiden. Maar lang niet alle browsers hielden zich daaraan; met Internet Explorer als duister voorbeeld. De browsers hadden "quirks" (fratsen), en als geen Doctype was opgegeven (of er iets voorafgaand aan het DOCtype in de pagina stond) gingen de browsers over naar de Quirksmode: waarin ze hun eigen hobby's konden uitleven, want documenten met een ordentelijk Doctype konden ze niet goed renderen.

Toen ...
... werd er in december 1999 een nieuwe standaard voor html uitgeroepen: html4.01. Daarbij werden een aantal tags (elementen) en eigenschappen (binnen de elementen) "Deprecated" (= achterhaald) verklaard. Dat waren vooral dingen die veel beter met css geregeld konden worden. Bijvoorbeeld de <center>-tag en de align="...", en niet te vergeten de <font>-tag met al z'n verschillende eigenschappen.
In het Strict Doctype mochten deze dingen niet meer: verbannen naar het rijk der vergetelheid.
Maar om oude, bestaande websites (die wel op andere punten aan de strict-standaarden voldeden) niet in één klap invalid html te verklaren, werd een overgangsvorm bedacht: het "Transitional Doctype", ook wel "Loose" (losse vorm) genoemd. Het was uitdrukkelijk niet de bedoeling dat nieuwe websites daarvan gebruik zouden maken!
  • Helaas zijn sinds 1999 nog hele volksstammen het Transitional Doctype gaan misbruiken om hun zonden te bedekken. :confused:
  • En helaas gingen html-editor programma's ook lang niet altijd over tot het afschaffen van de Transitional-variant: die waren gebouwd op de <font>-tags e.d., en dat liet men voor het gemak maar zo. :confused:
Nu ...
... ruim 10 jaar later, zou elke zich respecterende website toch wel het Strict Doctype moeten hanteren. Dat is ook het voorschrift van de Webrichtlijnen: "Voor nieuwe websites is de Strict variant verplicht" (zie Richtlijn R-pd.2.4).
En voor zover ik weet is de Quirksmode al helemaal niet meer nodig, want sinds de tijd van IE5 en eerder is er het nodige veranderd.

Tot zover in het kort; maar er valt nog veel meer over te zeggen!
Meer info bijvoorbeeld op:
Nu de vragen uit nr.#7 hierboven.
Eerst nog even de lijsten waarop officieel staat aangegeven wat Deprecated is aan elementen en attributen: die niet meer gebruikt zou mogen worden:
waar gaat deze lijst vanuit ? de quirksmode van de browser ? van welke doctype ?
Beide lijsten gaan uit van het "normale" geval: een Strict doctype. Dan staat er in het kolommetje Depr. niets ingevuld, en in het kolommetje DTD (DocTypeDefinition) ook niets ingevuld - en dan mag het betreffende element of de betreffende eigenschap gewoon gebruikt worden.
Staat er in de kolom Depr. echter een D, dan is het element of de eigenschap Deprecated, en staat in de kolom DTD een L - d.w.z. in de Strict variant is het nog steeds invalid html, maar met een (Loose =) Transitional Doctype is het nog toegestaan.

Empty: wat houdt dit in ? Zoiets als <div id="naam">empty?</div>
Nee, het gaat hier om een "leeg" element zoals een <hr> of een <br>: een horizontale lijn of een verplichte nieuwe regel heeft geen inhoud in dat element zitten (<hr>piep</hr> of <br>piep</br> bestaat niet). Hetzelfde geldt voor de <meta> elementen in de <head>: deze hebben wel eigenschappen (binnen de tag zelf), maar geen inhoud.
Omdat elk element in xhtml ook een afsluit-aanduiding nodig heeft om "well-formed" te zijn (elk begin moet een eind hebben) wordt ingeval van xhtml de afsluiting geregeld in het element zelf, met de bekende eind-slash: <hr />, <br />, <meta .... />.

Loose DTD (Doctype Definition) wat houd dit in ?
Dat is dus hetzelfde als Transitional.

Mijn conclusie
Wat in 1999 al achterhaald was, is in 2011 (enz.) ook achterhaald! :d

Met vriendelijke groet,
CSShunter

PS:
Nog een Helaas:
 
Laatst bewerkt:
weer vriendelijk bedankt voor deze uitleg:) het is mij compleet helder
 
Okidoki. Intussen nog een PS'je toegevoegd over dwaalspoor-cursussen en -tutorials.

Ook niet te versmaden: leraren die het fout aanleren aan hele schoolklassen tegelijk; daar heb ik hier op het forum ook aardige voorbeelden van voorbij zien komen. :rolleyes:

Groetjes,
CSShunter
 
inderdaad ze zeggen wel eens html en css is niet zo moeilijk :D maar er zit een heel verschil tussen mensen die het goed kunnen of de hobbyisten :) goed HTML& CSS is een kunst opzich
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan