← Back to context

Comment by skydhash

12 hours ago

> You also need the converse - find which elements a given style applies to - and there's no way to do that AFAIK.

I've never needed to do this, because I pay attention to my DOM structure and from CSS selectors can figure where a style applies. But I've just checked and the search bar for Firefox Inspector supports css selectors.

> In my experience the DOM doesn't have semantics, or to the extent that it does, they change all the time.

The DOM semantics are those of a hyper linked documents|forms. Take a page and think about what each elements means and their relations to each order. They will form a hierarchy with some generic components replicated. The due to how CSS is applied, you go from generic to specific elements, using the semantic structure to do the targeting

As an example, the structure of HN's reply page is

  page
    header
      logo + Title
    body
      comment_box
        upvote_button + comment_metadata
        comment_text
      textbox // reply text
      button // reply

This and the structure of the other pages will give you an insight on how to target the relevant elements.

> As an example, the structure of HN's reply page

Is made up of table tags, which the CSS people will tell you is wrong/impossible/has different semantics.

  • > Is made up of table tags, which the CSS people will tell you is wrong/impossible/has different semantics

    A table is a grid. Lot of UI toolkits have a grid container, and even CSS added it specifically as a layout engine.

    • > A table is a grid. Lot of UI toolkits have a grid container

      Sure. As long as the end result is the same grid, it shouldn't matter. But in a CSS world you switch your table for grid-layout divs (or vice versa) and suddenly one corner case thing that is in one grid cell somewhere in your app gets its styling flipped.