2009 27 juli 2009

Bruker stilsett: Mystery marginer i Google Chrome

I går, som alle andre "Groundhog Day", ble jeg jobber med noen CSS / tableless layouter. Alt gikk bra i 7 IE, FF 3 og Chrome, inntill Plutselig så jeg noen un-ignorable marginer sett bare i Google Chrome. Selv om veldig merkelig og worring, var det noen nye bug / problem som jeg hadde risikere å møte, var det endelig litt krydder i mitt verdslig arbeid. Trist (men fin) det ble fikset i løpet av noen få minutter av sonden ...

I utgangspunktet så det ut som Google Chrome ignorert min CSS Tilbakestiller (margin: 0px). Det faktisk ble forårsaket av user agent stilarket (-WebKit-padding-start: 40px). Så løsningen var å nullstille denne stilen ved å sette padding: 0 de misbehaving elementene.
En god måte å unngå dette problemet skjer til enhver element er å bruke en global CSS Rest som følger

* {Margin: 0; padding: 0;}

Hva er User Agent Style Sheets (spesifikasjon)?
Følgende utdrag er hentet fra http://meiert.com/en/blog/20070922/user-agent-style-sheets/ , følg linken for å lese mer om User Agent Style Sheets

CSS 1 introduserer ideen ved å si at hver User Agent (UA, ofte en "nettleser" eller "web klient ') vil ha en standard stilark som presenterer dokumenter i en rimelig - men uten tvil verdslig - måte. CSS 2 sier at i samsvar nettlesarar må bruke en standard stilark (eller oppføre seg som om de gjorde) og at en bruker agent standard stilark bør presentere elementene i dokumentet språket på en måte som tilfredsstiller generelle presentasjon forventninger til dokumentet språk; CSS 3 er trolig det samme sinn.

Siden CSS spesifikasjonene la det opp til implementeringer om å bruke en "ekte" style sheet til standard visning eller ikke, er det ikke forbausende at du ikke finner en standard stilark i hvert nettleserens installasjonsmappen. I motsetning til Microsofts Internet Explorer, samt Opera, for eksempel (og så vidt jeg vet), Gecko nettlesere som Firefox og Netscape Navigator (se etter "html.css"), men også Konqueror gjør det ganske enkelt å forstå deres standard styling.


2008 August 2008 2

Stille DOCTYPE i XSL

Forrige uke jeg opprettet en progessive HTML / CSS layout for en klient, testet det i IE6, IE7 og FF 3, virket helt greit ... helt til! oppsettet gikk videre nedover manufacting syklus. Det mislyktes. Side layoutelementer bare gikk over alt da HTML layouten ble omgjort til XSL og XML brukt til det ... Bummer!

Kunne ikke sove ok i løpet av helgen, i påvente av mandag morgen, da jeg må fikse dette SH **. Men nå har en litt experince i å håndtere denne type situasjoner (leser quirks, mener jeg), visste jeg at det hadde å gjøre med annet enn DOCTYPE .... og det var ...

The Problem:
Du ønsker kontroll over DOCTYPE, siden transformasjon vil inneholde en standard DOCTYPE eksplisitt, og du layout vil være ute for en kaste.

The Solution:
XSLT specs gir utgang metoder for å sette en DOCTYPE av choise. Også for oss UI utviklere, ville temaer av interesse være HTML-utdata metoder og XML utgang metoder .

Vel! før du blir lei, her er fix.

For eksempel, hvis du hadde følgende DOCTYPE i din HTML-versjon:. -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Så i XSL ville du ha følgende: -

<xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/loose.dtd" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes" />

og slutt! gjør at XSLT utgang lystrer DOCTYPE du har valgt.


NDK hjem | Uttrykke IT | Uttrykke Palate | Uttrykke Penmenship | Uttrykke Awe | uttrykke meg