Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
1
00:00:01,391 --> 00:00:02,656
Hi there.
2
2
00:00:02,656 --> 00:00:05,741
Let's build the third section of our website,
3
3
00:00:05,741 --> 00:00:07,991
the favorite meals section.
4
4
00:00:09,152 --> 00:00:12,500
For this section, we will use beautiful photography
5
5
00:00:12,500 --> 00:00:14,368
and a nice transition effect
6
6
00:00:14,368 --> 00:00:18,346
to show the favorite meals of Omnifood's users.
7
7
00:00:18,346 --> 00:00:21,768
I planned the section, like you can see on that sketch
8
8
00:00:21,768 --> 00:00:23,749
that I did on the left side.
9
9
00:00:23,749 --> 00:00:27,740
And on the right side, we see how it will look like.
10
10
00:00:27,740 --> 00:00:30,263
Notice that this section has no title
11
11
00:00:30,263 --> 00:00:33,953
and uses 100% of the browser's width.
12
12
00:00:33,953 --> 00:00:35,786
So, no row class here.
13
13
00:00:37,040 --> 00:00:40,309
I choose this design so that those beautiful images
14
14
00:00:40,309 --> 00:00:42,059
have a bigger impact.
15
15
00:00:44,072 --> 00:00:45,745
In this lecture, you will learn
16
16
00:00:45,745 --> 00:00:48,564
how to make a grid of beautiful images
17
17
00:00:48,564 --> 00:00:51,383
and how to make a nice "zoom-in" transition
18
18
00:00:51,383 --> 00:00:52,633
just using CSS.
19
19
00:00:53,852 --> 00:00:56,769
This is really powerful CSS3 stuff.
20
20
00:00:57,856 --> 00:01:02,023
And we'll also learn a way to make <img> elements darker.
21
21
00:01:02,916 --> 00:01:05,249
It's all super easy and fun.
22
22
00:01:06,299 --> 00:01:08,466
So, back to our html file.
23
23
00:01:09,343 --> 00:01:12,510
Now, how are we gonna build this grid?
24
24
00:01:13,875 --> 00:01:17,542
First of all, we need to make a new section.
25
25
00:01:20,489 --> 00:01:21,489
So, section,
26
26
00:01:24,082 --> 00:01:26,955
and again I will call this "section,"
27
27
00:01:26,955 --> 00:01:29,288
and this time, it's "meals."
28
28
00:01:31,653 --> 00:01:33,403
Now, we want two rows
29
29
00:01:34,557 --> 00:01:36,974
with four images in each row.
30
30
00:01:37,835 --> 00:01:42,404
As I said before, we will not use the row class here
31
31
00:01:42,404 --> 00:01:45,284
because we don't want a centered row with some images.
32
32
00:01:45,284 --> 00:01:46,550
No, we want the images
33
33
00:01:46,550 --> 00:01:50,480
to occupy 100% of the browser's width.
34
34
00:01:50,480 --> 00:01:54,679
And it is actually a good practice to use an unordered list
35
35
00:01:54,679 --> 00:01:58,383
to do that; in fact, two unordered lists.
36
36
00:01:58,383 --> 00:02:00,883
We will use one for each line.
37
37
00:02:02,879 --> 00:02:04,970
Just as I did in the navigation,
38
38
00:02:04,970 --> 00:02:09,284
it's better to put some stuff in unordered lists;
39
39
00:02:09,284 --> 00:02:12,507
for example, those four links in the navigation,
40
40
00:02:12,507 --> 00:02:15,464
or these images that we're gonna use now,
41
41
00:02:15,464 --> 00:02:19,214
than just throw the images onto that website.
42
42
00:02:20,683 --> 00:02:24,246
So this is what we're gonna do now.
43
43
00:02:24,246 --> 00:02:28,413
<ul> class, and I will call this "meals-showcase".
44
44
00:02:33,325 --> 00:02:36,637
Alright, and, you remembered it:
45
45
00:02:36,637 --> 00:02:40,478
we will have that <li> element inside of that.
46
46
00:02:40,478 --> 00:02:43,935
Now, inside of this list we can put anything we want.
47
47
00:02:43,935 --> 00:02:46,035
In the navigation, we put links in here.
48
48
00:02:46,035 --> 00:02:50,202
Now we will see a new html element called <figure>.
49
49
00:02:53,048 --> 00:02:55,648
And <figure> is also like a container
50
50
00:02:55,648 --> 00:02:57,815
which can contain an image
51
51
00:02:58,784 --> 00:03:01,585
and also a caption for that image.
52
52
00:03:01,585 --> 00:03:03,411
In this case, we will only put
53
53
00:03:03,411 --> 00:03:07,728
an image inside of this container, and no caption.
54
54
00:03:07,728 --> 00:03:12,437
Because I don't wanna make things all too complicated here.
55
55
00:03:12,437 --> 00:03:14,270
But, just so you know,
56
56
00:03:15,999 --> 00:03:19,720
there is an element called <figcaption> and you can use that
57
57
00:03:19,720 --> 00:03:22,053
to put some caption in here.
58
58
00:03:24,926 --> 00:03:26,129
So, image.
59
59
00:03:26,129 --> 00:03:30,296
As you remember, we have to specify the source attribute.
60
60
00:03:31,510 --> 00:03:33,843
And now, where is our image?
61
61
00:03:34,810 --> 00:03:38,977
It is probably in /resources/img/
62
62
00:03:40,664 --> 00:03:44,884
and now let's better check what's inside of that folder
63
63
00:03:44,884 --> 00:03:46,801
so that we're completely sure.
64
64
00:03:46,801 --> 00:03:50,551
So, resources, img, and yeah, you'll see here
65
65
00:03:51,688 --> 00:03:53,587
these are our meals.
66
66
00:03:53,587 --> 00:03:57,985
So, one, two, three, four, five, six, seven, eight.
67
67
00:03:57,985 --> 00:04:00,652
This is the order of the images.
68
68
00:04:02,763 --> 00:04:05,346
And actually, in the text file,
69
69
00:04:06,997 --> 00:04:08,979
we have the name of the meals,
70
70
00:04:08,979 --> 00:04:10,146
and we can put
71
71
00:04:11,998 --> 00:04:12,915
those names
72
72
00:04:14,736 --> 00:04:17,736
in the alt description of the image.
73
73
00:04:19,511 --> 00:04:22,261
So here, we just want this image.
74
74
00:04:23,901 --> 00:04:26,984
Let me paste those names here, again,
75
75
00:04:28,239 --> 00:04:29,555
with a comment,
76
76
00:04:29,555 --> 00:04:31,472
as I showed you before,
77
77
00:04:32,502 --> 00:04:34,419
and close this comment.
78
78
00:04:37,683 --> 00:04:40,850
Okay, so this is the alternative text,
79
79
00:04:42,319 --> 00:04:44,182
as you already know, in case that the image
80
80
00:04:44,182 --> 00:04:46,911
cannot be displayed for some reason.
81
81
00:04:46,911 --> 00:04:48,078
And that's it.
82
82
00:04:49,811 --> 00:04:53,545
So I will copy this three more times,
83
83
00:04:53,545 --> 00:04:56,295
so that we have four images here.
84
84
00:04:58,055 --> 00:05:02,222
So this is number two, number three, and number four.
85
85
00:05:07,747 --> 00:05:10,247
And just copy these alt texts.
86
86
00:05:14,152 --> 00:05:16,069
"Chicken breast steak,"
87
87
00:05:20,337 --> 00:05:22,504
and "Autumn pumpkin soup."
88
88
00:05:23,944 --> 00:05:27,098
Wow, this sounds really good.
89
89
00:05:27,098 --> 00:05:30,336
Makes you feel hungry, right?
90
90
00:05:30,336 --> 00:05:33,336
Okay, this is the first four images.
91
91
00:05:35,161 --> 00:05:38,767
The first row of images, and now the second row.
92
92
00:05:38,767 --> 00:05:41,037
So, we will format all of this in a second
93
93
00:05:41,037 --> 00:05:42,704
in CSS, don't worry.
94
94
00:05:44,255 --> 00:05:48,172
And number six, number seven, and number eight.
95
95
00:05:51,867 --> 00:05:54,034
And now, the descriptions.
96
96
00:05:58,343 --> 00:06:01,093
So it's really important that you
97
97
00:06:02,167 --> 00:06:04,417
fill out this alt attribute
98
98
00:06:07,325 --> 00:06:10,742
in order to make your website valid html.
99
99
00:06:14,991 --> 00:06:17,824
We will see later in the course how we can check
100
100
00:06:17,824 --> 00:06:21,741
if we actually have valid or invalid html code.
101
101
00:06:22,822 --> 00:06:25,155
So this is really important.
102
102
00:06:26,430 --> 00:06:27,263
Alright.
103
103
00:06:32,305 --> 00:06:36,305
So, let's see what it looks like on our webpage.
104
104
00:06:40,230 --> 00:06:43,750
Of course, these images are so big,
105
105
00:06:43,750 --> 00:06:46,833
and look nothing like we want so far.
106
106
00:06:51,976 --> 00:06:55,643
But we're gonna fix that with CSS right now.
107
107
00:07:01,050 --> 00:07:04,883
So, remember, this is called "meals-showcase."
108
108
00:07:06,125 --> 00:07:08,394
I will just copy this
109
109
00:07:08,394 --> 00:07:11,478
so you don't have to write it all again.
110
110
00:07:11,478 --> 00:07:13,061
So, meals-showcase.
111
111
00:07:14,001 --> 00:07:15,663
We copy this.
112
112
00:07:15,663 --> 00:07:20,396
Again, I'm really worried about the structure here,
113
113
00:07:20,396 --> 00:07:22,063
so this is to Meals.
114
114
00:07:29,386 --> 00:07:31,969
As before, since this is a list
115
115
00:07:33,180 --> 00:07:36,172
and we don't want that bullet point,
116
116
00:07:36,172 --> 00:07:38,172
we say list-style: none;
117
117
00:07:40,331 --> 00:07:43,414
and another thing, since we want this
118
118
00:07:44,515 --> 00:07:47,098
to be the entire browser width,
119
119
00:07:48,358 --> 00:07:50,691
I will say width: 100%;
120
120
00:07:53,367 --> 00:07:56,536
So I hope you are already getting familiar with all of that
121
121
00:07:56,536 --> 00:08:00,997
and that you can follow exactly what I'm doing here.
122
122
00:08:00,997 --> 00:08:05,008
Now the next thing is to format the <li> elements
123
123
00:08:05,008 --> 00:08:07,425
inside of the unordered list.
124
124
00:08:09,043 --> 00:08:10,960
So, .meals-showcase li,
125
125
00:08:14,284 --> 00:08:15,867
as we already know.
126
126
00:08:18,627 --> 00:08:21,877
So, we want to display them as a block.
127
127
00:08:23,867 --> 00:08:27,283
So you see, this display property here
128
128
00:08:27,283 --> 00:08:29,488
is a really important one.
129
129
00:08:29,488 --> 00:08:32,716
I'm using it all the time, and you will, too,
130
130
00:08:32,716 --> 00:08:35,799
once you develop your first websites.
131
131
00:08:37,996 --> 00:08:41,496
And the next thing is that I want to float
132
132
00:08:42,972 --> 00:08:45,871
these elements to the left,
133
133
00:08:45,871 --> 00:08:49,135
so instead of showing one-after-one,
134
134
00:08:49,135 --> 00:08:51,218
I want them side-by-side.
135
135
00:08:53,411 --> 00:08:58,073
And another very important thing is their width.
136
136
00:08:58,073 --> 00:09:02,114
So, I'm having a list with 100% width
137
137
00:09:02,114 --> 00:09:05,364
and I want four elements inside of this
138
138
00:09:06,450 --> 00:09:09,618
to show side-by-side with the full width.
139
139
00:09:09,618 --> 00:09:13,264
So, I have four <li> elements, and therefore,
140
140
00:09:13,264 --> 00:09:16,931
each of them has to be 25% wide, right?
141
141
00:09:19,097 --> 00:09:22,597
Because four times 25 makes the 100%.
142
142
00:09:29,341 --> 00:09:32,341
Now, let me just do one thing, here,
143
143
00:09:36,476 --> 00:09:37,309
and let me
144
144
00:09:38,379 --> 00:09:40,753
give this <figure> element a class.
145
145
00:09:40,753 --> 00:09:43,253
I will call this "meal-photo."
146
146
00:09:48,639 --> 00:09:52,806
And I will do this with all of these eight figures.
147
147
00:09:57,283 --> 00:09:58,116
And
148
148
00:09:59,475 --> 00:10:01,308
one, two, three, four.
149
149
00:10:07,916 --> 00:10:11,333
What I want to do now is to format these.
150
150
00:10:12,843 --> 00:10:14,510
So, it's .meal-photo
151
151
00:10:20,700 --> 00:10:23,903
and what I gotta do now is to say this:
152
152
00:10:23,903 --> 00:10:25,320
width: 100%;
153
153
00:10:26,398 --> 00:10:30,281
Now, saying that this element with the class "meal-photo"
154
154
00:10:30,281 --> 00:10:33,392
has a width of 100%, means just
155
155
00:10:33,392 --> 00:10:37,256
that it has the exact width of its parent,
156
156
00:10:37,256 --> 00:10:39,589
which is .meals-showcase li.
157
157
00:10:41,674 --> 00:10:45,841
And we have also to say that it has a margin: zero.
158
158
00:10:47,336 --> 00:10:51,097
I know that we already did this in the beginning, here,
159
159
00:10:51,097 --> 00:10:53,267
so maybe what you are wondering,
160
160
00:10:53,267 --> 00:10:55,767
what is with the <h1> element?
161
161
00:10:57,461 --> 00:10:59,211
This "normalize" file
162
162
00:11:02,299 --> 00:11:05,299
defines some margin for that element
163
163
00:11:06,510 --> 00:11:10,440
and so we have to overwrite that specifically.
164
164
00:11:10,440 --> 00:11:14,023
And now, I need to format the actual photo,
165
165
00:11:15,531 --> 00:11:19,508
the actual image inside of the photo container.
166
166
00:11:19,508 --> 00:11:22,433
And the most important thing I have to do is,
167
167
00:11:22,433 --> 00:11:24,933
again, width equals 100%.
168
168
00:11:27,683 --> 00:11:31,452
And this will do exactly the same thing as before:
169
169
00:11:31,452 --> 00:11:33,304
it will assure that the image
170
170
00:11:33,304 --> 00:11:36,304
is exactly as wide as its container,
171
171
00:11:37,209 --> 00:11:39,042
which is this element.
172
172
00:11:39,905 --> 00:11:43,738
And the height will then be set automatically.
173
173
00:11:46,604 --> 00:11:48,854
So, what does it look like?
174
174
00:11:51,867 --> 00:11:56,338
Alright, this is exactly what we want, right?
175
175
00:11:56,338 --> 00:11:58,415
This looks great!
176
176
00:11:58,415 --> 00:12:00,570
The images are already here,
177
177
00:12:00,570 --> 00:12:02,671
but we're not quite done with this,
178
178
00:12:02,671 --> 00:12:06,232
because, as I said in the introduction of this lecture,
179
179
00:12:06,232 --> 00:12:09,381
We want to add some cool transitions here.
180
180
00:12:09,381 --> 00:12:11,064
And that's what we're gonna do
181
181
00:12:11,064 --> 00:12:14,940
in Part Two: Building the Meal Section.
182
182
00:12:14,940 --> 00:12:16,107
See you there!
15179
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.