<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Peter's Blog - Nodes for css</title>
    <link>http://www.petersblog.org/</link>
    <description>Nodes containing the tag css</description>
    <item>
      <title>How to be Specific in CSS</title>
      <link>http://www.petersblog.org/node/view/1461</link>
      <description>&lt;p&gt;
I had an application where I wanted most of the cells in an html table to have borders around them except for the columns on the right. I managed to achieve this thusly: 
&lt;/p&gt;
&lt;pre class="lazy"&gt;&lt;span class="line-numbers"&gt;   1 &lt;/span&gt; &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;table&lt;/span&gt; &lt;span class="MetaTag"&gt;class&lt;/span&gt;=&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;tablewithborders&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;   2 &lt;/span&gt;   &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;tr&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;   3 &lt;/span&gt;     &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;th&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Heading 1&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;th&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;th&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Heading 2&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;th&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt; &lt;span class="MetaTag"&gt;class&lt;/span&gt;=&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;tablecellnoborders&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Constant"&gt;&lt;span class="Constant"&gt;&amp;amp;&lt;/span&gt;nbsp&lt;span class="Constant"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;   4 &lt;/span&gt;   &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;tr&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;   5 &lt;/span&gt;   &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;tr&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;   6 &lt;/span&gt;     &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Data 1&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Data 2&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt; &lt;span class="MetaTag"&gt;class&lt;/span&gt;=&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;tablecellnoborders&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;edit&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;   7 &lt;/span&gt;   &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;tr&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;   8 &lt;/span&gt;   &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;tr&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;   9 &lt;/span&gt;     &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Data 1&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Data 2&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt; &lt;span class="MetaTag"&gt;class&lt;/span&gt;=&lt;span class="String"&gt;&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;tablecellnoborders&lt;span class="String"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;edit&lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;td&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;  10 &lt;/span&gt;   &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;tr&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;  11 &lt;/span&gt; &lt;span class="MetaTag"&gt;&lt;span class="MetaTag"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="MetaTag"&gt;table&lt;/span&gt;&lt;span class="MetaTag"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;
The css looks like this: 
&lt;/p&gt;
&lt;pre class="lazy"&gt;&lt;span class="line-numbers"&gt;   1 &lt;/span&gt; &lt;span class="Entity"&gt;table&lt;/span&gt;&lt;span class="Entity"&gt;&lt;span class="Entity"&gt;.&lt;/span&gt;tablewithborders&lt;/span&gt; &lt;span class="Entity"&gt;th&lt;/span&gt; {
&lt;span class="line-numbers"&gt;   2 &lt;/span&gt;     &lt;span class="Support"&gt;border&lt;/span&gt;: &lt;span class="Constant"&gt;1&lt;/span&gt;&lt;span class="Keyword"&gt;px&lt;/span&gt; &lt;span class="Support"&gt;solid&lt;/span&gt; &lt;span class="Support"&gt;black&lt;/span&gt;;
&lt;span class="line-numbers"&gt;   3 &lt;/span&gt;     &lt;span class="Support"&gt;padding&lt;/span&gt;: &lt;span class="Constant"&gt;3&lt;/span&gt;&lt;span class="Keyword"&gt;px&lt;/span&gt;;
&lt;span class="line-numbers"&gt;   4 &lt;/span&gt;     &lt;span class="Support"&gt;background&lt;/span&gt;: &lt;span class="Constant"&gt;&lt;span class="Constant"&gt;#&lt;/span&gt;266A9B&lt;/span&gt;;
&lt;span class="line-numbers"&gt;   5 &lt;/span&gt;     &lt;span class="Support"&gt;color&lt;/span&gt;: &lt;span class="Constant"&gt;&lt;span class="Constant"&gt;#&lt;/span&gt;ffffff&lt;/span&gt;;
&lt;span class="line-numbers"&gt;   6 &lt;/span&gt; }
&lt;span class="line-numbers"&gt;   7 &lt;/span&gt; 
&lt;span class="line-numbers"&gt;   8 &lt;/span&gt; &lt;span class="Entity"&gt;table&lt;/span&gt;&lt;span class="Entity"&gt;&lt;span class="Entity"&gt;.&lt;/span&gt;tablewithborders&lt;/span&gt; &lt;span class="Entity"&gt;td&lt;/span&gt; {
&lt;span class="line-numbers"&gt;   9 &lt;/span&gt;     &lt;span class="Support"&gt;border&lt;/span&gt;: &lt;span class="Constant"&gt;1&lt;/span&gt;&lt;span class="Keyword"&gt;px&lt;/span&gt; &lt;span class="Support"&gt;solid&lt;/span&gt; &lt;span class="Support"&gt;black&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  10 &lt;/span&gt;     &lt;span class="Support"&gt;padding&lt;/span&gt;: &lt;span class="Constant"&gt;3&lt;/span&gt;&lt;span class="Keyword"&gt;px&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  11 &lt;/span&gt; }
&lt;span class="line-numbers"&gt;  12 &lt;/span&gt; 
&lt;span class="line-numbers"&gt;  13 &lt;/span&gt; &lt;span class="Entity"&gt;table&lt;/span&gt;&lt;span class="Entity"&gt;&lt;span class="Entity"&gt;.&lt;/span&gt;tablewithborders&lt;/span&gt; &lt;span class="Entity"&gt;td&lt;/span&gt;&lt;span class="Entity"&gt;&lt;span class="Entity"&gt;.&lt;/span&gt;tablecellnoborders&lt;/span&gt; {
&lt;span class="line-numbers"&gt;  14 &lt;/span&gt;     &lt;span class="Support"&gt;border&lt;/span&gt;: &lt;span class="Constant"&gt;0&lt;/span&gt;&lt;span class="Keyword"&gt;px&lt;/span&gt; &lt;span class="Support"&gt;solid&lt;/span&gt; &lt;span class="Support"&gt;white&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  15 &lt;/span&gt;     &lt;span class="Support"&gt;padding&lt;/span&gt;: &lt;span class="Constant"&gt;3&lt;/span&gt;&lt;span class="Keyword"&gt;px&lt;/span&gt;;
&lt;span class="line-numbers"&gt;  16 &lt;/span&gt; }
&lt;/pre&gt;
&lt;p&gt;
The magic is in the last selector: &lt;code&gt;.tablewithborders td.tablecellnoborders&lt;/code&gt;. This specifically styles td cells of class tablecellnoborders within a table of class tablewithborders. 
&lt;/p&gt;
&lt;p&gt;
Here is what it looks like: 
&lt;/p&gt;
&lt;p&gt;
&lt;iframe src ="/files/StyleTable.html"&gt; &lt;/iframe&gt; 
&lt;/p&gt;
&lt;p&gt;
As you see, I have nice links at the end of each row that allow that row to be edited. 
&lt;/p&gt;
&lt;p&gt;
It looks easy spelt out like this but this is actually an epithany for me in my understanding of css selectors. 
&lt;/p&gt;
&lt;p&gt;
And as for embedding the example output in this blog using an iframe linked to the example file... mwah. 
&lt;/p&gt;&lt;p&gt;Related Posts: &lt;a href="/tag/css"&gt;css&lt;/a&gt; &lt;a href="/tag/html"&gt;html&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.petersblog.org/node/view/1461</guid>
      <category domain="http://www.technorati.com/tag">css</category>
      <category domain="http://www.technorati.com/tag">html</category>
    </item>
  </channel>
</rss>
