<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Structural Naming</title>
	<atom:link href="http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/feed/" rel="self" type="application/rss+xml" />
	<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it&#039;s largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<lastBuildDate>Sun, 14 Mar 2010 11:22:39 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: OpenOn website </title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-477615</link>
		<dc:creator>OpenOn website </dc:creator>
		<pubDate>Wed, 23 Sep 2009 01:34:28 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-477615</guid>
		<description>[...] am again standing on the shoulders of giant&#8217;s regarding the markup, and in particular and keen to adopt [...]</description>
		<content:encoded><![CDATA[<p>[...] am again standing on the shoulders of giant&#8217;s regarding the markup, and in particular and keen to adopt [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CSS: Estructura Vs Semántica . Como nombrar las diferentes partes de mi web &#124; Timersys</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-465390</link>
		<dc:creator>CSS: Estructura Vs Semántica . Como nombrar las diferentes partes de mi web &#124; Timersys</dc:creator>
		<pubDate>Mon, 08 Jun 2009 13:36:38 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-465390</guid>
		<description>[...] and HTML5 2. Standardizing CSS class and id names 3. User interfaces and CSS Naming convention 4. Structural naming 5. Smart CSS Ain&quot;t Always Sexy CSS 6. Semantic coding 7. Semantic naming conventions for HTML and [...]</description>
		<content:encoded><![CDATA[<p>[...] and HTML5 2. Standardizing CSS class and id names 3. User interfaces and CSS Naming convention 4. Structural naming 5. Smart CSS Ain&#8221;t Always Sexy CSS 6. Semantic coding 7. Semantic naming conventions for HTML and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: OpenOn website - davidgswain.com</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-464962</link>
		<dc:creator>OpenOn website - davidgswain.com</dc:creator>
		<pubDate>Fri, 05 Jun 2009 22:31:30 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-464962</guid>
		<description>[...] am again standing on the shoulders of giant&#8217;s regarding the markup, and in particular and keen to adopt [...]</description>
		<content:encoded><![CDATA[<p>[...] am again standing on the shoulders of giant&#8217;s regarding the markup, and in particular and keen to adopt [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Theodicius &#187; CSS and the meaning in presentation</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-438334</link>
		<dc:creator>Theodicius &#187; CSS and the meaning in presentation</dc:creator>
		<pubDate>Sat, 24 Jan 2009 05:51:11 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-438334</guid>
		<description>[...] was a time when I was fully in agreement with Eric Meyer on the naming of classes. It made sense to me to create CSS class names based on the structure of [...]</description>
		<content:encoded><![CDATA[<p>[...] was a time when I was fully in agreement with Eric Meyer on the naming of classes. It made sense to me to create CSS class names based on the structure of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Structural Naming Convention in CSS - Six Revisions</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-429081</link>
		<dc:creator>Structural Naming Convention in CSS - Six Revisions</dc:creator>
		<pubDate>Thu, 04 Dec 2008 05:25:10 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-429081</guid>
		<description>[...] Structural Naming [...]</description>
		<content:encoded><![CDATA[<p>[...] Structural Naming [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: deshock.com &#187; Blog Archive &#187; A WordPress Theme Structure with Meaning and Possibility</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-371068</link>
		<dc:creator>deshock.com &#187; Blog Archive &#187; A WordPress Theme Structure with Meaning and Possibility</dc:creator>
		<pubDate>Mon, 05 May 2008 13:40:59 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-371068</guid>
		<description>[...] thinking about the whole topic of naming and structure check out What&#8217;s in a name (pt2) and Structural Naming. These two posts are 4 years old but still [...]</description>
		<content:encoded><![CDATA[<p>[...] thinking about the whole topic of naming and structure check out What&#8217;s in a name (pt2) and Structural Naming. These two posts are 4 years old but still [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean Brookes</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-279971</link>
		<dc:creator>Sean Brookes</dc:creator>
		<pubDate>Tue, 11 Dec 2007 02:02:17 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-279971</guid>
		<description>&lt;blockquote cite=&quot;Tony Martin&quot;&gt;Looking around the web, the question of naming conventions was kicked around for a while a couple of years back, but appears to have gone quiet.&lt;/blockquote&gt;
Tony, I have spent the last few days researching for a large UI revamp project and you are right, there seemed to be a lively discussion around these issues that stopped around mid 2005.
I too am going to investigate some of the new CSS frameworks, but wrt your &quot;customer&quot; naming idea, I think you are on to something.  Combined with a body id tag that kind of convention could be quite powerful.</description>
		<content:encoded><![CDATA[<blockquote cite="Tony Martin"><p>Looking around the web, the question of naming conventions was kicked around for a while a couple of years back, but appears to have gone quiet.</p></blockquote>
<p>Tony, I have spent the last few days researching for a large UI revamp project and you are right, there seemed to be a lively discussion around these issues that stopped around mid 2005.<br />
I too am going to investigate some of the new CSS frameworks, but wrt your &#8220;customer&#8221; naming idea, I think you are on to something.  Combined with a body id tag that kind of convention could be quite powerful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Holly Fortenberry</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-246065</link>
		<dc:creator>Holly Fortenberry</dc:creator>
		<pubDate>Mon, 15 Oct 2007 16:38:47 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-246065</guid>
		<description>I (now) use standards-based (semantic) naming conventions for a variety of reasons, not the least of which is to save time (for automation) when creating a new site.  

Also, nobody seems to have noticed/mentioned that &quot;header&quot; (and &quot;footer&quot; as well, although with less potential problem) implies a position on the page rather than content and is therefore not technically semantic.  I can see where it might be advantageous to use the &quot;header&quot; along the left (or heck, even right) side or who knows where on a more artistic site.  

I like to use &quot;nameplate&quot; instead of &quot;header&quot; since it semantically includes all the important ingredients name/logo/graphic/subtitle (see publishing naming conventions).  I use &quot;masthead&quot; for supporting pages, such as those in a login screen or a form where you don&#039;t want or need all of the parts of the nameplate.  &quot;Header&quot; is absolutely no good in my opinion because it is presentational as well as too similar to the &quot;head&quot; tag. The use of &quot;header&quot; by a majority of websites tells me that there is still too little deep understanding/application of the web standards.</description>
		<content:encoded><![CDATA[<p>I (now) use standards-based (semantic) naming conventions for a variety of reasons, not the least of which is to save time (for automation) when creating a new site.  </p>
<p>Also, nobody seems to have noticed/mentioned that &#8220;header&#8221; (and &#8220;footer&#8221; as well, although with less potential problem) implies a position on the page rather than content and is therefore not technically semantic.  I can see where it might be advantageous to use the &#8220;header&#8221; along the left (or heck, even right) side or who knows where on a more artistic site.  </p>
<p>I like to use &#8220;nameplate&#8221; instead of &#8220;header&#8221; since it semantically includes all the important ingredients name/logo/graphic/subtitle (see publishing naming conventions).  I use &#8220;masthead&#8221; for supporting pages, such as those in a login screen or a form where you don&#8217;t want or need all of the parts of the nameplate.  &#8220;Header&#8221; is absolutely no good in my opinion because it is presentational as well as too similar to the &#8220;head&#8221; tag. The use of &#8220;header&#8221; by a majority of websites tells me that there is still too little deep understanding/application of the web standards.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Martin</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-238769</link>
		<dc:creator>Tony Martin</dc:creator>
		<pubDate>Fri, 28 Sep 2007 08:08:38 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-238769</guid>
		<description>Looking around the web, the question of naming conventions was kicked around for a while a couple of years back, but appears to have gone quiet.  Maybe css frameworks are the new hot topic.

However, as a keen user of Ruby on ~Rails, it seems to me that there is a strong case for revisiting css naming wrt RoR structure.  I have been giving it a bit of thought recently and there is good scope to fairly tightly couple css names wtih for example the use of RoR elements such as partials and layouts.   eg if my view contains a partial for customer, then it seems to make sense for it to be in a div with an id of customer.

Taking this further, I have played around with targetting elements using nested ids, so that my partial might have an id of customer, but it could appear in different views.  So if I have a view, say sales which includes customer, should my sale be a div with an id of sales so that I can specifically target div#sales div#customer.  This seems to fit with having a generic customer presentation, but allowing it to be easily adjusted depending in which view it is included.

I think it there is a great opportunity for some conventions to be developed for CSS with RoR.</description>
		<content:encoded><![CDATA[<p>Looking around the web, the question of naming conventions was kicked around for a while a couple of years back, but appears to have gone quiet.  Maybe css frameworks are the new hot topic.</p>
<p>However, as a keen user of Ruby on ~Rails, it seems to me that there is a strong case for revisiting css naming wrt RoR structure.  I have been giving it a bit of thought recently and there is good scope to fairly tightly couple css names wtih for example the use of RoR elements such as partials and layouts.   eg if my view contains a partial for customer, then it seems to make sense for it to be in a div with an id of customer.</p>
<p>Taking this further, I have played around with targetting elements using nested ids, so that my partial might have an id of customer, but it could appear in different views.  So if I have a view, say sales which includes customer, should my sale be a div with an id of sales so that I can specifically target div#sales div#customer.  This seems to fit with having a generic customer presentation, but allowing it to be easily adjusted depending in which view it is included.</p>
<p>I think it there is a great opportunity for some conventions to be developed for CSS with RoR.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lorelle on WordPress &#187; More Website Design Mistakes</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-15061</link>
		<dc:creator>Lorelle on WordPress &#187; More Website Design Mistakes</dc:creator>
		<pubDate>Mon, 20 Feb 2006 23:04:11 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-15061</guid>
		<description>[...] f and Nonsense&#8217;s &#8220;What&#8217;s in a Name? Part 1&#8243; and Part 2, along with Eric Meyer&#8217;s Structural Naming,  [...]</description>
		<content:encoded><![CDATA[<p>[...] f and Nonsense&#8217;s &#8220;What&#8217;s in a Name? Part 1&#8243; and Part 2, along with Eric Meyer&#8217;s Structural Naming,  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max Design - standards based web design, development and training  &#187; Blog Archive   &#187; Some links for light reading (28/6/04)</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-11631</link>
		<dc:creator>Max Design - standards based web design, development and training  &#187; Blog Archive   &#187; Some links for light reading (28/6/04)</dc:creator>
		<pubDate>Sun, 01 Jan 2006 20:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-11631</guid>
		<description>[...] ome links for light reading (28/6/04)			 			 				June 28th, 2004			 				 Fluid Shadows 	Structural Naming 	Integrated Web Design: Strategies for Long-Term CSS Hack M [...]</description>
		<content:encoded><![CDATA[<p>[...] ome links for light reading (28/6/04)			</p>
<p> 				June 28th, 2004<br />
 				 Fluid Shadows 	Structural Naming 	Integrated Web Design: Strategies for Long-Term CSS Hack M [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MikeD</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-5008</link>
		<dc:creator>MikeD</dc:creator>
		<pubDate>Thu, 10 Feb 2005 21:46:18 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-5008</guid>
		<description>I thought the idea was to create clean html that is structurally sound to convey the content without depending on CSS (or javascript) and to keep the markup as free of extraneous clutter as possible.  It seems wrong to denounce old-school &#039;tag soup&#039; at the same time we&#039;re creating attribute soup. (is it justifyable because we&#039;re following a convention)?  
  If browser support would improve enough to allow CSS developers to fully utilize (existing &amp; new) selectors, there really is no argument for dozens of reserved design/layout keywords.  Of course creating clean markup is harder than it sounds, but the up-front effort is usually worthwhile when the content is later re-purposed through different media or to new consumers.</description>
		<content:encoded><![CDATA[<p>I thought the idea was to create clean html that is structurally sound to convey the content without depending on CSS (or javascript) and to keep the markup as free of extraneous clutter as possible.  It seems wrong to denounce old-school &#8216;tag soup&#8217; at the same time we&#8217;re creating attribute soup. (is it justifyable because we&#8217;re following a convention)?<br />
  If browser support would improve enough to allow CSS developers to fully utilize (existing &#038; new) selectors, there really is no argument for dozens of reserved design/layout keywords.  Of course creating clean markup is harder than it sounds, but the up-front effort is usually worthwhile when the content is later re-purposed through different media or to new consumers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: My mental mirror</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-1147</link>
		<dc:creator>My mental mirror</dc:creator>
		<pubDate>Mon, 04 Oct 2004 18:10:35 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-1147</guid>
		<description>&lt;strong&gt;Is a developer an end user?&lt;/strong&gt;
I recently found a discussion on structured naming conventions (continued on meyerweb.com.) The whole discussion was about how structure the names of elements should be put on a web page. One comment made by Johan Sand on And all that...</description>
		<content:encoded><![CDATA[<p><strong>Is a developer an end user?</strong><br />
I recently found a discussion on structured naming conventions (continued on meyerweb.com.) The whole discussion was about how structure the names of elements should be put on a web page. One comment made by Johan Sand on And all that&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Ewins</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-646</link>
		<dc:creator>Brian Ewins</dc:creator>
		<pubDate>Thu, 12 Aug 2004 15:45:53 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-646</guid>
		<description>I know I&#039;m a bit late on this thread, but got here from links in Thorsten Scherlers OSCOM04 proposal (http://www.oscom.org/events/oscom4/proposals/skins). I&#039;m suprised no-one&#039;s mentioned here, or on malarkey, that there&#039;s at least one limited css naming convention, the one in the portlets specification: http://www.jcp.org/aboutJava/communityprocess/final/jsr168/

eg &quot;portlet-section-header Table or section header&quot;. Portlets have a need for some conventions as you&#039;re embedding content from one webapp into another. This isn&#039;t just a java thing - it originated in the WSRP TC:
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp
... I&#039;m not sure how set in stone that all is, the WSRP lot appear to have dropped CSS from their spec in favour of contextual selectors.</description>
		<content:encoded><![CDATA[<p>I know I&#8217;m a bit late on this thread, but got here from links in Thorsten Scherlers OSCOM04 proposal (<a href="http://www.oscom.org/events/oscom4/proposals/skins" rel="nofollow">http://www.oscom.org/events/oscom4/proposals/skins</a>). I&#8217;m suprised no-one&#8217;s mentioned here, or on malarkey, that there&#8217;s at least one limited css naming convention, the one in the portlets specification: <a href="http://www.jcp.org/aboutJava/communityprocess/final/jsr168/" rel="nofollow">http://www.jcp.org/aboutJava/communityprocess/final/jsr168/</a></p>
<p>eg &#8220;portlet-section-header Table or section header&#8221;. Portlets have a need for some conventions as you&#8217;re embedding content from one webapp into another. This isn&#8217;t just a java thing &#8211; it originated in the WSRP TC:<br />
<a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp" rel="nofollow">http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp</a><br />
&#8230; I&#8217;m not sure how set in stone that all is, the WSRP lot appear to have dropped CSS from their spec in favour of contextual selectors.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Romero</title>
		<link>http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-402</link>
		<dc:creator>Michael Romero</dc:creator>
		<pubDate>Thu, 08 Jul 2004 23:43:06 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comment-402</guid>
		<description>i understand the basic idea that eric is trying to convey here, and i think he&#039;s right to a point, but it risks being too rigid, if you ask me. the idea is good that things should match up, but maybe we need to think of a naming convention that makes sense to the project and the layout.</description>
		<content:encoded><![CDATA[<p>i understand the basic idea that eric is trying to convey here, and i think he&#8217;s right to a point, but it risks being too rigid, if you ask me. the idea is good that things should match up, but maybe we need to think of a naming convention that makes sense to the project and the layout.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head profile="http://gmpg.org/xfn/1">
<title>meyerweb.com</title>
<link rel="openid.server" href="http://www.myopenid.com/server">
<link rel="openid.delegate" href="http://emeyer.myopenid.com/">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="shortcut icon" href="/favicon.ico"><link rel="home" href="http://meyerweb.com/" title="Home" ><link rel="stylesheet" href="http://meyerweb.com/ui/meyerweb.css" type="text/css" media="screen, projection"><link rel="stylesheet" href="http://meyerweb.com/ui/theme.css" type="text/css" media="screen, projection" id="themeLink"><link rel="stylesheet" href="http://meyerweb.com/ui/print.css" type="text/css" media="print"><script src="http://meyerweb.com/ui/addresses.js" type="text/javascript"></script><link rel="stylesheet" href="/ui/wordpress.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/tfe.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/home.css" type="text/css" media="screen">
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric" href="/eric/thoughts/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only technical posts)" href="/eric/thoughts/category/tech/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only personal posts)" href="/eric/thoughts/category/personal/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Distractions" href="/eric/thoughts/recent-links/rss2" />
<link rel="alternate" type="application/rss+xml" title="Excuse of the Day" href="/feeds/excuse/rss20.xml" />
</head>
<body id="www-meyerweb-com" class="hpg">

<div id="sitemast"><h1><a href="/"><span>meyerweb</span>.com</a></h1></div><div id="search"><h4>Exploration</h4><!-- SiteSearch Google --><form method="get" action="http://www.google.com/custom" target="_top"><div><input type="hidden" name="domains" value="meyerweb.com"></input><label for="sbb" style="display: none">Submit search form</label><input type="submit" name="sa" value="Google Search" id="sbb"></input><label for="sbi" style="display: none">Enter your search terms</label><input type="text" name="q" size="31" maxlength="255" value="" id="sbi"></input><p><input type="radio" name="sitesearch" value="meyerweb.com" checked id="ss1"></input><label for="ss1" title="Search meyerweb.com">meyerweb.com</label><input type="radio" name="sitesearch" value="" id="ss0"></input><label for="ss0" title="Search the Web">Web</label></p><input type="hidden" name="client" value="pub-3772084027748653"></input><input type="hidden" name="forid" value="1"></input><input type="hidden" name="ie" value="ISO-8859-1"></input><input type="hidden" name="oe" value="ISO-8859-1"></input><input type="hidden" name="safe" value="active"></input><input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1"></input><input type="hidden" name="hl" value="en"></input></div></form><!-- SiteSearch Google --><!-- <form method="get" action="http://www.google.com/custom"><div><input type="submit" name="sa" value="Search"><input type="text" name="q" size="20" maxlength="255" value=""><input type="hidden" name="sitesearch" value="meyerweb.com"></div></form><small><a href="http://www.google.com/search">Powered by Google</a></small> --></div><div id="main"><div class="skipper">Skip to: <a href="#extra">site navigation/presentation</a></div><div class="skipper">Skip to: <a href="#thoughts">Thoughts From Eric</a></div>
<div id="thoughts">


<div class="entry">
<h3><a href="http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/" rel="bookmark" title="Permanent Link: Structural Naming">Structural Naming</a></h3>
<ul class="meta">
<li class="date">Sat 26 Jun 2004</li>
<li class="time">1035</li>
<li class="cat"><a href="http://meyerweb.com/eric/thoughts/category/tech/css/" title="View all posts in CSS" rel="category tag">CSS</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/web/" title="View all posts in Web" rel="category tag">Web</a></li>
<li class="cmt"><a href="http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/#comments">37 responses</a></li>
<li></li><li></li></ul>

<div class="text">
<p>
After I threw out <a href="http://www.meyerweb.com/eric/thoughts/2004/06/18/elemental-nomenclature/" title="Elemental Nomenclature">my two cents</a> on ID naming conventions, Andy Clarke <a href="http://www.stuffandnonsense.co.uk/archives/whats_in_a_name_pt2.html" title="What's in a name (pt2)">revisited the subject</a> and made some more detailed proposals.  As I said before, I think this is a good conversation to be having.  However, the reactions of some people make me think that I wasn&#8217;t entirely clear about why.
</p>
<p>
A standard nomenclature offers the ability to restyle sites, sure.  That&#8217;s kind of cool in an &uuml;bergeek kind of way, like making jokes involving TCP/IP terminology or wearing a T-shirt that says <tt>SELECT * FROM users WHERE clue > 0</tt>.  That isn&#8217;t really the primary reason why I support the exploration of ID naming conventions.  I&#8217;d like to see those conventions emerge because they will serve as a useful starting point for beginners in the standards-oriented design field.  It would help reinforce the idea of <i>structural naming</i>, as opposed to <i>presentational naming</i>.
</p>
<p>
We&#8217;re all familiar with presentational naming.  It&#8217;s things like <tt>id=&quot;leftbar&quot;</tt> and <tt>id=&quot;pagetop&quot;</tt>.  In terms of layout, it&#8217;s the equivalent of <tt>&lt;b&gt;</tt> and <tt>&lt;font&gt;</tt>.  Structural naming, on the other hand, encourages the author to ask &#8220;what role does this piece of the document play?&#8221;  Rather than obsess over the visual placement of the navigation links, structural naming gets authors to consider the document structure.  This can&#8217;t be anything but good, at least for those of us who want to promote improved structures.  To pick one set of examples from Andy&#8217;s recent post:
</p>

<blockquote>
<dl>
<dt>#branding</dt>
<dd>Used for a header or banner to brand the site.</dd>
<dd><dl>
<dt>#branding-logo</dt>
<dd>Used for a site logo</dd>
</dl></dd>
<dd><dl>
<dt>#branding-tagline</dt>
<dd>Used for a strapline or tagline to define the site&#8217;s purpose</dd>
</dl></dd>
</dl>
</blockquote>

<p>
While <tt>#branding</tt> is described as &#8220;Used for a header or banner&#8230;&#8221; you may note that the actual ID name has <strong>nothing</strong> to do with visual placement.  It&#8217;s all about identifying the (dare we say it?) semantic role of that bit of the document.  By encouraging that thinking, a structural-naming convention keeps the author in that frame of mind when he has to go outside the common set of names.
</p>
<p>
I see this as being much like the often-promoted &#8216;rule&#8217; that link-state styles should go in the order link-visited-hover-active.  I even wrote <a href="/eric/css/link-specificity.html">an article</a> explaining why that order is important.  Here&#8217;s the thing: once you understand why the order is important, you can break the &#8216;rule&#8217; in creative ways.  For example, suppose you want your hover effect to apply only to unvisited links, whereas visited links should get no hover.  No problem!  Just put them in the order link-hover-visited-active, or even link-hover-active-visited if you want visited links to get no active styles, either.
</p>
<p>
(Side note: if you chain pseudo-classes, such as with <tt>a:visited:hover</tt>, then the ordering problem goes away.  If Explorer supported that syntax, we could all move on from the LVHA rule.  Too bad it doesn&#8217;t.)
</p>
<p>
Conventions and ground rules exist for a reason: to provide a lower barrier to entry, and to help guide those new to the field.  Once you become experienced, you can break the rules in creative ways.  It&#8217;s been said that the key to good jazz improvisation is a thorough understanding of the rules of music.  In other words, once you really know those rules, then you know how to break them.  In order to know the rules, though, there have to <em>be</em> rules.
</p>
<p>
That&#8217;s why I&#8217;m glad to see them starting to emerge in blog postings and the public thinking of people in the field.  The development of these rules is not a barrier to creativity, but an enabler of it.
</p></div>

</div>

</div>
<p style="font-size: 90%; text-align: right; margin-top: 0.5em; padding-top: 0;">(If you care, there's even an <a href="/eric/thoughts/page/2/">archive of previous thoughts</a>...)</p>

</div><div id="extra"><div class="panel" id="archipelago"><h4>Identity Archipelago</h4><ul><li><a href="http://flickr.com/photos/meyerweb/" rel="me">Flickr</a></li><li><a href="http://twitter.com/meyerweb/" rel="me">Twitter</a></li><li><a href="http://dopplr.com/traveller/meyerweb">Dopplr</a></li><li><a href="http://www.linkedin.com/in/meyerweb" rel="me">LinkedIn</a></li><li><a href="http://technorati.com/profile/emeyer" rel="me">Technorati</a></li></ul></div><div class="panel" id="pointers"><h4>Projects Elsewhere</h4><ul><li><a href="http://aneventapart.com/">An Event Apart</a></li><li><a href="http://complexspiral.com/">Complex Spiral Consulting</a></li><li><a href="http://www.webassist.com/go/css/emeyer/">CSS Sculptor</a></li><li><a href="http://css-discuss.org/">css-discuss</a></li><li><a href="http://microformats.org/">Microformats</a></li><li><a href="http://s5project.org/">S5</a></li></ul></div><div class="panel" id="tour"><ul><li><a href="http://fray.com/issue3/"><img src="http://fray.com/images/i3c.gif" alt="Fray Contributor (Issue 3: Sex &amp; Death)" /></a></li><!-- <li><a href="http://www.webassist.com/go/css/emeyer/"><img src="/pix/CS_ad_180x109.jpg" alt="CSS Sculptor for Dreamweaver" style="max-width: 100%;" /></a></li> --></ul></div><div class="panel">
<h4>Recently Tweeted</h4>
<p class="more"><a href="http://twitter.com/meyerweb">see more</a></p>
<p>Is it just me, or does the SXSW crowd seem to be suffering an epidemic of direct-message fails? <small>&#8211;tweeted 1 hour, 43 minutes ago</small></p>
</div><div id="sideblog" class="panel">
<h4>Distractions</h4>
<p class="more">
<a href="/eric/thoughts/recent-links/">archive</a>
</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=nFicqklGuB0&amp;feature=player_embedded" title="March 12 | Wry comment expressing my appreciation of the creative derivativeness of this video and its uncanny accuracy in mocking common tropes.">Academy Award Winning Movie Trailer</a></li>
<li><a href="http://www.youtube.com/watch?v=414TmP12WAU" title="March 9 | &#8220;Apple juice&#8230; for half price!&#8221;  More like twice PRICELESS.  (Note: If you&#8217;re at work, don your headphones.)">Happy in Paraguay</a> <small>[via <a href="http://unstoppablerobotninja.com/">Ethan</a>]</small></li>
<li><a href="http://www.youtube.com/watch?v=9V5ubAOeOBk&amp;feature=player_embedded" title="February 10 | This is approximately the best thing ever.">U900 -Walk Don&#8217;t Run (Isogabamaware)</a></li>
<li><a href="http://www.456bereastreet.com/archive/201002/sifr_default_css_hides_content_from_at_least_one_screen_reader/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A 456bereastreet %28456 Berea Street%29" title="February 8 | -9999px comes through again, but I really wish we were beyond that kind of thing.">sIFR default CSS hides content from at least one screen reader</a></li>
<li><a href="http://www.macosxhints.com/article.php?story=20100117064356428" title="February 8 | Storing this for future use.">Take a picture with the iSight camera when a folder is opened</a></li>
<li><a href="http://mingle2.com/blog/view/web-developer-mind" title="February 4 | Mostly valid.  (SEE WHAT I DID THERE?)">The Mind of a Web Developer: An Illustrated Diagram</a></li>
<li><a href="http://www.theonion.com/content/news/science_channel_refuses_to_dumb" title="January 28 | &#8220;Punkin Chunkin, for Christ&#8217;s sake&#8230; What more do you people want?&#8221;">Science Channel Refuses To Dumb Down Science Any Further</a></li>
<li><a href="http://www.mailchimp.com/blog/project-omnivore-declassified/" title="January 27 | Sounds like quite a feat.  But I wonder how we&#8217;d feel if Microsoft or Google announced the same kind of thing on their e-mail services.">MailChimp&#8217;s Project Omnivore: Declassified</a></li>
<li><a href="http://www.politifact.com/truth-o-meter/statements/2010/jan/25/carolyn-maloney/congresswoman-says-democratic-presidents-create-mo/" title="January 26 | &#8220;Obviously, luck matters a lot, but when there is a consistent pattern over more than 60 years, it starts to look like more than just luck.&#8221;">Congresswoman says Democratic presidents create more private-sector jobs</a></li>
<li><a href="http://www.ted.com/talks/taylor_mali_what_teachers_make.html" title="January 25 | Truth.">Taylor Mali: What teachers make</a></li>
<li><a href="http://notebook.johnmartz.com/how-websites-work?c=1" title="January 22 | At last, the truth is out and I can stop pretending:  beatific monkeys are what makes it all go.">How websites work</a></li>
<li><a href="http://morsecode.scphillips.com/jtranslator.html" title="January 22 | &#8211; &#8230;. .. &#8230; / .. &#8230; / .- .&#8211; . &#8230; &#8212; &#8212; . / -. &#8212; / &#8230; . .-. .. &#8212; ..- &#8230; .-.. -.&#8211;">Morse Code Translator</a></li>
<li><a href="http://bengoldacre.posterous.com/did-aliens-play-a-role-in-woolworths" title="January 19 | I think the answer is clear to any who have the courage to see it.">Did aliens play a role in Woolworths?</a></li>
</ul>
</div>
<div class="panel" id="advisory">
<div class="guarded">
<a href="http://blogadvisorysystem.com/"><img src="/pix/bas/guarded.png" alt="Blog Advisory System Alert Level: Guarded"></a>
</div>
</div>

<div class="panel" id="excuse">
<h4>The <a href="/feeds/excuse/">excuse of the day</a> is</h4>
<p>dark matter anomalies</p>
</div>

<div class="panel" id="extras">
<h4>Extras</h4>
<ul>
<li><a href="/feeds/">Feeds</a> &#8226;</li>
<li><a href="/eric/faq.html">FAQ</a> &#8226;</li>
<li><a href="/family.html">Family</a></li>
</ul>
</div>

</div>

<div id="navigate">
<h4>Navigation</h4>
<ul id="navlinks">
<li id="archLink"><a href="/eric/thoughts/">Archives</a></li>
<li id="cssLink"><a href="/eric/css/">CSS</a></li>
<li id="toolsLink"><a href="/eric/tools/">Toolbox</a></li>
<li id="writeLink"><a href="/eric/writing.html">Writing</a></li>
<li id="speakLink"><a href="/eric/talks/">Speaking</a></li>
<li id="otherLink"><a href="/other/">Leftovers</a></li>
<li id="aboutsite"><a href="/ui/about.html">About this site</a></li>
</ul>
</div>

<div id="footer">
<p class="sosumi">All contents of this site, unless otherwise noted, are &copy;1995-2008 <strong>Eric A. and Kathryn S. Meyer</strong>.  All Rights Reserved.</p>
<p>"<a href="/eric/thoughts/">Thoughts From Eric</a>" is powered by the &uuml;bercool <a href="http://wordpress.org/">WordPress</a></p>
</div>
</body>
</html>
