All language subtitles for html-720p-en

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
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
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu

Original subtitles

>> DOUG LLOYD: So we spent about-- if my math is right,

and I think looking back-- I think we spent about 35 videos talking

about various aspects of C, maybe a little more, maybe a little less.

And we didn't cover everything in C, but we

covered a big chunk of the language, the vast majority of it,

certainly for common uses.

Now we're going to talk about another language, HTML.

And we're going to cover it in just one video.

>> But that's going to be OK.

That's going to actually become something you're going to get used to.

Now that you have the fundamentals of one language,

it's actually pretty easy to start learning others.

So we're going to start to step a little back

and gloss over the basic differences between these languages

and sort of leave you to it.

There's a lot of really great resources on the internet, which

we're going to start directing you towards because the internet is

a vast repository of information.

And so it's not like you'll be losing out necessarily

by not having the information covered in a video.

You'll still be able to get everything you need and use

the knowledge you've already built up by understanding C

to make the learning curve for these other languages actually a lot flatter.

I promise.

>> But let's talk about one language that's really fundamental for every web

page, which is HTML.

HTML is the Hyper Text Markup Language.

HTML is a language but it is not a programming language.

>> HTML doesn't have variables.

It doesn't have logic or functions or anything like that.

We can't do any programming per se in HTML.

Sometimes you'll hear people describe themselves

as HTML programmers, which isn't entirely accurate.

We can't write HTML programs.

>> HTML is just used to mark up text.

It's called a markup language.

And what this does-- this markup-- we use tags in HTML and these tags--

this markup-- semantically defines the structure of a page

and causes the plain text that exists between tags to be interpreted

by browsers in different ways.

And perhaps it's best to explain this by way of an illustration.

>> Here's a very simple HTML page, not an HTML program, again, an HTML page.

And we know it's an HTML page because we've

bounded everything with HTML tags.

So this is what an HTML tag looks like.

It's between angle brackets.

And notice at the top we have HTML and at the very bottom,

after we've done what is apparently a lot of other HTML,

we have angle bracket slash HTML.

So that sort of is the boundary between what is HTML and what is not.

And of course, conventionally, just as you wrote all of your C programs

with dot C extensions, all of your HTML files

will end with dot HTML extensions.

But there's more going on here.

We don't just have these HTML tags.

We apparently have this thing called a head tag.

Well, OK, what's that?

>> Well maybe it's best to distinguish by way of a body,

body being the content of the web page.

So maybe the head tag defines stuff that isn't in the browser window proper,

but is somehow important to our web page being rendered correctly.

For example, inside of the head tag we have title tags.

>> So title being hello world, that's actually going to be what

shows up in the tab in Chrome or in safari or Firefox--

whatever browser you prefer-- that's what's going to show up in the title.

And before tabs it would show up in your entire browser window

and you can only have one page open in a browser window at a time.

So that's going to be the title of my page up in the tab

or the browser window bar, hello world.

And then the content of my web page will be world, hello.

So let's take a look at what some thing like this might look like.

This is a pretty simple HTML page.

So I'm here in my CS50 IDE and I've zoomed in a little bit.

And I'm just going to open up hello dot HTML

and show you that this is pretty much the page content that we saw before.

My simple HTML, head tags, title tags, body, and so on.

I've indented to be clean.

>> And then what I can do in my IDE is just preview the page.

And there we go.

The content of my page is world, hello, and I don't see anything

in from the head tags there.

It's just the content of the body.

World, hello.

And again the body just said, world, hello.

The other part is missing.

>> So that's really all it is.

This is a very simple basic HTML page.

Now I've indented my HTML to be really nice and organized,

but I don't actually have to.

I could make it look pretty ugly.

And this would still work.

This would be the exact same web page.

I've just gotten rid of all of the white space.

>> As it turns out, white space is data.

And so when we're sending data from sender to receiver, from server

to client, data costs money.

And so getting rid of whitespace is actually a good idea

if you're somebody who serves up a lot of web content.

It's a bad idea if you're somebody who's learning this stuff

and you want to have it nicely organized.

This is a lot easier to parse than this.

But it's functionally identical.

>> The indentation and stuff like that doesn't actually matter in HTML.

All that matters is opening tags and closing tags in the correct order.

Notice what happened here, though.

The markup gives us a way to communicate extra information

about what we've written.

The Hello, World part was interpreted as the title.

And the world, hello part was interpreted as the content

or what should be visible on my web page.

>> There are over 100 of these different tags and lots of great resources

online to find them.

We're going to talk about a few of them in this video, some

of the really fundamental stuff.

But we're not going talk about it all because it

would be exhaustive to do so.

>> Another thing you can do, though, is open up developer tools.

And if you recall from our video on HTTP,

I explained how to open up developer tools.

In Chrome it's usually the F12 key to open up the developer toolbar.

Then instead of choosing the Network tab, you can choose the Elements tab.

And if you load a web page, you'll actually

see the HTML that creates that web page.

And so you can learn a lot about HTML by looking at your favorite websites

and seeing how they build the various pieces of them that you like.

So maybe there's this cool pattern or something like that.

How do they make it with HTML?

Well you can just open up your developer tools and hover over that element

and see exactly what HTML makes it.

So that's a really good way to learn HTML,

and I strongly recommend that you do it both to learn HTML

and also to learn a little bit about some of the options

available to you in developer tools, which

will certainly come in handy as you begin doing more intensive web

programming.

>> So let's take a look at a couple of common HTML tags.

And we'll jump and take a look at what these tags will also render

as by looking at some files in my IDE.

So here are three very basic tags for tweaking the visual appearance of text.

There's B tags, I tags, and U tags.

And respectively what they do is render the text between them in bold,

italics, and underlining.

So let's see what that would look like on an actual web page in my IDE.

>> So here in my IDE I have a file called BIU dot HTML.

BIU dot HTML just being bold, italics, underlining.

I'll open it up.

>> And we'll see that here I have this text is B tags bold.

This text is I tags italic.

And this text is U tags underlined.

What is this going to look like?

Well again, all I have to do is go over here

to my browser, my file browser, click Preview, and this is what comes up.

>> The text in between the B tags is indeed now bold.

The text in between the I tags is indeed now italic.

And the text in between the U tags is indeed now underlined.

So that's pretty good.

We now know how to make text look a little more fancy

or draw emphasis to certain things.

Another couple of common tags here are paragraph tags, P, and header tags,

which I've rendered here as HX.

>> These P tags, these paragraph tags, break your text up into paragraphs.

It's not enough to just hit Enter and leave spaces,

because a computer is only going to do what you tell it to do

and it ignores white space for the most part.

So we can't just hit Enter and expect our computer

to interpret that we want to start a new paragraph.

We have to very explicitly say this is one paragraph-- this is another--

by enclosing each in a set of P tags.

>> And we also have these options for H tags, these header tags.

We have six different levels of headers, one, two, three,

four, five, and six, which are progressively larger and larger

headers.

And they get smaller and smaller and smaller and smaller.

So we have a top level header, a second level header, and so on, and so on.

>> Let's take a look at maybe some P tags and some header tags

in action on a web page.

So here in my IDE I have a file called PH dot HTML, PH being paragraphs

and header tags.

Open that up.

There's a lot going on here because I've put some lorem

ipsum, some just random text in here.

So I'll zoom out a little bit because there's so much going on.

But notice that I have at the very top here I have an H1, a level one,

header tag.

Then I have a paragraph, which is just a bunch of random text-- lorem ipsum--

just default standard filling in text.

So I have two paragraphs inside of that level one header and then down below I

have a level two header here on line 24, a second level header, and another two

paragraphs.

Well what does this look like if I view it in my preview?

Let's see.

>> So notice that the first level header here

is actually quite a bit bigger than the second level header.

So we used H1 tags.

And notice that the P tags allow us to break things out into paragraphs.

If we had gotten rid of those P tags and actually just put Enters or Returns

in between what we hoped would be the different paragraphs,

they would all just slam together and it wouldn't have this nice paragraph

separation with space above and below.

And so that's what paragraph tags and header tags

are commonly used to do to draw attention to portions of our web page

in that way.

>> Next up are some tags that we use to build lists on our web page.

So we have unordered lists-- ULs-- which are just

bulleted lists, ordered list which are numbered--

OLs-- and inside of either one of those we need to have

sets of how to indicate list items, LI.

And so we have open UL tag and we put items inside of it.

And then when we're done with that, we can close the UL tag.

>> And similarly we can have an ordered or numbered list

and put list items inside of that.

So let's take a look at a couple of lists

and what they would render as on CS50 IDE.

So I have here in my IDE a file called lists dot HTML.

Let's take a look.

>> And notice here I have an unordered list with five things in it.

And then I have an ordered list, and I've changed the tag a little bit,

right?

I've said start equals six.

It turns out with an ordered list I can set the starting point wherever

I want-- by default it will be one-- by just adding this so-called attribute

to my OL tag.

And so this list will start counting at six.

So the elements of that numbered list should be six, seven, eight, nine, ten,

because there are five elements in the list, as opposed to one,

two, three, four, five, which would be the case if I had said OL

without specifying the start attribute.

>> So we'll just preview this so you can get a sense for what's going on here.

And there we go.

There's my list.

The first five elements are unordered or bulleted lists.

And the next five elements are a separate ordered list

starting from six.

So that's how we can build lists using HTML.

Another thing you might want to do with HTML

is build a table of information of rows and columns

to present information in a particularly organized way.

To do this with HTML we can have a table definition beginning open bracket

table.

And then inside of that table we might have a set of rows, TR tags

to indicate each row.

And then TD tags go inside of TR tags to specify a column within a row.

>> Why is it called TD and not TC?

Well, TD stands for table data.

Usually you're putting your information there.

So that's why it's TD and not TC.

It's a little bit confusing.

>> So you have table tags and inside of your table tags

you have a number of rows, TRs.

And inside each row you have TDs for the number of columns

that you want to have in that particular row.

Let's take a look at a very simple table over in CS50 IDE.

>> So I have here a file called table dot HTML.

Let's have a look at what that looks like.

There's a lot going on here but if you notice I have a table open.

I'm starting the definition with table.

And then in my first row I apparently have four columns, one, two, three,

four.

And then I'm done with that row.

>> Then I start another row and do two, four, six, eight.

Finish that row.

Do another row, three, six, nine, 12.

And then a last row, four, eight, 12, and though it's

a little cut off here, 16.

>> I finished that row.

I finished the table.

And then I'm done with my HTML.

What does this look like?

Well, it's not really much to see.

I've clearly organized my information in a somewhat more organized way.

But it's not super pretty here.

And we're going to deal with that when we talk about CSS.

We'll revisit this idea of what we do to make a table--

maybe format it a little bit better?

But I do still have four rows, each of which has four columns,

and really what this amounts to is a very simple four by four multiplication

table.

>> Just a few more tags we'll talk about.

Let's talk about the concept of an HTML form.

So you may have seen this in the context of logging into a web page.

Usually you type in your user name.

You type in your password, and you're good to go.

That would be the beginning of a form.

>> Skipping over div a second.

We also have inputs which kind of fit inside of forms.

These are the elements that you're actually typing into,

or the radio buttons you're ticking, or the check

boxes that you're ticking off.

So these go inside of forms.

And they comprise basically each row of the form

if your form is formatted well.

Then there's this concept of a div, which doesn't really

fit in any particular category of tags like the ones I've

been doing previously.

It just sort of demarcates the beginning of some arbitrary division--

div-- of the page.

There's no visual break.

There's no line.

It's not set off as a separate chunk automatically.

You'd have to style it that way to do that.

>> It just sort of says I want a piece of space on my web page,

and I'm just going to call it this division of my page.

We can put stuff inside of divs, and in fact,

when we head over to IDE in a second, we'll

see that I'm putting my form inside of a div.

>> So I have here in my IDE a file called div form dot HTML.

Let's open it up.

Notice that like I said, div is kind of arbitrary.

Right?

It doesn't really mean anything.

So I have an arbitrary first division of my page.

And then instead of another div later on, starting on line eight,

I have this form.

And inside of the form I have a number of inputs, fields of the form.

So I have a field whose name is A-- which doesn't really mean anything

right now-- that apparently takes text, another one that

takes a password, another that's a Radio button, another that's a check box,

and another that's a Submit button.

Well, what does this all actually look like?

Well, let's take a look.

We'll open it up in our preview window.

Notice that this arbitrary first division-- there's

no visual separation here.

It didn't really do anything, right?

>> And then I have my form.

And I didn't do any special formatting.

So the form is just one big row of information.

If I had formatted my form differently, I might have it line by line by line.

But I didn't do any styling.

Again, we're not talking about CSS here.

We're just talking about HTML.

>> Well in my text form I can type-- remember that forms of type text

so I can put my name.

And in my password I can type my password.

And because that field is of type password,

you don't know what my password is.

It's all dots.

>> I can also choose to tick off a radio button or tick off a check box.

Or I could submit my form.

And I didn't do anything, so when I submit my form,

the page just refreshes.

But I could perhaps configure my Submit button to do something else.

And we'll see what we can do with that in a future video on PHP.

But this builds a very simple form that we

can use to have users interact and submit information to our website.

>> One last comment before we move on to some other tags

are to take a look at this input tag one more time.

Notice that I've highlighted the ends of the tag in red.

Every other tag we've seen so far has had a beginning and an end, an opening

tag and a closing tag.

>> But an input tag doesn't.

There's no text that goes in between input tags.

All of the information we're intending to convey

is bound up as part of the attributes of that input.

Notice we have input name equals x.

Type equals y.

That's really all the information we need.

>> This is called a self closing tag.

It doesn't require an opening and a close because all of the information

is contained inside the tag and its attributes.

So sometimes you'll see this, too.

So just be aware that if you have a tag that is entirely self-contained,

it opens and closes itself with the open angle bracket on the left

and the slash angle bracket on the right.

We'll see another one of those right now with image tags as well.

>> Before we talk about images, we need to talk about hyperlinks.

If we want our web page to be interactive and move us around,

it would be nice be able to click on one of those

what has typically been a blue link.

This is actually how we build a hyperlink in our web page.

And interestingly enough there's another HTML tag

called link, which is not a hyperlink.

A here stands for anchor, and that's how we indicate a hyperlink.

>> A href equals x means go to web page X. And everything

between the open A tag and the close A tag

is what's going to be that underlined blue text that looks like a link

that we're familiar with.

Below that we have an image tag, which is a self closing tag for displaying

an image located at X. And you might be able to change

that image by specifying width and height

and other attributes in that dot dot dot there.

>> At the very bottom here we have a very interesting

looking tag that doesn't have a closing tag.

It's exclamation point doctype HTML.

So HTML has been around since the early 1990s for building web pages,

and it's gone undergone several revisions since then.

Most recently in 2014 it underwent a revision

called HTML5 which is now the current sort of de facto HTML standard.

>> To indicate that our web pages are written using HTML5,

this is how we start off.

It can be omitted but what that basically

means is you can't use any of the tags that are HTML5 tags, those new tags.

So we always start off if we're using HTML5.

And all the tags we've talked about previously are not HTML5 tags.

But this would indicate that HTML5 tags will be present.

And so we have exclamation doctype HTML, which

is at the very beginning of our HTML file, and then after that point

we actually have our HTML open tag and proceed from there.

>> The last one is a comment tag, which looks slightly different, too.

It starts off with angle bracket exclamation dash

dash but no closing bracket.

In between those two elements there is where you write your comments.

And let's take a look at images and comments and links in CS50 IDE.

>> So I have here a file called image link dot HTML which I'm going to open up.

And notice I've got a couple of comments here in my HTML comments.

So just like in C and other programming languages,

HTML just by being a markup language does have the ability to have comments.

And so I'm apparently going to place a picture of Rick Astley

somewhere between this div tag, this arbitrary division.

Apparently that file is located at Rick dot JPEG, which

if we head back over to my file tree for a second,

is a file that exists in the current directory.

So that's OK.

I can reference it.

>> Then I can have internal links.

So notice on line 11 here my href is hello dot HTML.

So that just refers to hello dot HTML which exists in the current directory.

And I can also have external links by just specifying HTTPS

to indicate that I'm not talking about a file in my current directory.

I'm talking about a file that exists somewhere on the internet, which I have

to request using the HTTP protocol.

>> So let's take a look at what this page might look like

and get ready for a picture of Rick Astley to show up on your screen.

So I'll preview this.

There's Rick Astley at the very top in this arbitrary

division I put it at the top.

And then down below I have my links, right?

>> I have a link to hello dot HTML.

And if I click that, I get moved over to this page

that we're very familiar with from the very beginning of our program.

If I pop that page open again, if I pop image link open one more time,

I can also go externally to CS50's website.

And there we see-- I'll zoom out a little bit here--

we'll see CS50's website sort of embedded in the middle of our page.

So I was able to make an internal link as well as an external link.

>> The last rule with HTML that we're going to talk about here

is that your HTML should be well formed.

In C we talked a lot about the various syntax of things.

In HTML the syntax really revolves around tags.

Every tag you open needs to be closed.

And in fact, every tag you open should be closed in reverse order.

>> So if you open a bold tag, an italic tag, and then an underline tag

to do all three to a particular set of text,

you should close them in reverse order.

So if you opened bold, italic, underline, you

want to close underline, italic, bold.

This sort of encapsulation is what keeps HTML nice and organized.

>> Unlike C, though, syntax errors won't actually cripple your HTML possibly.

Your HTML may be not well formed but would still work.

And so these errors can sort of slide by.

It's up to you to really be vigilant.

Sometimes they will fail but sometimes you can get away with it.

>> It can be a really difficult task, though,

to keep track of when you opened a tag, when you closed it,

especially as your HTML files get bigger and bigger.

You'll want some help.

And there are online validator tools that you

can use to have a look at your web page and see if it's well formed HTML.

And you should definitely take a look at those

and start to use them as you begin doing some work with HTML,

writing HTML, just so you get some good habits about organizing

your HTML in a good way and good style and making sure

that you're not doing anything that could create a syntax error that

would cause you a bit of a problem down the road.

>> I'm Doug Lloyd.

This is CS50.

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