Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Well done!
You have completed CSS Selectors!
You have completed CSS Selectors!
Preview
In this video, we'll cover the :root and :target pseudo-classes. :root selects the highest-level parent element in a document, and :target selects an element when it's the target of a link.
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
So one of the three final pseudo classes
we'll cover here is the root pseudo class.
0:00
What root does for us, is it selects the
element that is the root of the document,
0:05
or the highest level parent.
0:10
Now, in an HTML file, this will usually be
the HTML element,
0:12
because as we can see, it is in fact the
topmost element in the document.
0:16
So, let's go over to our CSS directory,
and open up the style.css file.
0:21
And, in our style sheet,
0:27
we're going to create a root pseudo class
by typing colon, followed by root.
0:29
[BLANK_AUDIO]
0:34
And let's give this rule, a background
property, and
0:37
let's set the value to pound e3effb.
0:42
So, once we save our style sheet and
0:46
refresh the page, we see how the selector
targets the HTML element as the root, and
0:48
it turned the background color of the page
light blue.
0:53
Now if you're wondering why not just use
the HTML selector instead?
0:57
Well, keep in mind that root has more
specificity than the HTML type selector.
1:01
And the reason I'm bringing up the root
pseudo-class here, is that CSS can be
1:07
used with other types of mark-up languages
or formats, like SVG and XML.
1:11
So in those classes, the root pseudo-class
may refer to different elements.
1:15
But no matter the language,
1:20
root will always target that top most
element in the document.
1:22
So next, we have the target pseudo class.
1:26
And target selects an element when the
element is the target of a link.
1:29
Now the way the browser selects the
element is based on the hash in a URL.
1:33
And I'll show you what I mean.
1:37
So, by now, we know that ID's also have
browser functionality.
1:38
So we can use them as landmarks or anchors
in a page.
1:43
So, for instance, the different href
values in our three links here,
1:46
match the IDs of the three columns below.
1:51
So for instance here we have col-a,
col-b, and
1:54
col-c as the href values for our three
links.
1:57
Then right below, we have divs with the ID
col-a,
2:00
col-b, and below that, col-c.
2:05
So if we go back to the browser and click
on any of these links,
2:08
notice how the href value gets appended to
the URL.
2:13
So after the URL, we see the hash mark
with the col-a identifier.
2:18
And this is what the browser uses to
target the element with
2:23
the corresponding ID.
2:27
So, back in our style sheet,
2:28
let's create a new selector using the
target pseudo class.
2:30
So we're gonna type colon, followed by
target.
2:33
Let's style this so that once an element
is the target of a link,
2:38
we're going to invert the colors in our
column.
2:42
So to do that, let's add a background
property, and
2:46
we're gonna set a background color of
#384047, and let's make the color white.
2:50
All right.
2:57
So let's save our style sheet, and refresh
our preview.
2:59
Once we click on a column link, if a
column's ID matches a link's href value,
3:03
the column takes on those styles defined
in the target selector rule.
3:08
So in this case, Column A is the target,
as we can see here in the URL, but
3:12
once we click the Column B or Column C
links, those become the target elements.
3:17
Cool.
[BLANK_AUDIO]
3:23
And if we need to style a specific target,
3:26
we'll need to specify the ID in front of
the pseudo-class.
3:28
So, for example, let's make col-c here,
take on different styles on target.
3:32
So back on our style sheet right below the
target rule,
3:37
let's first target that col-c ID, followed
by the target psuedo class,
3:43
and let's set it to a background color of
#eff1f2, and
3:50
right below that, let's set the color
value back to
3:56
the initial value, and let's give it a
box-shadow.
4:01
Let's have some fun here.
4:07
So let's add a box-shadow property, and
let's make the offsets 0.
4:08
So we're gonna add two 0s, and then we're
going to make the blur 6 pixels,
4:12
and let's set the color value to an RGBA
value, and
4:18
it's going to be 0,0,0, and let's set the
alpha to 0.2.
4:22
Okay.
So once we save our style sheet,
4:26
let's refresh the page, and once we click
the Column C link, we're able to see
4:29
those more specific styles applied to the
column, once the browser targets it.
4:34
[BLANK_AUDIO]
4:39
So with the target pseudo class,
4:42
we can do a number of things to change the
state of an element on target.
4:44
So we could, for
4:48
example, change its position, maybe
display a different background image.
4:49
We can also hide or
4:53
show parts of an element on target, even
trigger an animation sequence.
4:53
So, a useful selector we can use to
indicate to the user that something on
4:57
the page has changed.
5:02
And take a look at the link in the
teacher's notes, because I've added a cool
5:04
little animation sequence, that was
created with the target pseudo class.
5:08
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up