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 6255833
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T14:26:21+00:00 2026-05-24T14:26:21+00:00

This is driving me nuts: HTML: <div><h1>Hello World!</h1></div> CSS: *:not(div) h1 { color: #900;

  • 0

This is driving me nuts:

HTML:

<div><h1>Hello World!</h1></div>

CSS:

*:not(div) h1 { color: #900; }

Doesn’t this read, “Select all h1 elements that have an ancestor that is not a div element…?” Thus, “Hello World!” should not be coloured red, yet it still is.

For the above markup, adding the child combinator works:

*:not(div) > h1 { color: #900; }

But doesn’t affect the h1 element if it is not a child of a div element. For example:

<div><article><h1>Hello World!</h1></article></div>

Which is why I’d like to indicate the h1 element as a descendant, not a child, of the div element. Anyone?

  • 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-24T14:26:22+00:00Added an answer on May 24, 2026 at 2:26 pm

    Doesn’t this read, “Select all h1 elements that have an ancestor that is not a div element…?”

    It does. But in a typical HTML document, every h1 has at least two ancestors that are not div elements — and those ancestors are none other than body and html.

    This is the problem with trying to filter ancestors using :not(): it just doesn’t work reliably, especially when the :not() is not being qualified by some other selector such as a type selector or a class selector, e.g. .foo:not(div). You’ll have a much easier time simply applying styles to all h1 elements and overriding them with div h1.

    In Selectors 4, :not() has been enhanced to accept full complex selectors containing combinators, including the descendant combinator. Whether this will be implemented in the fast profile (and thus CSS) remains to be tested and confirmed, but once it is implemented, then you will be able to use it to exclude elements with certain ancestors. Due to how selectors work, the negation has to be done on the element itself and not the ancestor in order to work reliably, and therefore the syntax will look a little different:

    h1:not(div h1) { color: #900; }
    

    Anyone who’s familiar with jQuery will quickly point out that this selector works in jQuery today. This is one of a number of disparities between Selector 3’s :not() and jQuery’s :not(), which Selectors 4 seeks to rectify.

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

Sidebar

Related Questions

This is driving me nuts. Here is some HTML and CSS that I have
this is driving me absolutely nuts. I'm not the most experienced with CSS, so
This error message is driving me nuts. I'm getting it when using Html.ListBox and
This is driving me nuts. I've looked at all the relevant MSDN tutorials but
Ok, this is driving me nuts - I've searched all of the references and
This is driving me nuts... <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd> <html
This is driving me nuts. I am using some 3rd-party code in a Windows
This is driving me nuts. I can't seem to get the data template within
This is driving me nuts. I think it is because of some connection string
This is driving me nuts. I believe I asked this exact same question, but

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.