<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Ken Snyder - CSS</title>
    <link>http://kendsnyder.com/</link>
    <description>PHP, JavaScript, CSS</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <pubDate>Tue, 01 Jul 2008 20:16:40 GMT</pubDate>

    <image>
        <url>http://kendsnyder.com/templates/bulletproof/img/s9y_banner_small.png</url>
        <title>RSS: Ken Snyder - CSS - PHP, JavaScript, CSS</title>
        <link>http://kendsnyder.com/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Flexible, Grid-Like Layouts in CSS</title>
    <link>http://kendsnyder.com/archives/12-Flexible,-Grid-Like-Layouts-in-CSS.html</link>
            <category>CSS</category>
            <category>Web Development</category>
    
    <comments>http://kendsnyder.com/archives/12-Flexible,-Grid-Like-Layouts-in-CSS.html#comments</comments>
    <wfw:comment>http://kendsnyder.com/wfwcomment.php?cid=12</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://kendsnyder.com/rss.php?version=2.0&amp;type=comments&amp;cid=12</wfw:commentRss>
    

    <author>nospam@example.com (Ken Snyder)</author>
    <content:encoded>
    
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I&#039;ve made some comments on &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.cssnewbie.com/argument-against-faux-absolute-positioning/#comment-3440&#039;);&quot;  href=&quot;http://www.cssnewbie.com/argument-against-faux-absolute-positioning/#comment-3440&quot;&gt;cssnewbie.com&lt;/a&gt; talking about how this technique is useful for magazine-type layouts and is actually more semantic in that case.&lt;/p&gt;

&lt;p&gt;I haven&#039;t yet wrapped my head around it, but Eric Sol has posted a wonderful &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/alistapart.com/articles/fauxabsolutepositioning&#039;);&quot;  href=&quot;http://alistapart.com/articles/fauxabsolutepositioning&quot; target=&quot;_blank&quot;&gt;A List Apart article&lt;/a&gt; about achieving flexible, grid-like layouts in CSS.&lt;/p&gt;

&lt;p&gt;Just when you assumed that everything that could be done in CSS has already been done, the geniuses at &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/alistapart.com&#039;);&quot;  href=&quot;http://alistapart.com&quot; target=&quot;_blank&quot;&gt;A List Apart&lt;/a&gt; have really come up with a potentially revolutionary technique.&lt;/p&gt;

&lt;p&gt;&lt;img height=&quot;80&quot; width=&quot;540&quot; src=&quot;http://kendsnyder.com/uploads/fap-layout-1.png&quot; /&gt;&lt;br /&gt;&lt;em&gt;Example of Faux Absolute Positioning in action. (by Eric Sol, A List Apart)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The basic idea is to use &lt;span class=&quot;code&quot;&gt;position: relative; left: 100%; margin-left: -##%&lt;/span&gt; (non-percent units such as px also work). Eric calls the technique &amp;quot;Faux Absolute Positioning&amp;quot;. The items generally have the same behavior as inline elements and avoid some of the fragility of floats. Eric explains the inspiration for the technique:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Our use case was even more complex: my team was developing a web-based WYSIWYG form generator that allows the user to drag items to arbitrary locations on a canvas. We needed to let our users create beautiful forms that didn’t use overly static layouts and to let them align columns as needed.
&lt;/p&gt;&lt;p&gt;
For example, let’s assume we want a form that puts the postal code and city fields on the same line because they are semantically connected. To accomplish this, we tried using floated positioning inspired by the Holy Grail technique. Using this method, we needed to adjust the width, borders, margins, and/or padding of the postal code field to pin the city field to a fixed horizontal position. That was a problem because if the width of the postal code field needed adjusting, or if we wanted to adjust the amount of whitespace between fields, the city field would need to move as well. The more elements on a page—the more cells in your grid—the more tedious this kind of adjustment becomes. Additionally, the positioning is sensitive to the slightest change in a number of parameters, which makes it nigh impossible to control in case of dynamic form items.
&lt;/p&gt;&lt;p&gt;
Next, we tried using absolute positioning. This gave us much more control over the positioning of the items and is robust. But absolutely positioned elements have no height, and that caused the containing element (the canvas) to collapse. This made it hard to position content without making everything absolutely positioned—which is impossible to achieve with dynamic content.&lt;/p&gt;
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Tue, 17 Jun 2008 11:12:11 -0600</pubDate>
    <guid isPermaLink="false">http://kendsnyder.com/archives/12-guid.html</guid>
    
</item>
<item>
    <title>Forget IE</title>
    <link>http://kendsnyder.com/archives/8-Forget-IE.html</link>
            <category>CSS</category>
    
    <comments>http://kendsnyder.com/archives/8-Forget-IE.html#comments</comments>
    <wfw:comment>http://kendsnyder.com/wfwcomment.php?cid=8</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://kendsnyder.com/rss.php?version=2.0&amp;type=comments&amp;cid=8</wfw:commentRss>
    

    <author>nospam@example.com (Ken Snyder)</author>
    <content:encoded>
    &lt;p&gt;IE6 is the biggest headache. And IE7 isn&#039;t much better. I&#039;m not holding my breath for IE8 especially with its dismal performance in the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/www.anomalousanomaly.com/2008/03/06/acid-3/&#039;);&quot;  href=&quot;http://www.anomalousanomaly.com/2008/03/06/acid-3/&quot; target=&quot;_blank&quot;&gt;Acid 3 test&lt;/a&gt;. I love the &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/humor.beecy.net/geeks/web-design/web-design.gif&#039;);&quot;  href=&quot;http://humor.beecy.net/geeks/web-design/web-design.gif&quot; target=&quot;_blank&quot;&gt;humorous pie chart&lt;/a&gt; that reports that over half of a web developer&#039;s time is spent catering to IE, swearing at Bill Gates and swearing in general. It is so true.&lt;/p&gt;

&lt;p&gt;I&#039;d like to move on past IE&#039;s limitations. I&#039;d like to be able to do more CSS2, stop worrying about the broken box model, and throw away my CSS hacks cheatsheet. That is the vision of Dean Edwards in his &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/ie7-js/&#039;);&quot;  href=&quot;http://code.google.com/p/ie7-js/&quot; target=&quot;_blank&quot;&gt;IE7.js and IE8.js libraries&lt;/a&gt;. Dean Edwards is a pioneer of JavaScript techniques and a true authority in the JavaScript world. His perspectives are sometimes controversial, but no one disputes that Dean Edwards writes some elegant and speedy code.&lt;/p&gt;

&lt;p&gt;His popular open-source contributions include &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/dean.edwards.name/packer/&#039;);&quot;  href=&quot;http://dean.edwards.name/packer/&quot; target=&quot;_blank&quot;&gt;Packer&lt;/a&gt;, a JavaScript compressor/obfuscator, &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/dean.edwards.name/my/cssQuery/&#039;);&quot;  href=&quot;http://dean.edwards.name/my/cssQuery/&quot; target=&quot;_blank&quot;&gt;cssQuery&lt;/a&gt;, a fast css selector engine, and &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/base2/&#039;);&quot;  href=&quot;http://code.google.com/p/base2/&quot; target=&quot;_blank&quot;&gt;base2&lt;/a&gt;, an object oriented JavaScript framework.&lt;/p&gt;

&lt;p&gt;But I&#039;d like to talk about my experience with his lesser-know library &lt;a onclick=&quot;javascript: pageTracker._trackPageview(&#039;/extlink/code.google.com/p/ie7-js/&#039;);&quot;  href=&quot;http://code.google.com/p/ie7-js/&quot; target=&quot;_blank&quot;&gt;IE7&lt;/a&gt;. From what I understand, it was named IE7 with the assumption that IE7 would correct all the problems the script fixed. After all, he had made the fixes in JavaScript in a matter of months so surely the IE development team could make the fixes given 5 years and access to the source code. Unfortunatly Microsoft blew it and Dean recently released IE8. He considered other names like &amp;quot;IENext&amp;quot; but decided to follow convention.&lt;/p&gt;

&lt;p&gt;Anyway, the following is a list of advanced selectors and features that I find so nice to use--and with IE8.js, I CAN!&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;
		Apply styles by attribute: &lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;input[type=text], input[type=submit], input[type=password], etc.&lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Add a focus effect: &lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;input[type=text]:focus, textarea:focus, etc.&lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Add a hover to any element:&lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;input[type=button]:hover, li:hover, tr:hover, etc.&lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Apply styles to disabled elements:&lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;input[type=submit][disabled], input[type=text][disabled], etc.&lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Styling by sibling selectors:&lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;h1 + *, p + table, p + ul, etc.&lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Immediate descendents:&lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;#content &amp;gt; *, #nav ul &amp;gt; li, etc.&lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Specifying opacity in one line:&lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;opacity: 0.66&lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Define minimum and maximum widths and heights:&lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;min-height: 50px; max-height: 100px; min-width: 200px; max-width: 500px; etc. &lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Before and after pseudo-selectors:&lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;q:before, blockquote:before { content: &quot;&amp;amp;ldquo;&quot; }, etc. &lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Transparent PNG backgrounds:&lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;.print_icon { background: transparent url(../images/printer.icon.png) no-repeat 0 0; }&lt;/span&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Ignore the broken box model: (use width + padding or height + padding)&lt;br /&gt;
		&lt;span class=&quot;code&quot;&gt;#content { padding: 10px; width: 400px; height: 400px; }&lt;/span&gt;
	&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Limitations include the fact that selects are still stupid, inputs still cannot be transparent, and PNG background images cannot be positioned or tiled.&lt;/a&gt;
		
&lt;p&gt;Although IE8.js isn&#039;t perfect, download it and see what you are missing!&lt;/p&gt;
		 
    </content:encoded>

    <pubDate>Fri, 06 Jun 2008 22:11:00 -0600</pubDate>
    <guid isPermaLink="false">http://kendsnyder.com/archives/8-guid.html</guid>
    
</item>

</channel>
</rss>