469,889 Members | 1,367 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,889 developers. It's quick & easy.

Eric Meyer on CSS question

Hi,

This line is straight from page 82 of "Eric Meyer on CSS":

td#main {background: #FFD; color: black; border: 2px solid #797;
border-width: 2px 2px 2px 1px; }

Isn't it redundant to have "2px" in the border rule when you have an
explicit border-width rule? What am I missing?
Jamie
Jul 20 '05 #1
7 1663
On Fri, 23 Jul 2004, Jamie wrote:
td#main {background: #FFD; color: black; border: 2px solid #797;
border-width: 2px 2px 2px 1px; }

Isn't it redundant to have "2px" in the border rule when you have an
explicit border-width rule? What am I missing?


The shortcomings of some earlier browser versions, I think.

In other contexts it might be an issue of specificity, but I can't see
how that would be operative here.
Jul 20 '05 #2
"Jamie" <en***********@yahoo.com> wrote in message
news:88********************@broadviewnet.net...
Hi,

This line is straight from page 82 of "Eric Meyer on CSS":

td#main {background: #FFD; color: black; border: 2px solid #797;
border-width: 2px 2px 2px 1px; }

Isn't it redundant to have "2px" in the border rule when you have an
explicit border-width rule? What am I missing?


The specs require that the width be specified if you use border, and do not
allow you set different widths for different sides.
Jul 20 '05 #3
Jamie <en***********@yahoo.com> wrote:
td#main {background: #FFD; color: black; border: 2px solid #797;
border-width: 2px 2px 2px 1px; }

Isn't it redundant to have "2px" in the border rule when you have an
explicit border-width rule? What am I missing?


The shorthand requires all three values.

Without the shorthand the code fragment would have looked like this:

td#main {background: #FFD; color: black; border-width: 2px 2px 2px 1px;
border-style: solid; border-color: #797; }

The first saved 17 bytes.

Perhaps Eric is the frugal type :)

--
Spartanicus
Jul 20 '05 #4
> The shorthand requires all three values.

Shouldn't the CSS validator pick that up then? I didn't know it mattered...
Should I bother changing all of my border definitions [where I didn't state
the width] then? Is it a big deal?
Jul 20 '05 #5
> The shorthand requires all three values.

Reading through the [2.1] specs, I don't think that's accurate... but,
correct me if I'm wrong.

This is an example taken from
http://www.w3.org/TR/CSS21/box.html#border-properties

You may need to scroll down to 'border'

<code>

p { border: solid red }
p {
border-top: solid red;
border-right: solid red;
border-bottom: solid red;
border-left: solid red
}

</code>

And,

<quote>
This is a shorthand property for setting the width, style, and color of the
top, right, bottom, and left border of a box.

Example(s):
h1 { border-bottom: thick solid red }
The above rule will set the width, style, and color of the border below the
H1 element. Omitted values are set to their initial values. Since the
following rule does not specify a border color, the border will have the
color specified by the 'color' property:

H1 { border-bottom: thick solid }
</quote>

Thus, the shorthand doesn't require all three values. Again, correct me if
I'm misinterpreting this.

Jul 20 '05 #6
*Jamie* <en***********@yahoo.com>:

td#main {/*...*/ border: 2px solid #797; border-width: 2px 2px 2px 1px; }

Isn't it redundant to have "2px" in the border rule when you have an
explicit border-width rule?


Yes, I would write it like this:

border: 2px solid #797; border-left-width: 1px;

Note that

border-width: 2px 2px 2px 1px; border: 2px solid #797;

wouldn't work as desired, because all four borders would be 2px.
Some UAs may also make borders 'medium' wide for

border-width: 2px 2px 2px 1px; border: solid #797;

but AFAIK that would be wrong, although 'medium' is the initial value for
'border-(top|right|bottom|left)-width' and (most) shorthand properties
reset to initial if no explicit values are given. They would be right if
those rules were not in the same ruleset, i.e.

foo {border-width: 2px 2px 2px 1px;}
* foo {border: solid #797;}

I'm not totally sure about that, so CMIIW, please!

--
"The squeaking wheel doesn't always get the grease.
Sometimes it gets replaced."
Vic Gold
Jul 20 '05 #7
"e n | c k m a" <bo*@marley.com> wrote:
The shorthand requires all three values.


Reading through the [2.1] specs, I don't think that's accurate... but,
correct me if I'm wrong.


You are right, thanks for the correction.

The border shorthand takes one, two or three values, when specifying one
or two the other properties are set to their initial value.

--
Spartanicus
Jul 20 '05 #8

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by kayodeok | last post: by
7 posts views Thread by Jamie | last post: by
9 posts views Thread by Don Kim | last post: by
9 posts views Thread by Alan Silver | last post: by
reply views Thread by Salome Sato | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.