Som standard använder blockelement autowidth. Detta innebär att elementet kommer att sträckas horisontellt exakt lika mycket som det finns ledigt utrymme. Standardhöjden för blockelement ställs in automatiskt, dvs. Webbläsaren sträcker ut innehållsområdet vertikalt så att allt innehåll visas. För att ställa in anpassade mått för ett elements innehållsområde kan du använda egenskaperna bredd och höjd.
CSS-egenskapen width låter dig ställa in bredden på elementets innehållsområde, och egenskapen height låter dig ställa in höjden på innehållsområdet:
Observera att egenskaperna för bredd och höjd endast bestämmer storleken på innehållsområdet; för att beräkna den totala bredden på ett blockelement måste du lägga till bredden på innehållsområdet, vänster och höger utfyllnad och bredden på vänster och höger gräns. Detsamma gäller för elementets totala höjd, endast alla värden beräknas vertikalt:
För det här stycket kommer vi bara att ställa in bredd och höjd.
Detta stycke innehåller, förutom bredd och höjd, en inre stoppning, en bård och en yttre stoppning.
Prova "Exemplet visar tydligt att det andra elementet tar mer plats än det första. Om vi beräknar med hjälp av vår formel är måtten i det första stycket 150x100 pixlar, och måtten i det andra stycket är:
Totala höjden: | 5 px | + | 10px | + | 100 pixlar | + | 10px | + | 5 px | = 130 pixlar |
topp ram | övre indrag | höjd | lägre indrag | lägre ram |
det vill säga 180x130 pixlar.
Elementspill
När du har bestämt bredden och höjden för ett element, bör du vara uppmärksam på en viktig punkt - innehållet som finns inuti elementet kan överstiga den angivna blockstorleken. I det här fallet kommer en del av innehållet att gå utanför elementets gränser. För att undvika detta obehagliga ögonblick kan du använda CSS-överflödesegenskapen. Overflow-egenskapen talar om för webbläsaren vad den ska göra om innehållet i ett block överskrider dess storlek. Den här egenskapen kan ha ett av fyra värden:
- synlig - standardvärdet som används av webbläsaren. Att ställa in detta värde kommer att ha samma effekt som att inte ställa in överflödesegenskapen.
- scroll - lägger till vertikala och horisontella rullningslister till ett element.
- auto - lägger till rullningslister vid behov.
- hidden - döljer en del av innehållet som sträcker sig utanför blockelementets gränser.
De höjd CSS-egenskapen anger höjden på ett element. Som standard definierar egenskapen höjden på innehållsområdet. Om box-sizing är inställd på border-box bestämmer det istället höjden på kantområdet .
Källan för detta interaktiva exempel lagras i ett GitHub-förråd. Om du vill bidra till projektet med interaktiva exempel, vänligen klona https://github.com/mdn/interactive-examples och skicka oss en pull-förfrågan.
Egenskaperna min-höjd och maxhöjd åsidosätter höjd .
Syntax
/* Nyckelordsvärde */ höjd: auto; /*Värderingar
CSS-datatypen representerar ett avståndsvärde. Längder kan användas i många CSS-egenskaper, såsom bredd, höjd, marginal, utfyllnad, kantbredd, teckenstorlek och textskugga.">Formell syntax
Exempel
HTML
CSS
div ( bredd: 250px; marginal-botten: 5px; kant: 2px fast blå; ) #långare (höjd: 50px; ) #kortare (höjd: 25px; ) #förälder (höjd: 100px; ) #barn (höjd: 50% ; bredd: 75 %;)Resultat
Tillgänglighetsproblem
Se till att element inställda med en höjd inte trunkeras och/eller inte skymmer annat innehåll när sidan zoomas in för att öka textstorleken.
Specifikationer
Specifikation | Status | Kommentar |
---|---|---|
CSS Intrinsic & Extrinsic Sizing Module Nivå 4 |
Redaktörens utkast | |
CSS Intrinsic & Extrinsic Sizing Module Nivå 3 Definitionen av "höjd" i den specifikationen. |
Arbetsutkast | Lade till sökorden max-content , min-content , fit-content. |
CSS-övergångar Definitionen av "höjd" i den specifikationen. |
Arbetsutkast | Listar höjd som animerbar. |
CSS nivå 2 (revision 1) Definitionen av "höjd" i den specifikationen. |
Rekommendation | Lägger till stöd för CSS-datatypen representerar ett avståndsvärde. Längder kan användas i många CSS-egenskaper, såsom bredd, höjd, marginal, utfyllnad, kantbredd, teckenstorlek och textskugga."> |
CSS nivå 1 Definitionen av "höjd" i den specifikationen. |
Rekommendation | Initial definition. |
Ursprungligt värde | bil |
---|---|
Gäller för | alla element utom icke-ersatta inline-element, tabellkolumner och kolumngrupper |
Ärvt | Nej |
Procentandelar | Procentsatsen beräknas med avseende på höjden på den genererade boxens innehållande block. Om höjden på innehållsblocket inte specificeras explicit (dvs. det beror på innehållets höjd), och detta element inte är absolut positionerat, beräknas värdet till auto En procentuell höjd på rotelementet är i förhållande till det initiala innehållande blocket. |
Media | visuell |
Beräknat värde | en procent eller auto eller den absoluta längden |
Animationstyp | en CSS-datatyp interpoleras som reella, flyttal.">längd , CSS-datatyp interpoleras som reella, flyttal.">procent eller calc(); |
Kanonisk ordning | den unika icke-tvetydiga ordningen som definieras av den formella grammatiken |
Webbläsarkompatibilitet
Kompatibilitetstabellen på den här sidan genereras från strukturerad data. Om du vill bidra till datan, kolla in https://github.com/mdn/browser-compat-data och skicka oss en pull-förfrågan.
Uppdatera kompatibilitetsdata på GitHub
Skrivbord | Mobil | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Krom | Kant | Firefox | Internet Explorer | Opera | Safari | Android webbvy | Chrome för Android | Firefox för Android | Opera för Android | Safari på iOS | Samsung Internet | |
höjd | Chrome Fullständigt stöd 1 | Edge Fullständigt stöd 12 | Firefox Fullständigt stöd 1 | IE Fullständigt stöd 4 | Opera Fullständigt stöd 7 | Safari Fullständigt stöd 1 | WebView Android Fullständigt stöd 1 | Chrome Android Fullständigt stöd 18 | Firefox Android Fullständigt stöd 4 | Opera Android Fullt stöd 10.1 | Safari iOS Fullständigt stöd 1 | Samsung Internet Android Fullt stöd 1.0 |
passform | Chrome Fullt stöd 46 | Edge Inget stöd Nej | Firefox Inget stöd Nej | IE Inget stöd Nej | Opera Fullständigt stöd 33 | Safari Fullständigt stöd 11 Fullständigt stöd 11 Fullständigt stöd 9 Prefix Prefix | Opera Android? | Safari iOS Fullständigt stöd 11 Fullständigt stöd 11 Fullständigt stöd 9 Prefix Prefix Implementerad med leverantörsprefixet: -webkit- | ||||
max-innehåll | Chrome Fullt stöd 46 | Edge Inget stöd Nej | Prefix Prefix | IE Inget stöd Nej | Opera Fullständigt stöd 44 | Safari Fullständigt stöd 11 | WebView Android Fullt stöd 46 | Chrome Android Fullständigt stöd 46 | Prefix Prefix Implementerad med leverantörsprefixet: -moz- | Samsung Internet Android Fullt stöd 5.0 | ||
min-innehåll | Chrome Fullt stöd 46 | Edge Inget stöd Nej | Firefox Fullt stöd 66 Fullt stöd 66 Fullt stöd 3 Prefix Prefix Implementerad med leverantörsprefixet: -moz- | IE Inget stöd Nej | Opera Fullständigt stöd 44 | Safari Fullständigt stöd 11 | WebView Android Fullt stöd 46 | Chrome Android Fullständigt stöd 46 | Firefox Android Fullständigt stöd 66 Fullt stöd 66 Fullt stöd 4 Prefix Prefix Implementerad med leverantörsprefixet: -moz- | Opera Android Fullt stöd 43 | Safari iOS Fullständigt stöd 11 | Samsung Internet Android Fullt stöd 5.0 |
sträcka | Chrome Fullt stöd 28 Webkit-fill-tillgänglig">Alternativt namn Fullt stöd 28Webkit-fill-tillgänglig">Alternativt namn Webkit-fill-tillgänglig">Alternativt namn | Edge Inget stöd Nej | Firefox Inget stöd Nej | IE Inget stöd Nej | Opera Fullständigt stöd 15 Webkit-fill-tillgänglig">Alternativt namn Fullt stöd 15Webkit-fill-tillgänglig">Alternativt namn Webkit-fill-tillgänglig">Alternativt namn Använder det icke-standardiserade namnet: -webkit-fill-available | Safari Fullständigt stöd 9 Webkit-fill-tillgänglig">Alternativt namn Fullt stöd 9Webkit-fill-tillgänglig">Alternativt namn Webkit-fill-tillgänglig">Alternativt namn Använder det icke-standardiserade namnet: -webkit-fill-available | WebView Android Fullt stöd 4.4 Webkit-fill-tillgänglig">Alternativt namn Fullständigt stöd 4.4Webkit-fill-tillgänglig">Alternativt namn Webkit-fill-tillgänglig">Alternativt namn Använder det icke-standardiserade namnet: -webkit-fill-available | Chrome Android Fullständigt stöd 28 Webkit-fill-tillgänglig">Alternativt namn Fullt stöd 28Webkit-fill-tillgänglig">Alternativt namn Webkit-fill-tillgänglig">Alternativt namn Använder det icke-standardiserade namnet: -webkit-fill-available | Firefox Android Inget stöd Nej | Opera Android? | Safari iOS Fullständigt stöd 9 Webkit-fill-tillgänglig">Alternativt namn Fullt stöd 9Webkit-fill-tillgänglig">Alternativt namn Webkit-fill-tillgänglig">Alternativt namn Använder det icke-standardiserade namnet: -webkit-fill-available | Samsung Internet Android Fullt stöd 5.0 Webkit-fill-tillgänglig">Alternativt namn Fullt stöd 5.0Webkit-fill-tillgänglig">Alternativt namn Webkit-fill-tillgänglig">Alternativt namn Använder det icke-standardiserade namnet: -webkit-fill-available |
Legend
Fullt stöd Fullt stöd Inget stöd Inget stöd Kompatibilitet okänd Kompatibilitet okänd Använder ett icke-standardnamn. Använder ett icke-standardnamn. Kräver ett leverantörsprefix eller ett annat namn för användning. Kräver ett leverantörsprefix eller ett annat namn för användning.I den här artikeln kommer vi att titta på hur du i CSS kan ställa in höjden på ett block som en procentandel av dess bredd. Låt oss överväga användningen av denna teknik med hjälp av exemplet att skapa en Bootstrap-karusell (skjutreglage) från bilder av olika storlekar.
Skapa ett block med en höjd som är en viss procent av dess bredd
- Skapa en HTML-struktur med 2 block:
- Lägg till följande CSS-kod på sidan: .item-responsive ( position: relativ; /* relativ positionering */ ) .item-responsive:before ( display: block; /* visa elementet som ett block */ content: "" ; /* innehåll pseudo-element */ bredd: 100%; /* elementets bredd */ ) .item-16by9 ( padding-top: 56,25%; /* (9:16)*100% */ ) .item-responsive >.content ( position: absolut; /* elementets absoluta position */ /* elementets position */ topp: 0; vänster: 0; höger: 0; botten: 0; ) /* Om nödvändigt (för block som har dessa klasser) */ .item -4by3 ( padding-top: 75%; /* (3:4)*100% */ ) .item-2by1 ( padding-top: 50%; /* (1:2) *100% */ ) .item -1by1 (padding-top: 100%; /* (1:1)*100% */ )
Använd tekniken ovan för att skapa en Bootstrap-karusell
Om du inte är bekant med Bootstrap och vill veta vad det är kan du använda artikeln Introduktion till Bootstrap.
Låt oss titta på ett exempel där vi kommer att använda ovanstående HTML-struktur och CSS-kod för att visa Bootstrap-karusellbilder.
Vi kommer att använda följande filer som bilder:
- carousel_1.jpg (bredd = 736px, höjd = 552px, bildförhållande (höjd till bredd) = 1,33);
- carousel_2.jpg (bredd = 1155px, höjd = 1280px, bildförhållande (höjd till bredd) = 0,9);
- carousel_3.jpg (bredd = 1846px, höjd = 1028px, bildförhållande (höjd till bredd) = 1,8);
- carousel_4.jpg (bredd = 1140px, höjd = 550px, bildförhållande (höjd till bredd) = 2,07);
- carousel_5.jpg (bredd = 800px, höjd = 600px, bildförhållande (höjd till bredd) = 1,33);
Vi kommer att ställa in bilderna som bakgrund. Detta gör att du kan använda 3 bilder med olika bildförhållande i din Bootstrap-karusell.
HTML-uppmärkning av karusellen:
Karusell CSS-kod:
Item-responsive ( position: relativ; /* relativ positionering */ ) .item-responsive:before ( display: block; /* visa elementet som ett block */ innehåll: ""; /* pseudo-element innehåll */ bredd : 100%; /* elementbredd */ ) .item-16by9 ( padding-top: 56,25%; /* (9:16)*100% */ ) .item-responsive>.content (position: absolut; /* elementets absoluta position * / /* elementposition */ topp: 0; vänster: 0; höger: 0; botten: 0; bakgrundsstorlek: omslag !viktigt; )
De flesta element i HTML ges vanligtvis en specifik höjd och bredd. Att ställa in dessa parametrar i CSS är ganska enkelt och som ett resultat praktiskt. För detta används de höjd- och breddegenskaper som du redan känner till. Men i den här lektionen kommer vi också att prata om icke-fixerad bredd och höjd eller gummi, det vill säga beroende på själva fönstrets bredd. Låt oss börja)
bredd
Den här egenskapen anger en specifik bredd för HTML-elementet. Värdet kan anges i pixlar, procentsatser (andra värden används mer sällan).Mitt kvarter(
bredd: 400px; /* bredd 400 pixlar */
}
Eller i procent:
MyBlockPercent50 (
bredd: 50%; /* bredd 50 % av blockets eller fönstrets bredd (om inte inuti ett block med fast bredd) */
färg: #f1f1f1; /* ljusgrå block */
}
Följaktligen får vi ett block som alltid kommer att vara halva bredden på föräldern.
Nu om den mest intressanta delen. width har parametrar som anger maximal eller minsta bredd. Dessa är egenskaperna för min-bredd respektive maxbredd. Du kan också ange värden för dem i pixlar, procent och andra värden. Dessa egenskaper är grunden för att skapa flytande och adaptiva mönster ().
Exempel på responsiv design. Titta, ändra storlek på webbläsarfönstret:
Självklart gick jag före mig själv. Men du måste förstå vad som behövs och varför. Ja, och rör det trevliga resultatet)
Som du redan förstått kan du med hjälp av dessa egenskaper mer flexibelt hantera element på sidan utan att förvränga innehållet. Hur det fungerar? Låt oss titta på koden.
Blockera (
max-bredd: 800px;
bakgrundsfärg: #f1f1f1; /* ljusgrå block */
stoppning: 20px;
}
Ett block med dessa egenskaper med en överordnad bredd på 200 pixlar kommer att ta motsvarande värde, men om det överordnade blocket är större, till exempel 1000 pixlar, kommer det redan att ta sin maximala bredd, det vill säga 800 pixlar. Det vill säga, det kommer att öka tills bredden på det överordnade blocket är 801 pixlar eller mer. Vidare kommer blockblocket alltid att ha sin maximalt tillåtna bredd på 800 pixlar.
höjd
Denna egenskap är ansvarig för elementets höjd. Värdena som används är desamma som är lämpliga för CSS. Oftast samma procenttal och pixlar.Info (
höjd: 200px; /* blockhöjd kommer att vara 200 pixlar */
stoppning: 10px; /* upprepa om indrag inuti blocket =) */
}
Vilket är logiskt, för höjd kan du ange minsta och maximala höjdvärden för ett element med egenskaperna min-höjd och maxhöjd.
Info (
maxhöjd: 360px; /* maximal blockhöjd */
min-höjd: 120px; /* minsta blockhöjd */
}
Som du kan se kan och bör egenskaper ofta användas i par.
Eller kombinera värden:
Innehåll (
höjd: 100%; /* höjd kommer alltid att vara 100 % */
bredd: 760px; /* men bredden är fast 760 pixlar */
}
Om du har några frågor, skriv i kommentarerna!
Tack för din uppmärksamhet! Lycka till med layouten!)
För att ett objekt ska få en specifik bredd och höjd finns det två egenskaper i CSS - bredd respektive höjd. Med deras hjälp kan du ställa in fasta storlekar för element, vare sig det är en sidofält, bild, tabell eller vilket block som helst.
Funktioner för att beräkna bredd och höjd
Du kan använda valfri längdenhet i CSS för att definiera bredden eller höjden på ett objekt. Pixlar är lättast att förstå. Om du använder procentnotation, kom ihåg att bredden på objektet beror på bredden på dess överordnade. Om det inte finns någon, beräknas elementets bredd baserat på bredden på webbläsarfönstret (om användaren ändrar fönstrets bredd kommer breddvärdet att beräknas om).
Du kan också använda em-enheten som breddvärde, vilket är ungefär detsamma som teckenstorleken för texten, men bara i konventionella enheter. Till exempel ställer du in teckensnittsstorleken till 24px. Då blir 1em för detta element lika med 24px, och om du ställer in bredd: 2em så blir bredden 2x24px = 48 pixlar. Om teckensnittsstorleken inte är inställd kommer den att ärvas.
Höjd, angiven i procent, beräknas på samma sätt som bredd, men beräkningen baseras på höjden på det överordnade elementet snarare än dess bredd. Om det inte finns någon förälder kommer höjden att bero på höjden på webbläsarfönstret.
Det underordnade elementets procentuella bredd och höjd beräknas baserat på det överordnade elementets mått
Vad ingår i bredd och höjd
Det är värt att komma ihåg omedelbart att egenskaperna för bredd och höjd har en egenhet - de inkluderar inte värdena för marginal, stoppning och kant. Värdet du anger för bredd/höjd kommer bara att indikera bredden/höjden på elementets innehållsområde.
Så för att till exempel kunna beräkna den faktiska bredden på ett element (utrymmet som det faktiskt kommer att uppta på skärmen), krävs lite aritmetik. Den faktiska bredden är summan av värden som bredd, utfyllnad, ram och marginal. Kom ihåg att vi tidigare tittat på hur CSS-boxmodellen ser ut.
För att befästa kunskapen kommer vi att visa ett exempel. Låt oss säga att du har ett element med den här stilen:
Bredd: 200px; marginal-vänster: 15px; marginal-höger: 15px; padding-vänster: 10px; kant-vänster: 3px fast #333;
För att beräkna den faktiska bredden på elementet, utför tillägget:
bredd + marginal-vänster + marginal-höger + utfyllnad-vänster + kant-vänster = 200px + 15px + 15px + 10px + 3px = 243px (faktisk bredd)
Egenskapen höjd kan vara användbar om du behöver kontrollera exakt, till exempel, höjden på en bild. Men om behållaren kommer att innehålla text eller annat innehåll som kan variera i höjd, rekommenderas det starkt inte att ställa in en fast höjd för behållaren, eftersom en sådan layout kan leda till ett oväntat resultat - innehållet kommer att visas överst av annat innehåll.
Istället för en fast höjd, använd höjd: auto - denna post betyder att höjden på objektet kommer att beräknas automatiskt, beroende på innehållet det innehåller.
Ett annat sätt att undvika layoutkollaps är att använda overflow: auto notation. I det här fallet, om höjden på innehållet överstiger höjden på dess behållare, kommer webbläsaren att lägga till en rullningslist till behållaren.
I nästa lektion kommer du att lära dig hur du kan åsidosätta bredden på ett element med hjälp av en intressant och mycket användbar egenskap