Hemsida » Kodning » CSS Shorthand vs Longhand - När ska du använda det

    CSS Shorthand vs Longhand - När ska du använda det

    Shorthand och Longhand - en är koncis och den andra exakta. Man kom till existens ur önskan om korthet, medan den andra står fast för att bevara tydligheten. Hur som helst har de sina syften, fördelar och nackdelar, så att säga.

    Det här inlägget kommer att skina lite ljus på både CSS-kortfattade noteringar och longhand-noteringar, medan man sluter vad som är bäst att använda för vilken situation.

    Vad är Shorthand Property?

    Shorthand egendom är en egenskap som tar värdena för andra uppsättningar av CSS-egenskaper. Till exempel kan vi tilldela ett värde för gränsbredd, border-style och gräns färg använda gräns egendom ensam.

    I grund och botten,

     gräns: 1px solid blå; 

    är det samma som:

     kantbredd: 1px; gränsstil: fast; kantfärg: blå;

    Med detta behöver vi inte förklara enskilda egendomsvärden separat (vilket är överflödigt, tid- och rymdkrävande). Det återställer också de bortlämnade egenskaperna i deklarationen, något som kan utnyttjas.

    Hur fungerar det?

    Som tidigare nämnts skriver vi en uppsättning andra fastighetsvärden i stenografi, ordern spelar ingen roll om alla fastighetsvärden i stenografi är av olika slag som i gräns. För fastigheter med liknande typer av värden liknande marginal, order spelar roll. Om du är osäker, kom ihåg medurs!

    Nu, vad händer om vi saknar en fastighet eller två i deklarationen? I ovanstående exempel, låt oss säga att vi ignoreras border-style.

     gräns: 1px blå; 

    Vi kommer inte att kunna se gränserna längre, inte för att shorthandegenskapen inte fungerade men för att border-style som vi släppte ut, har standardvärdet ingen. Det här är hur den shorthandegenskapen gjordes.

     gräns: 1px ingen blå; 

    Låt oss nu släppa 1px för gränsbredd och behåll de andra två:

     gräns: fast blå;

    Vi kan se gränserna, bara med en tjockare bredd och det beror på gränsbredd egenskapen har standardvärdet medium.

     gräns: medium solid blå; 

    Detta avslutar det för oss som när ett fastighetsvärde är utelämnat i en kortfattad deklaration, den egenskapen tar sitt standardvärde (även om det måste åsidosätta något tidigare värde som är tilldelat för detsamma).

    Om det är kantbredd: 1px; för ett element någonstans tidigare gräns: fast blå; för samma sak kommer gränsen bredden att vara medium (standardvärdet), inte 1px.

    En annan sak att nämna är det Vi kan inte använda värden som ärva, första eller oskränkt, som är tillgängliga för alla CSS egenskaper, i kortfattad notering. Om vi ​​använder dem kan webbläsaren inte veta exakt vilken egenskap det värde ska representera i stenografi - hela förklaringen kommer att släppas.

    De Allt fast egendom

    Det finns en CSS shorthand egenskap som kan Ställ in värdet för alla CSS-egenskaper. CSS-breda värden ärva, första och oskränkt gäller för alla fastigheter och därför är dessa de enda värden som accepteras av Allt fast egendom.

     div allt: initial

    Detta kommer att göra div dela av alla de CSS-egenskapsvärden som den hade och återställ standardvärdet i var och en av dem.

    ⚠ varning

    Låt oss inte missbruka Allt fast egendom. Behovet av det kan uppstå endast under mycket sällsynta omständigheter, när vi inte kan röra någon tidigare CSS-kod på ett element som vi önskar att tillämpa den här egenskapen på.

    Notera: CSS-egenskapen Färg tar hexadecimalt värde med stenografi notation om de två siffrorna i hex-värdet i varje färgkanal är desamma. Till exempel, bakgrund: # 445599; är samma som bakgrund: # 459;.

    Vad är longhand egendom?

    De enskilda egenskaper som kan ingå i en stenografi egendom kallas longhand egenskaper. Några exempel är; bakgrundsbild, margin-vänster, animering-varaktighet, etc.

    Varför ska vi använda den?

    Även om shorthandalternativ är praktiska har de en nackdel. Kom ihåg i början vi såg hur stenografi överstyrar alla utelämnade egenskaper med sina standardvärden? Detta kan vara ett problem om återställningen inte är önskvärd.

    Ta font shorthand egendom till exempel. Låt oss använda den i h4 element (som har en standard webbläsarstil font-weight: bold)

     typsnitt: 20px "kurir ny"; 

    I ovanstående stenkoder finns inget värde för font-weight egendom, därav font-weight: bold(webbläsarens standardstil) överstiger standardvärdet font-weight: normal orsakar h4 element för att förlora sin djärva stil, vilket kanske inte har varit avsedd.

    Så, för ovanstående exempel, enkla två longhand egenskaper, textstorlek och typsnittsfamilj är perfekt.

    Använd också stenografi för Att tilldela endast ett eller två fastighetsvärden är inte särskilt användbart. Varför ge webbläsaren extra arbete för att tolka varje enskild egendom (inklusive de vänstra) i stenografi, när bara en behövs för att arbeta?

    Produktion åt sidan, under utvecklingsfasen, kan vissa utvecklare (särskilt nybörjare) finna att använda longhand notering mycket lättare att arbeta med än stenografi för bättre läsbarhet och tydlighet.

    Slutsats

    Idag med möjlighet till snabb kodning (med hjälp av verktyg som Emmet) och minifiering behövs inte en hög tillförlitlighet på stenografi, men samtidigt är det mycket logiskt att skriva marginal: 0;. Det sammanhang där vi föredrar våra CSS-noteringar kommer att variera och allt vi behöver göra är att räkna ut vilken notation som fungerar bäst för oss och när.