2008 24 apr 2008

Best Practices: Arbeta med CSS

Sätt Stylesheets på Top

Om du vill ha en sida att ladda successivt, det vill säga vi vill att webbläsaren ska visa allt innehåll har så snart som möjligt, placera CSS längst upp på sidan i dokumentet HEAD. Detta gör sidor verkar vara lastning snabbare, eftersom detta underlättar progressiva avbild av sidan. Detta är särskilt viktigt för sidor med mycket innehåll och för användare på långsamma Internet-anslutningar.

Det är ett dokumenterat faktum att för att förbättra användarupplevelsen är det viktigt att ge resultatindikatorer och visuella återkopplingar. För att slippa att rita delar av sidan, i fallet om deras stilar förändring, vissa webbläsare, inklusive IE, blockerar återgivning av sidan tills CSS är fullastad. På grund av detta, att användaren är får se en tom vit sida.

De W3 HTML-specifikation "anges också att CSS ska jag ta med i HEAD delen av HTML-sidan. at the bottom of the page, so it's best not to use it. Observera också att, i IE @import fungerar på samma sätt som med <link> längst ner på sidan, så det är bäst att inte använda den.

Undvik att använda Browser Särdrag

Filter: Användning av filter ökar minnet konsumtion och tillämpas per element, inte per bild, så problemet multipliceras. Dessutom Filter är IE Proprietary, kommer därför inte att fungera som avsett i andra webbläsare. Om du vill ha genomskinliga eller övertoning bakgrunder, använd 1Pixel med bilder.
Uttryck: CSS uttryck är en trevlig funktion att ha i CSS, men fortfarande är IE särdrag. Det är också viktigt att notera att dessa uttryck är utvärderas när sidan återges och storlek, rullas och även när användaren flyttar muspekaren över sidan. Självfallet kan detta påverka prestanda på din sida. Därmed i enkla ord, undvik att använda CSS uttryck, om du inte känner sina för "väger mer än cons"

Externalisera man CSS

Använda extern CSS kommer att resultera i snabbare laddning av sidor eftersom JavaScript och CSS-filer cachelagras av webbläsaren. Inline CSS i HTML-dokument blir laddas varje gång HTML-dokumentet begärs. Detta kan faktiskt minska antalet HTTP gjort förfrågningar, men det senare ökar storleken på HTML-dokumentet. Extern CSS cachelagras av webbläsaren, storleken på HTML-dokumentet minskar utan att öka antalet HTTP-förfrågningar.

Observera att om användarna på din webbplats har flera sidvisningar per session och många av dina sidor återanvända samma skript och stilmallar, finns det en större risk nytta cachade externa filer.

Packa din CSS-fil

Förpackning eller knastrande din CSS är det praxis att ta bort onödiga tecken från koden för att minska dess storlek och därmed förbättra laddningstider.

CSS kan jag knastrade genom att ta bort alla kommentarer och eventuella oönskade tecken som vita utrymmen, nyradstecken etc.


2008 12 april 2008

CSS Cross Browser Minimihöjd Hack

Inlägg IE 6 har MSIE varit vänlig nog att vi UI utvecklare genom att lägga till några fler CSS-egenskaper standard för de flesta andra vanliga webbläsare. En sådan användbar egenskap i "min-höjd". Ganska rakt fram fastigheter som behöver ingen lång omständlig förklaring. När en min-höjd för en division är inställd, det alltid behåller den uppsättningen höjd när det innehåll som husen upptar mindre än den kan hålla och allt (till skillnad från plain vanilla "höjd" egendom) skalor eller CSS ord, beter det som en delningen vilkas "höjd" är inställd på "auto" ...

För vissa av oss stackars utvecklare som fortfarande krävs för att koda CSS som också måste arbeta i IE6, kan un-tillgängligheten av "min-höjd", visar en show propp någon gång ... inte apparaten förtvivlan.

Lyckligtvis har vi tillräckligt med egenheter i IE, att vi skulle använda för att reda fördel och hacka oss igenom för att nå vårt mål ... dvs göra en DIVISION division som om den min-höjd i IE6

Lösning 1: Använda understreck Hack [ ... Läs mer ]

.box1 {
min-height: 200px;
height:auto;
_height:200px;
}

HTML: -
<div class="box1">Some dynamic content with variable height ...</div>


Lösning 2: Använda CSS attribut Selector Hack

.box2 {
min-height:200px;
height:200px;
}
div[class] .box2 {
height:auto;
}

HTML: -
<div class="someclass">
<div class="box2 common">Some dynamic content with variable height ...</div>
</div>

CSS attribut Selector Hack drar fördel av det faktum webbläsarna tidigare tha IE6 ignoreras en atribute-väljare. Observera kravet på en annan behållare division med class = "someclass". Bara presense i klassen attributet för denna uppdelning, åsidosätter höjden tillbaka till auto för Opera, Mozilla och MSIE7 och senare. IE6, som inte stöder atribute väljare, ignorerar det.

Visa demo av min höjd hack för IE6



2008 4 April, 2008

Arbeta med XML-nod attribut i XSLT

Om du använder XML och XSL, då kanske du har stött på en tid, när man har att leka med attribut och värderingar XML noder i dig XSL. De är massor av platser med långa omständlig info om detta, men ingen jag hittade var kortfattade och precisa ... Detta är inte XML / XSL tutorial, men mitt försök att sätta-ihop några slags fusk lista ...

Provet XML att vi kommer att arbeta med ser ut så här ...

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>
</food>

Så låter börja omvandla våra ovan XML med XSL

Exempel 1: Visar värdet vid en vald attribut

<xsl:value-of select="/food/fruits/item[@name='orange']" /><br />
to get more information about <a href="{/food/fruits/item[@name='orange']/@moreinfo}" target="new" ><xsl:value-of select="/food/fruits/item[@name='orange']/@name" /> </a>

HTML-resultat kommer att se ut

Orange is the color and rich in vitamin C,
to get more information about <a href="http://www.orange.com" target="new">


Exempel 2: Looping igenom och visa alla XML attributnamn och deras värderingar

<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>,
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>

HTML-resultat kommer att se ut


attribute name : name, attribute value : mango
attribute name : moreinfo, attribute value : http://www.mango.com
attribute name : name, attribute value : banana
attribute name : moreinfo, attribute value : http://www.banana.com
attribute name : name, attribute value : orange
attribute name : moreinfo, attribute value : http://www.orange.com
attribute name : name, attribute value : Papaya
attribute name : moreinfo, attribute value : http://www.papaya.com


Ladda ner alla dessa filer här (245 nedladdningar)



Titta på detta utrymme, jag håller uppdatera detta med nya rön ...


NDK hem | Att uttrycka IT | uttrycka Palate | uttrycka Penmenship | uttrycka Awe | uttrycka mig