All language subtitles for 049 The Dark Art of Centering Elements with CSS.en_US

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic Download
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:00,420 --> 00:00:07,390 Now let's take a look back at what we've got on our web site and see how we can use some of the knowledge 2 00:00:07,390 --> 00:00:13,830 that we learnt about positioning in order to make this web site look the way that we want it to. 3 00:00:13,920 --> 00:00:20,610 Now the first thing that we want to achieve is we want to center all of these elements, the image, the 4 00:00:20,610 --> 00:00:26,310 mountain image, as well as the text here in the h1, and also the subtitle. 5 00:00:26,700 --> 00:00:36,060 So the easiest way of centering elements is by tapping into a property called text align and that property 6 00:00:36,060 --> 00:00:39,620 has to be set inside the parent container, 7 00:00:39,630 --> 00:00:44,220 so in this case either in the top container or inside the body. 8 00:00:44,220 --> 00:00:50,760 So I'm just going to go ahead and center everything on screen by tapping into the body selector and 9 00:00:50,760 --> 00:00:53,680 saying text-align center. 10 00:00:53,880 --> 00:01:02,460 If we hit save and we head back and we hit refresh then you'll notice that all of our images, our h1 11 00:01:02,760 --> 00:01:05,960 and our paragraph is now centered. 12 00:01:06,030 --> 00:01:13,740 Now this works as long as we've got an inline block element such as our images or if we've got these 13 00:01:13,860 --> 00:01:22,270 full width block elements like our h1 and our p tag, which are going from left edge to the right edge. 14 00:01:22,270 --> 00:01:29,650 Now if I go into my code and I change the h1 to change its width to say only, I don't know, let's 15 00:01:29,660 --> 00:01:31,660 say 10 percent, 16 00:01:32,310 --> 00:01:38,940 then you'll notice that it's no longer being center aligned despite the fact that it's still inside 17 00:01:38,940 --> 00:01:43,130 the body which is asking for text align to be center. 18 00:01:43,380 --> 00:01:45,620 So what do we do in this case? 19 00:01:46,380 --> 00:01:52,540 Well the other way of centering an element is by using the margin. 20 00:01:52,770 --> 00:02:02,520 So there is a value called auto which when applied will center the element either vertically or horizontally. 21 00:02:02,820 --> 00:02:09,910 So in this case if we're looking for horizontal centering then we can say that the margin top is 0, 22 00:02:10,260 --> 00:02:12,640 the margin right is auto, 23 00:02:13,020 --> 00:02:19,540 the margin at the bottom is also 0 and the margin on the left is again auto. 24 00:02:19,650 --> 00:02:24,020 So I'm going to delete this margin top here and hit save. 25 00:02:24,240 --> 00:02:32,130 And if I refresh you'll see that our element despite being only 10 percent of the width of the screen 26 00:02:32,220 --> 00:02:36,460 is now centered in the middle of our web page. 27 00:02:36,600 --> 00:02:43,110 And when you look at the box model you can see that the top and bottom margins were set to be 0 by us 28 00:02:43,560 --> 00:02:50,550 and the left and the right are set automatically to whatever amount it needs to be in order to keep it 29 00:02:50,610 --> 00:02:51,900 in the center. 30 00:02:51,900 --> 00:02:57,810 So very often when you find yourself trying to center elements you'll probably end up using one of these 31 00:02:57,810 --> 00:02:58,870 methods. 32 00:02:58,890 --> 00:03:07,560 So just to recap, text-align center inside the container, or the parent element, will center everything 33 00:03:07,590 --> 00:03:11,640 inside that doesn't have a width set. 34 00:03:11,640 --> 00:03:17,730 Now if it is a block element and it has a width set, then you're going to have to center it using this 35 00:03:17,940 --> 00:03:20,980 auto value in the margin. 36 00:03:21,510 --> 00:03:28,260 So in this case we can also shorten this by saying that the top and bottom needs to be zero and the 37 00:03:28,260 --> 00:03:30,390 left and right needs to be auto. 38 00:03:30,750 --> 00:03:33,090 And that will not change this at all. 39 00:03:33,120 --> 00:03:38,460 And this is just one of those circle shorthands that you will begin to learn. 40 00:03:38,490 --> 00:03:43,860 And if you've forgotten how that worked or if you're interested in learning more then you can always 41 00:03:43,860 --> 00:03:49,530 check out the CSS Docs on MDN for the margin, where they go through each of these, where if you only 42 00:03:49,530 --> 00:03:52,950 have a single value of the margin then that's all four sides, 43 00:03:52,950 --> 00:03:57,570 if you have two then that's top and bottom and left and right, 44 00:03:57,810 --> 00:04:04,950 if you have three then it's the top left and right and bottom, and if you have all four then that's just 45 00:04:05,010 --> 00:04:07,920 all four sides in a clockwise direction. 46 00:04:07,920 --> 00:04:12,750 So if you get confused or if you forgot how that works then have a look over there. 47 00:04:12,810 --> 00:04:20,640 Now I'm actually going to undo and I'm going to revert back to margin-top being 0 and text-align 48 00:04:20,700 --> 00:04:25,250 being centered and you'll see that this is what it will now look like. 49 00:04:25,290 --> 00:04:32,430 Now the next problem we need to tackle is that these two images are acting as if they are inline blocks, 50 00:04:32,910 --> 00:04:39,620 and the cloud, because it's in the flow of the HTML file, is affecting the layout of the mountain. 51 00:04:39,630 --> 00:04:44,800 More specifically, I want this mountain to be right in the middle, and at the moment it’s being pushed to 52 00:04:44,800 --> 00:04:46,520 the right by that cloud. 53 00:04:46,530 --> 00:04:52,170 So in order to fix this we have to take this cloud out of the HTML flow, and once we've done that 54 00:04:52,230 --> 00:04:55,390 then the mountain will go back to being centered. 55 00:04:55,680 --> 00:05:02,030 So can you remember how we can take an element out of the HTML flow by changing one particular CSS 56 00:05:02,070 --> 00:05:07,580 property? That is of course the position property that we're going to change. 57 00:05:07,650 --> 00:05:14,910 And we're going to change it from its current value which is static to absolute and that is how we're 58 00:05:14,910 --> 00:05:16,790 going to remove it from the HTML flow. 59 00:05:17,010 --> 00:05:25,020 So inside our index.html I'm going to give a class to our bottom cloud and I'm going to call 60 00:05:25,020 --> 00:05:27,250 it bottom-cloud. 61 00:05:27,780 --> 00:05:35,040 And while I'm here I'm going to give a class to our top cloud and I'm going to hit save and I’m going to head back 62 00:05:35,100 --> 00:05:43,650 over to all styles.css, and we're going to target that bottom-cloud, and I'm going to set 63 00:05:43,650 --> 00:05:46,350 its position to absolute. 64 00:05:46,410 --> 00:05:52,830 Now if I hit refresh you can see that that cloud has been taken out of the flow and it's kind of being 65 00:05:52,830 --> 00:05:55,740 placed more or less randomly on the screen. 66 00:05:55,740 --> 00:06:01,700 But more importantly our mountain is now bang in the middle of the file, 67 00:06:01,950 --> 00:06:05,100 and this is exactly the layout that I want for it. 68 00:06:06,240 --> 00:06:12,510 So the next part is a challenge and this is what you want to end up with if you manage to complete the 69 00:06:12,510 --> 00:06:14,370 challenge successfully. 70 00:06:14,370 --> 00:06:21,540 We've got our top cloud that's on the right and a little bit above the h1, and we've got our bottom 71 00:06:21,540 --> 00:06:29,790 cloud that's on the left and just between the text and the mountain image, and they are both taken out 72 00:06:29,790 --> 00:06:32,200 of the flow of the HTML document. 73 00:06:32,250 --> 00:06:37,620 So pause the video and give that a go now. Now how did that go? 74 00:06:37,960 --> 00:06:42,460 Firstly, our bottom cloud at the moment has an absolute position. 75 00:06:42,600 --> 00:06:50,610 Now in order to position it relative to something, one of its parents has to have its position set as 76 00:06:50,610 --> 00:06:51,380 relative. 77 00:06:51,570 --> 00:06:55,450 And if we don't then it will be relative to the body. 78 00:06:55,770 --> 00:07:04,010 So in our case I want us to be able to position our bottom cloud relative to this entire top container. 79 00:07:04,200 --> 00:07:09,800 So I'm going to set the position of our top container to relative. 80 00:07:10,110 --> 00:07:16,830 And I'm going to start off by giving our top container just a little bit of padding at the top so that 81 00:07:16,830 --> 00:07:23,550 we can push down this cloud and all of these contents just down by a little bit so that it's not all 82 00:07:23,550 --> 00:07:34,400 stuck at the top of the page. So to do that we can add a padding top of 100 pixels, and that just pushes 83 00:07:34,400 --> 00:07:40,490 everything down a little bit, and then I'm going to add our top cloud as well. 84 00:07:40,700 --> 00:07:47,450 And I'm also going to take it out of the flow by changing its position to absolute as well. 85 00:07:47,450 --> 00:07:54,210 Now if we hit refresh you can see our two clouds are kind of just floating around without doing very much. 86 00:07:54,230 --> 00:07:56,310 So now let's position them properly. 87 00:07:56,600 --> 00:08:07,640 So relative to our top container here I want the top cloud to have a right margin of 300 pixels and 88 00:08:07,730 --> 00:08:12,620 a top margin of 50 pixels. 89 00:08:12,980 --> 00:08:26,300 And I want our bottom cloud to have a position left margin of 300 pixels and and a bottom margin of 300 90 00:08:26,310 --> 00:08:31,740 pixels from the bottom of its parent which is of course the top container. 91 00:08:31,920 --> 00:08:34,260 So it will be from this line. 92 00:08:34,260 --> 00:08:39,780 And if we hit save and refresh then this is what we will end up with. 93 00:08:39,840 --> 00:08:46,800 Now before we do any further positional tweaking we should really format the text because by changing 94 00:08:46,810 --> 00:08:53,660 the font, the font size etc., we’re going to affect the positioning of our elements as well. 95 00:08:53,670 --> 00:08:59,760 So in the next lesson we're going to look at how we can style our text using CSS. 96 00:08:59,970 --> 00:09:02,760 So for all of that and more, I’ll see you on the next lesson. 10403

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.