When we use `div`s, it's often
because we want to divide our page
into different boxes, resize those boxes,
and move them around.
It takes a good eye for design to decide
how exactly to lay out a page
so that it looks good.
But right now, we're going to ignore
the goal of making a page look good
and just show you how to change stuff up.
Let's resize the "official-info" `div`.
By default, a div takes up 100 percent
of the available width.
That's why you see the grey box
going across the whole page.
But maybe I only want it
to take up 300 px.
Well, I'll add another property to
the CSS rule up here:
width: 300px;.
That worked, but let's do something
more interesting.
Let's use percentage width,
and say that the div will always take up
70 percent of the available width.
Now the text is constrained
to that smaller box,
and the `div` has gotten taller.
If we really want to, we can also
constrain the height of the box
with the height property:
height: 180px;
Hmm, okay. Something funny happened.
The grey box resized to 180 pixels,
but the text is overflowing
outside of that grey box.
Why'd that happen?
That is because of a property
we call "overflow".
The default value
for `overflow` is `visible`,
which means that the element resizes,
but the content flows outside of it,
which looks a bit silly.
What other options
do we have for overflow?
Well, we can try `hidden`.
That cuts the content off,
trimming it at the border.
That's not what we want though,
because then our viewers won't be able
to read all of amazing official info.
We could also try `auto`,
which tells the browser to add scroll bars
if the content overflows.
Now I can scroll around
inside the box to see the text.
If we want, we can be even more specific:
we can specify different
overflow properties for each direction.
For example, if we wanted
to overflow with scrollbars
in the y direction, up and down,
we'll just:
overflow-y: auto;
but then if we want to trim it
in the x direction,
we can say:
overflow-x: hidden;.
Be careful any time you're using overflow,
because scrollbars can get
really annoying for the user.
Especially scrollbars within scrollbars--
avoid those if you can.
Now going back to width/height--
we can actually use width and height
for all sorts of elements,
like our images.
Now that you know CSS, you can
use the width/height CSS properties
instead of the width/height attributes.
Let's make this cat image a bit bigger
by giving it an id, "cute-cat",
deleting the attribute,
and going up to our style rule, let's say:
#cute-cat {
width: 120px;.
Just like before with attributes,
it's best to only specify
the width or the height,
and let the browser figure out
the best value for the other dimension.
Otherwise, we'll have a squashed kitty!
Well, okay, that sounds kind of awesome,
so let's just try that for a second:
height: 40px;
Haha, squashed kitty-- yay!
Okay, I got that urge out.
I'll be a responsible web developer
and delete it now.
The more knowledge you have,
the more responsibility
you need to take on.
Just because you can
add scrollbars to everything,
and squash all the kitties,
it doesn't mean that you should.
Because you're usually making
websites for other people to use,
and what you think is hilarious
might be what they find super-hard to use.
But if you make a few funny things
here on Khan Academy, I won't mind.