Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 958387
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T00:51:27+00:00 2026-05-16T00:51:27+00:00

Big bold caps-lock TL;DR: I KNOW HOW SELECTOR SPECIFICITY IS DETERMINED, I THINK IT

  • 0

Big bold caps-lock TL;DR:

I KNOW HOW SELECTOR SPECIFICITY IS DETERMINED, I THINK IT USES FLAWED ASSUMPTIONS AND I CAN BACK MY IRRITATIONS UP WITH VALID SET THEORY RELATIONS, PLEASE DO NOT RESPOND EXPLAINING W3 CALCULATION RULES FOR SPECIFICITY, PLEASE READ THE QUESTION <- read that.

This has bothered me for some time, when I write a style for some HTML that would be similar to below:

...
<div id="outer">
    <span id="inner"></span>
    <span></span>
    ...
</div>
...

Why would specificity rules make the selector “#outer span” more specific than “#inner”?
ID’s are unique, so when I say “#inner” I can ONLY be referring to one element, so why is it less specific? I understand the rules on determining specificity, I just wonder if this was intentional or accidental, also if anyone knows how I can ask this question to the people who write the css standards.

I should note, I do understand that I COULD use #outer #inner to ensure maximum specificity, but that seems like it defeats the purpose of ID in the first place. This also is a problematic solution for when I write templates and I’m not sure that one ID will be inside of another. I’m not looking for a workaround, just a theory answer.

My question is theory, entirely based on set logic. The though I have is that if you define a rule for 1 item of n possible items, isn’t that as specific as you can go? Why would the creators of CSS selectors make a rule that could define m items of n possible items, where m is a subset of n as a more specific rule?

My thought is that #id would be the equivalent of identifying 1 item by name, and #id elm would be identifying a group by its relation to an item by name. It’s completely counter intuitive to call a named item less specific than an unnamed group with a named relation.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T00:51:28+00:00Added an answer on May 16, 2026 at 12:51 am

    I think the idea of “why” is more a “generational” or “authority” view point. If #Parent (of any generation back) says all my children who meet qualification “x” (in your case, span) are going to be given an inheritance of “y” (whatever css property), it doesn’t matter what the single individual #Child wants, it needs the authority of the #Parent to get it if the parent has stated otherwise.

    Added on edit: The inline style would then be the rebellious child, and the !important the crack down parent. Edit: I kept this for humor, but I don’t think it reflects the idea as well as my later statement below.

    Added on edit to question in comment: Given:

    #outer span ...
    #inner (which is a span element)
    

    Then to help insure #inner selection I recommend:

    body span#inner (*edit:* just span#inner works *edit:* if defined later)
    

    or give body an id and

    #bodyId #inner
    

    Of course, these can still be overridden. The more “generations” involved, the more it becomes difficult to change the behavior because of the generational consensus (if great grandpa and grandpa and parent are all in agreement, it’s likely the child is not going to get away with doing his own thing).

    I had to majorly rewrite this section on later edit
    Given this HTML:

    <div id="grandparent">
      <div id="parent">
        <div id="child"></div>
      </div>
    </div>
    

    I had previously stated that “#parent div has greater authority than #grandparent div. Both have generational authority, in fact, an ‘equal’ generational authority, but the first is ‘nearer’ generation” wins. The error in that is that “nearer” generationally is not what matters, but rather last to be granted authority. Given equal authority powers, the own designated last is the one that wins.

    I believe I can still stand by this statement: With that thought in mind, a selector like #child[id] (which outweighs both previous selectors) treats its attributes as permissions for greater authority to rule that which itself controls. Having the # already gave it authority, but not enough to override a # of a earlier generation if that earlier generation also carries another selector granting more authority.

    So #grandparent div outweighs #child but not div#child if it is last to receive authority [added this], and not #child[id] because the [id] adds greater authority for the #child to rule itself. If equal selectivity then last one to be granted authority wins.

    Again, the style attribute setting a style property itself really acts more like a supreme granting of authority to rule oneself, assuming something more “!important” doesn’t take it away.

    As a summary statement to answer “why” it is this way (and not in line with “set” theory), I believe it is not about accuracy or really even specificity (though that is the term used) as indeed then one would expect #ChildsName to be the final unique say in the matter because nothing more specific need be said. Rather, however, while the documentation may not state it as such, “selectivity” is really structured on a granting of authority. Who has the most “rights” to rule the element, and given a “tie”, who was the last one to be granted those rights.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

A big part of my C++ application uses classes to describe the data model,
Big problem. I'm not sure what it was that I did, but it seems
I am reviewing a big java application to see if there are any performance
I have a big string (let's call it a CSV file, though it isn't
It's big problem to convert mod_rewrite rules to lighttpd format
What is Big O notation? Do you use it? I missed this university class
Server virtualization is a big thing these days, so I'm tasked at work to
i have a big web application running in perl CGI. It's running ok, it's
I'm a big fan of the Jadclipse plugin and I'd really like to upgrade
I have a big load of documents, text-files, that I want to search for

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.