1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [CSS] 2 00:00:02,000 --> 00:00:04,810 [Joseph Ong - Harvard University] 3 00:00:04,810 --> 00:00:07,160 [Detta är CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:11,430 >> Idag ska vi prata om CSS eller Cascading Style Sheets. 5 00:00:11,430 --> 00:00:14,330 >> Så vad exakt är CSS? 6 00:00:14,330 --> 00:00:17,120 Nåväl, låt oss bryta termen CSS ned i 2 delar: 7 00:00:17,120 --> 00:00:19,510 Cascading och Style Sheets. 8 00:00:19,510 --> 00:00:23,900 Cascading är lite mer komplicerat, och det är något vi kommer att täcka i en annan video. 9 00:00:23,900 --> 00:00:27,930 Men till att börja, Style Sheets så mycket tips på vad CSS gör. 10 00:00:27,930 --> 00:00:30,880 Det tillför stilar till HTML på en webbsida, 11 00:00:30,880 --> 00:00:33,720 ändra hur webbsidan estetiskt utseende. 12 00:00:33,720 --> 00:00:38,310 Detta innebär allt från typsnitt för texten till positioneringen av innehållet på sidan 13 00:00:38,310 --> 00:00:43,800 till andra coola saker som att göra hörnen av en rundad box eller lägga till skuggor för text. 14 00:00:43,800 --> 00:00:48,230 Du kan även göra galna saker som att göra saker animera på skärmen. 15 00:00:48,230 --> 00:00:51,700 >> Så hur använder vi CSS med HTML? 16 00:00:51,700 --> 00:00:53,620 Ta den här stackars proffsiga plats jag just skrev. 17 00:00:53,620 --> 00:00:57,290 Om Rob skulle titta på denna plats just nu, skulle han förmodligen säga något i stil med, 18 00:00:57,290 --> 00:01:01,730 "Wow! Min inledning ser fruktansvärt. Joseph, du är en hemsk designer." 19 00:01:01,730 --> 00:01:05,110 "Använda den förvalda teckensnittet Times? Helvetica är så mycket bättre." 20 00:01:05,110 --> 00:01:09,600 >> Så vad kan vara det enklaste sättet att tillämpa styling Rob vill? 21 00:01:09,600 --> 00:01:13,530 Det mest uppenbara sättet massor av människor skrev inledningsvis CSS 22 00:01:13,530 --> 00:01:17,470 var att sätta vad vi kallar formatdeklarationer rätt i själva elementet 23 00:01:17,470 --> 00:01:20,560 använda HTML stilattribut. 24 00:01:20,560 --> 00:01:26,420 En stil uttalande består helt enkelt av HTML-element: s CSS-egenskapen vi vill förändra 25 00:01:26,420 --> 00:01:32,140 följt av ett kolon följt av det nya värdet på fastigheten och ett semikolon i slutet. 26 00:01:32,140 --> 00:01:36,600 Till exempel, låt oss säga Rob vill ha en svart ram runt sin inledning. 27 00:01:36,600 --> 00:01:40,040 Vi satte först stilattributet på Robs div här 28 00:01:40,040 --> 00:01:43,830 sedan inuti citattecken sätta en CSS-deklaration: 29 00:01:43,830 --> 00:01:47,880 "Border: 1px solid black;" 30 00:01:47,880 --> 00:01:52,480 Den 1 pixel hänvisar till bredden av gränsen, hänvisar fast till stilen av gränsen, 31 00:01:52,480 --> 00:01:56,640 och färgen i slutet bestämmer vad gränsen färg är. 32 00:01:56,640 --> 00:02:01,220 >> Om vi ​​vill ha flera stilar på ett element, skriver dessa deklarationer i sekvens. 33 00:02:01,220 --> 00:02:05,650 Till exempel, om Rob vill målvakt text i Helvetica med en blå bakgrund 34 00:02:05,650 --> 00:02:09,270 och mer utrymme runt texten, kan vi göra det här: 35 00:02:09,270 --> 00:02:19,800 style = "font-family: Helvetica, background-color: blue; padding: 5px;" 36 00:02:22,150 --> 00:02:28,010 Den sista semikolon är faktiskt frivilligt, men folk brukar ha det i för konsekvensens skull. 37 00:02:28,010 --> 00:02:32,180 >> Vi sparar förklarar några av de svalare och mer komplexa CSS-egenskaper 38 00:02:32,180 --> 00:02:34,140 för en annan video. 39 00:02:34,140 --> 00:02:38,780 Om du har något i åtanke, bara googla den effekt du vill ha följt av CSS 40 00:02:38,780 --> 00:02:41,590 kommer förmodligen att ge dig ganska bra resultat. 41 00:02:41,590 --> 00:02:44,530 Det häftiga är att CSS är ganska bred, 42 00:02:44,530 --> 00:02:48,470 så oddsen är om det är något du vill göra - inom rimliga gränser - 43 00:02:48,470 --> 00:02:51,350 CSS kan förmodligen göra det. 44 00:02:51,350 --> 00:02:54,750 Vi kallar denna typ av styling inline styling. 45 00:02:54,750 --> 00:02:59,030 Elementet stil är, väl i linje med start-taggen. 46 00:02:59,030 --> 00:03:01,770 >> För folk som gillar att vara organiserad, 47 00:03:01,770 --> 00:03:05,800 du kanske börjar bli lite irriterad på hur rörigt det hela ser. 48 00:03:05,800 --> 00:03:09,810 Tänk om du var tvungen att göra detta för varje element på sidan, 49 00:03:09,810 --> 00:03:13,690 plus nu din HTML och CSS är alla blandade och rörig. 50 00:03:13,690 --> 00:03:15,500 Gross, rätt? 51 00:03:15,500 --> 00:03:21,110 För att åtgärda detta, började folk så småningom fånga på att skilja deras HTML-kod 52 00:03:21,110 --> 00:03:26,370 från deras CSS med hjälp av något som kallas CSS-selektorer. 53 00:03:26,370 --> 00:03:31,780 CSS-selektorer används för att välja element för vilka deklarationer tillämpas. 54 00:03:31,780 --> 00:03:38,600 En väljare i kombination med en lista med CSS deklarationer ofta kallas en CSS-regel. 55 00:03:38,600 --> 00:03:43,260 Dessa regler skulle sättas mellan öppna och stäng HTML stil taggar, 56 00:03:43,260 --> 00:03:46,120 ofta i huvudet på dokumentet. 57 00:03:46,120 --> 00:03:49,000 >> Det är mycket lättare att se med ett exempel, 58 00:03:49,000 --> 00:03:53,000 så låt oss börja med att skapa en enkel CSS-regel. 59 00:03:53,000 --> 00:03:58,180 Först, låt oss sätta stil taggar i huvudet på vår HTML. 60 00:03:58,180 --> 00:04:00,020 Därefter väljaren. 61 00:04:00,020 --> 00:04:03,490 Vi börjar med en av de enklaste väljarna, hash symbol, 62 00:04:03,490 --> 00:04:08,080 som väljer ett HTML-element av dess ID-attribut. 63 00:04:08,080 --> 00:04:11,850 I detta fall väljer vi den div som representerar Rob introduktion 64 00:04:11,850 --> 00:04:16,740 genom att skriva hash symbolen följt av div ID, Rob. 65 00:04:16,740 --> 00:04:18,579 Nu deklarationerna. 66 00:04:18,579 --> 00:04:24,090 Vi lägger öppna och stäng hängslen och flytta våra tidigare inline förklaringar om Robs div 67 00:04:24,090 --> 00:04:26,880 insidan av dessa hängslen, uppdatera, 68 00:04:26,880 --> 00:04:34,160 och kyla, har Rob intro fortfarande en svart ram runt det minus rörigt inline fulhet. 69 00:04:34,160 --> 00:04:39,380 >> Nu, tänk om vi ville välja h1 insidan av Rob intro? 70 00:04:39,380 --> 00:04:44,400 Du kanske tänker, "Låt oss sätta ett ID på den och sedan flytta våra tidigare stilar." 71 00:04:44,400 --> 00:04:48,760 Det fungerar, men CSS har andra sätt att låta dig välja element 72 00:04:48,760 --> 00:04:53,490 genom att använda vad vi kallar kombinatorer att blanda enkla väljare. 73 00:04:53,490 --> 00:04:57,740 Till exempel kan ett blanktecken användas som en combinator 74 00:04:57,740 --> 00:05:03,510 att specificera alla förekomster av en väljare som lever inuti en annan väljare. 75 00:05:03,510 --> 00:05:06,630 Det låter mycket mer komplicerat än det egentligen är. 76 00:05:06,630 --> 00:05:08,830 Här är ett exempel. 77 00:05:08,830 --> 00:05:13,900 Vi kommer att skriva # råna, ett mellanslag och följa det med en h1, 78 00:05:13,900 --> 00:05:18,840 annan enkel väljare kallas kodväljaren som väljer olika typer av element 79 00:05:18,840 --> 00:05:21,200 som divar eller stycken. 80 00:05:21,200 --> 00:05:26,140 Utrymmet kombinerar våra två enkla väljare, tillämpa alla CSS deklarationer 81 00:05:26,140 --> 00:05:32,560 och klammerparentesen till H1 taggar som lever inne i elementet med id = "rob". 82 00:05:32,560 --> 00:05:38,290 Bara för att övertyga dig om att det fungerar, ska jag ändra teckenfärg till vitt, uppdatera, 83 00:05:38,290 --> 00:05:42,090 och, ser, Rob sidhuvud är nu vit. 84 00:05:42,090 --> 00:05:47,510 >> Allt detta arbete visar att genom att använda regler i stället för infogade format 85 00:05:47,510 --> 00:05:50,510 Vi kan få mycket renare kod. 86 00:05:50,510 --> 00:05:53,900 I själva verket, om denna stil blocket börjar bli lite stor, 87 00:05:53,900 --> 00:05:58,340 Jag kan även dra dessa stilar ut i en annan fil helt och hållet. 88 00:05:58,340 --> 00:06:05,120 >> Att inkludera denna nya fil som CSS i detta dokument ska jag bara använda HTML: s länk-taggen. 89 00:06:05,120 --> 00:06:10,320 Här säger jag det som jag länkar i en extern formatmall, rel attribut, 90 00:06:10,320 --> 00:06:14,840 och ange sökvägen till filen med min attributet href. 91 00:06:14,840 --> 00:06:20,290 Nu min HTML-kod och CSS är organiserade fint i helt separata filer, 92 00:06:20,290 --> 00:06:26,090 vilket är nästan alltid sättet designers föredrar att arbeta med HTML och CSS. 93 00:06:26,090 --> 00:06:30,180 >> I fall du undrar, de enkla väljarna inkluderar ID väljare 94 00:06:30,180 --> 00:06:33,100 och tagga väljare som de som vi just såg 95 00:06:33,100 --> 00:06:38,610 samt klass väljare för val av element med en viss typ, 96 00:06:38,610 --> 00:06:44,000 attribut väljare för val av element från andra attribut som typ = "radio" 97 00:06:44,000 --> 00:06:49,180 för insatsvaror knappen och pseudoselectors som hovra och fokusera 98 00:06:49,180 --> 00:06:55,260 för att specificera styling när interaktioner gillar musen över ett element förekomma. 99 00:06:55,260 --> 00:06:58,950 >> De gemensamma kombinatorer inkluderar tomrum för alla barn 100 00:06:58,950 --> 00:07:02,080 och kommatecken för att skilja väljare. 101 00:07:02,080 --> 00:07:06,370 Andra du kan stöta inkludera pilen för direkta barn bara, 102 00:07:06,370 --> 00:07:10,440 tilde för alla syskon som inträffar efter elementet, 103 00:07:10,440 --> 00:07:16,010 och på plustecknet för 1 syskon som kommer omedelbart efter elementet. 104 00:07:16,010 --> 00:07:18,540 >> Genom att kombinera dessa väljare och kombinatorer, 105 00:07:18,540 --> 00:07:22,910 Du kan bredda utbudet av styling du kan uppnå på en viss webbsida 106 00:07:22,910 --> 00:07:25,050 och skriva CSS mer effektivt. 107 00:07:25,050 --> 00:07:28,370 Med bara ett par rader CSS du ser mig skriva här, 108 00:07:28,370 --> 00:07:34,460 Jag kan snabbt göra något sånt här ser ut ungefär så här. 109 00:07:34,460 --> 00:07:37,080 >> Jag är Josef, och det här är CS50. 110 00:07:37,080 --> 00:07:39,260 >> [CS50.TV] 111 00:07:39,260 --> 00:07:40,780 >> Öh, var ska jag börja? 112 00:07:40,780 --> 00:07:44,140 Låt mig göra det utan - [skrattar] Okej. 113 00:07:44,140 --> 00:07:47,300 Lägga till en - låt mig ändra denna formulering. 114 00:07:50,580 --> 00:07:52,470 Ooh. Ursäkta.