15

I am getting started with learning CSS.

While looking through the tutorial on w3schools.

I realized some of the example start with

.awesome-text-box{}

Is there a different between

.awesome-text-box {} and awesome-text-box{}

without the dot?

What does the dot notation means here

p.one {
border-style: solid;
border-width: 5px;
}

p.two {
border-style: solid;
border-width: medium;
}

p referes to

?

0

6 Answers 6

26

A dot in css is for what is called a class.

They can be called almost anything, for example in your CSS you would create a class and add style for it (in this case, I'm making the background black);

.my-first-class {
    background-color: #000;
    ...
}

and to apply this class to an HTML element, you would do the following

<body class="my-first-class">
    ...
</body>

this would mean the body of the page would become black.

Now, you can create classes for CSS style or you can reference HTML elements directly, for example (CSS again);

body {
    background-color: #000;
}

would directly reference the <body> element on the page and do the same again.

The main difference between the two is that CSS classes are reusable. By comparison, referencing the HTML tag directly will affect all tags on the page (that are the same), for example (CSS again);

body {
    background-color: #000;
}

.my-first-class {
    background-color: #FFF;
}

and now for some HTML;

<body>
    <p class="my-first-class">This is the first line</p>
    <p class="my-first-class">This is the second line</p>
</body>

This would produce a black page, with 2 white boxes with text inside them (try it out!)

Now for your last part of the question about p.one {...} CSS.

This is a reference to a <p> tag that has class="one" added to it, <p class="one">...</p>

That CSS will only work on a <p> tag with the one class added (as above).


Extra for experts...

There is also one more selector type and it's called an ID (and I personally do not use these when doing CSS styling but some people like too and I don't know why...)

Much like a class, you can have an id on an HTML element; <p id="my-first-id"></p>

and to add CSS style to this, you would put (in the CSS);

#my-first-id {
    ...
}

and that would style all elements with that id added.

Hopefully that helped answer all the parts, ask again if you need an even better explanation :)

1
  • 2
    While classes are often preferred for selecting elements for styling over ids, this is based on a premise of re-usability. But ids - unique identifiers for a single element - are integral to HTML and have many uses in an HTML document. So it makes perfect sense to exploit these for styling if they are available.
    – Alohci
    Commented Aug 7, 2014 at 7:56
12

The dot denotes that the selector is a class. So it will select elements in your page as such:

.awesome-text-box {

}
<div class="awesome-text-box"></div>

Whereas without the dot denotes an element name. Such as:

div {

}
<div></div>

In the other example you gave, the dot notation is using chaining this is where you can select an element with numerous conditions. In your example:

p.one {

}
// Will find
<p class="one"></p>
// However it will not find
<div class="one"></div>

Whilst I am here I can give you a list of other common selectors too:

  • #awesome-text-box => <div id="awesome-text-box"></div> => ID
  • .btn.btn-style-1 => <span class="btn btn-style-1"></span> => Chaining classes
  • p > span => <p><span></span></p> => Child
  • p span => <p><a><span></span></a><span></span> => Descendant (anything below)
  • p + span => <p></p><span></span> => Sibling
0

A '.' refers to a class, while a '#' refers to a id. When neither a '.' or a '#' are used, the CSS will apply the style to an HTML object. So for p .one and p .two, the CSS will be applied to the '.one' and '.two' classes that exists within the 'p' object.

For a more detailed example;

<p class = "one">This text will have the CSS of "p .one"</p>
<p class = "two">This text will have the CSS of "p .two"</p>
0

. means a class. You can call that CSS class with HTML

example

<span class="awesome-text-box"> ABCD </span>

and P means <p> tag in HTML you can call

<p class="one"> ABCD </p>

Ref -

http://www.w3schools.com/css/css_selectors.asp

0

The dot notation is for class and without dot that would not work. The selector name like div, p don't need dot notation. And use hash (#) for the selector with id.

Ex-

<div id="foo">foo bar</div>
<div class="bar">foo bar</div>

#foo{} /* selects foo with id foo */
.bar{} /* selects foo with class bar */
div{} /* selects the div */
0

Here . is class selector. It means apply style to all elements which has class awesome-text-box ie,

<div class="awesome-text-box"></div>

while without dot it is tag name like you mention in second example p Here p is tag:

<p>Some text</p>

Similarly p.one apply the style to all p tags which has class one. ie,

<p class="one">Some text</p>

Not the answer you're looking for? Browse other questions tagged or ask your own question.