<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>journal</title>
        <link>http://www.20seven.org/journal/</link>
        <description>...not so private reflections of greg.newman</description>
        <language>en</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Fri, 11 Jan 2008 07:00:25 -0500</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Progressive Enhancement with CSS 3</title>
            <description><![CDATA[<p><a href="http://dev.opera.com/articles/view/progressive-enhancement-with-css-3-a-be/">Dev.Opera</a> takes us through some of the available enhancements that modern browsers are supporting such as Safari 3 and Opera 9.5 support for new <span class="caps">CSS3 </span>effects.  Opacity, dropshadows and tiger-striping don't rely on javascript, but we still need to support browsers that don't use these new <span class="caps">CSS3 </span>effects.</p>

<div style="text-align:center;"><img src="http://www.20seven.org/wp-content/uploads/2008/01/css3.jpg" alt="CSS3.jpg" border="0" width="480" height="169" /></div>

<p>Read the full article at <a href="http://dev.opera.com/articles/view/progressive-enhancement-with-css-3-a-be/">Dev.Opera</a></p>]]></description>
            <link>http://www.20seven.org/journal/2008/01/progressive-enhancement-with-css-3.html</link>
            <guid>http://www.20seven.org/journal/2008/01/progressive-enhancement-with-css-3.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CSS</category>
            
            
            <pubDate>Fri, 11 Jan 2008 07:00:25 -0500</pubDate>
        </item>
        
        <item>
            <title>CSS Textwraps Are Not Just For Rectangles Anymore</title>
            <description><![CDATA[<p>The <a href="http://www.csstextwrap.com/"><span class="caps">CSS</span> Text Wrapper</a> allows you to easily make <span class="caps">HTML </span>text wrap in shapes other then just a rectangle. You can make text wrap around curves, zig-zags, or whatever you want. All you have to do is draw the left and right edges below and then copy the generated code to your website.</p>

<p>There's a really nice <a href="http://www.csstextwrap.com/">interactive demo</a> of how it works.</p>

<p>It has benn tested in Internet Explorer 6+, Firefox, Safari, Opera, and Netscape.</p>]]></description>
            <link>http://www.20seven.org/journal/2007/12/css-textwraps-are-not-just-for-rectangles-anymore.html</link>
            <guid>http://www.20seven.org/journal/2007/12/css-textwraps-are-not-just-for-rectangles-anymore.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CSS</category>
            
            
            <pubDate>Wed, 05 Dec 2007 09:14:24 -0500</pubDate>
        </item>
        
        <item>
            <title>Boilerplate CSS Framework</title>
            <description><![CDATA[<div style="text-align:center;"><img src="http://www.20seven.org/wp-content/uploads/2007/12/boilerplate.gif" alt="boilerplate.gif" border="0" width="455" height="62" /></div>

<p>A very nice <span class="caps">CSS </span>framework, <a href="http://code.google.com/p/css-boilerplate/">Boilerplate</a>, is available from one of the authors of Blueprint <span class="caps">CSS </span>framework.  Yes, it is simple, elegant and semantic like the logo says.</p>]]></description>
            <link>http://www.20seven.org/journal/2007/12/boilerplate-css-framework.html</link>
            <guid>http://www.20seven.org/journal/2007/12/boilerplate-css-framework.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CSS</category>
            
            
            <pubDate>Tue, 04 Dec 2007 18:54:30 -0500</pubDate>
        </item>
        
        <item>
            <title>Div On The Table</title>
            <description><![CDATA[<p>A recent project required me to develop a reservation data table that needed to be flexible enough across installs that we could quickly change the look and behavior of the table without touching any of the core code.  Varying widths, colors, status background images, cell heights were just some of our requirements.  All data is retrieved from a MySQL database via <span class="caps">PHP. </span> Varying cell widths based on the data made this even more of a challenge as well as each "available" time slot had to include a radio button for new reservations.</p>

<p><img src="http://www.busyashell.com/blog/images/reserve_table.gif" align="middle" alt="reservation table" /></p>

<p>Sure, this can be done with <span class="caps">CSS </span>and <span class="caps">HTML </span>tables, but that's not as fun now; is it?  Here's a mockup of the divs used in the project.</p>

<p><img src="http://www.busyashell.com/blog/images/reserve_table_mockup.gif" align="middle" alt="reservation table" /></p>

<p>I start with a div container for the css table called "teetable".  For each row, I wrap the <span class="caps">CSS </span>cells in another container called "teerow".  From there I assign widths to the contained divs with a numerator at the end of the id.  A cell that spans two slots has an id ending in -2 (teecell-2), one that spans three ends in -3 and so forth.  I repeat this logic throughout the <span class="caps">CSS </span>table to get the desired results.</p>

<p>Example html:</p>

<blockquote>
<code>
&amp;lt;div id=&quot;teetable&quot;&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teerow&quot;&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teedate&quot;&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teehead&quot;&gt;One&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teehead&quot;&gt;Two&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teehead&quot;&gt;Three&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teehead&quot;&gt;Four&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teerow&quot;&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teedate&quot;&gt;7:08am&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teecell-2&quot; class=&quot;reserved&quot;&amp;gt;Some Data Goes Here&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teecell-2&quot; class=&quot;reserved&quot;&amp;gt;Some Data Goes Here&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teerow&quot;&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teedate&quot;&gt;7:20am&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teecell-1&quot; class=&quot;available&quot;&amp;gt;Some Data Goes Here&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teecell-1&quot; class=&quot;reserved&quot;&amp;gt;Some Data Goes Here&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teecell-1&quot; class=&quot;checked-in&quot;&amp;gt;Some Data Goes Here&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teecell-1&quot; class=&quot;reserved&quot;&amp;gt;Some Data Goes Here&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teerow&quot;&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teedate&quot;&amp;gt;7:30am&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;div id=&quot;teecell-4&quot; class=&quot;reserved&quot;&amp;gt;Some Data GoesHere&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;lt;/div&amp;gt;&lt;br /&gt;
	</code><br />
</blockquote>

<p>The underlying <span class="caps">CSS </span>looks something like this:</p>

<blockquote>
	<code>
#teetable {
	width: 625px;
	margin: 20px 0 20px 20px;
	display: block;
	}&lt;br /&gt;

#teehead {
	width: 125px;
	height: 20px;
	float: left;
	text-align: center;
	vertical-align: middle;
	background: #ccc;
	font-weight: bold;
	}&lt;br /&gt;
	
#teerow {
	width: 625px;
	display: block;
	}&lt;br /&gt;
	
#teedate {
	width: 125px;
	height: 20px;
	vertical-align: middle;
	float: left;
	background: #ccc;
	text-align: center;
	}&lt;br /&gt;
	
#teecell-1, 
#teecell-2, 
#teecell-3, 
#teecell-4 {
	height: 20px;
	overflow: hidden;
	vertical-align: middle;
	float: left;
	text-align: center;
	border-bottom: 1px solid #666;
	}&lt;br /&gt;
	
#teecell-1 {width: 125px;}&lt;br /&gt;
#teecell-2 {width: 250px;}&lt;br /&gt;
#teecell-3 {width: 375px;}&lt;br /&gt;
#teecell-4 {width: 500px;}&lt;br /&gt;
	
.available {
	background: #fff;
	}&lt;br /&gt;
	
.reserved {
	background: #009966 url(images/reserved.gif);
	}&lt;br /&gt;
	
.checked-in {
	background: #33CCFF url(images/checkedin.gif);
	}&lt;br /&gt;

.available {
	background: #fff url(images/available.gif);
	}&lt;br /&gt;
	</code><br />
</blockquote>


<p>The beauty of this really lies in the <span class="caps">PHP </span>that grabs the rows from the database and loops through building the div id's.  I have a database table that holds the number of people for each time slot.  There is no maximum number of people, but the grid will only show four slots.  With a little switch/case, we're off and running with a dynamic <span class="caps">CSS </span>data table.  All teecells are suffixed with -1, -2, -3, -4 based on the number of people.  Remember, our -4 means the cell spans across our four columns.</p>

<p>Based on if the time slot has checked in, is available, or is reserved, a simple if statement throws the table it's style for the background.</p>

<blockquote>
	<code>
	if ($res-&gt;checkin == &quot;&quot;) { &lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;$class = &quot; class=\&quot;reserved\&quot;&quot;; &lt;br /&gt;
	} else { &lt;br /&gt;
&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;$class = &quot; class=\&quot;checked-in\&quot;&quot;; &lt;br /&gt;
	} &lt;br /&gt;
	</code><br />
</blockquote>

<p>I cannot provide the full working code, but there is a <a href="http://www.busyashell.com/blog/downloads/csstables.zip">zip file</a> containing the html and css for this narrative.  If you find it useful, drop me a line and let me know what you're using it for.</p>]]></description>
            <link>http://www.20seven.org/journal/2006/04/div-on-the-table.html</link>
            <guid>http://www.20seven.org/journal/2006/04/div-on-the-table.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CSS</category>
            
            
            <pubDate>Thu, 27 Apr 2006 10:34:00 -0500</pubDate>
        </item>
        
        <item>
            <title>IE7 Beta 2 Refresh Fixes UL Bug</title>
            <description><![CDATA[<p>The latest <span class="caps">IE7 </span>beta 2 Preview is available <a href="http://www.microsoft.com/ie/ie7" target="_blank">here</a> at Microsoft.com.</p>

<p>You must uninstall any previous <span class="caps">IE7 </span>installs before installing.</p>

<p>The &lt;ul&gt; bug has been fixed in this version, but sites such as <a href="http://rails.techno-weenie.net" target="_blank">rails.techno-weenie.net</a> still don't display properly.</p>

<p><span class="caps">UPDATE</span>: They may have fixed this bug, but they really fubarred the back and forward buttons.. what a mess.  This isnt a beta, it's more like an alpha.</p>]]></description>
            <link>http://www.20seven.org/journal/2006/03/ie7-beta-2-refresh-available.html</link>
            <guid>http://www.20seven.org/journal/2006/03/ie7-beta-2-refresh-available.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CSS</category>
            
            
            <pubDate>Thu, 23 Mar 2006 08:12:00 -0500</pubDate>
        </item>
        
        <item>
            <title>IE7, Typo &amp; the  Tag</title>
            <description><![CDATA[<p>For everyone out there running <span class="caps">IE7 </span>beta, the &lt;UL&gt; tag is causing articles to grow inside typo templates causing scroll bars to appear.  This can be seen when using the orgami template.  The extra size in very small but is just enough to make the bars appear. I will add a list in this example to show to end result. Hopefully microsoft will fix this bug before release since no other browsers, including <span class="caps">IE6, </span>have this problem. If you wish to run test to tests with both ie6 and ie7 and don't have virtualpc, there is a way to run <a href="http://weblogs.asp.net/jgalloway/archive/2005/12/28/434132.aspx">ie7 as a standalone app</a>.</p>

<p><b><span class="caps">UPDATE</span>:</b> IE7 beta 2will be refreshed this week, not like that's all that big of an update, but the important part is the rendering engine is finalized so this bug should dissappear as of the end of the week.  let's keep our fingers crossed.  Maybe they'll actually by web 2.0 &amp; css2 compliant now.. rofl :)</p>

<p><b><span class="caps">NOTE</span>:</b> You will only see scroll bars here in <span class="caps">IE7</span></p>

<blockquote>
<ul>
<li>Item 1</li><li>Item 2</li><li>Item 3</li>
</ul>
</blockquote>]]></description>
            <link>http://www.20seven.org/journal/2006/03/ie7-typo-the-lt-ul-gt-tag.html</link>
            <guid>http://www.20seven.org/journal/2006/03/ie7-typo-the-lt-ul-gt-tag.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CSS</category>
            
            
            <pubDate>Mon, 20 Mar 2006 04:31:00 -0500</pubDate>
        </item>
        
    </channel>
</rss>

