<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Học thiết kế web theo chuẩn. &#187; CSS</title>
	<atom:link href="http://www.izwebz.com/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.izwebz.com</link>
	<description>Let&#039;s Do Together</description>
	<lastBuildDate>Thu, 09 Sep 2010 01:34:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Thành phần Block và Inline</title>
		<link>http://www.izwebz.com/css/thanh-ph%e1%ba%a7n-block-va-inline/</link>
		<comments>http://www.izwebz.com/css/thanh-ph%e1%ba%a7n-block-va-inline/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 03:21:20 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=1827</guid>
		<description><![CDATA[Khái niệm về Inline và Block là một khái niệm hết sức cơ bản nhưng cũng cực kỳ quan trọng trong CSS. Hiểu được từng đặc điểm của mỗi thành phần là chìa khóa quan trọng để bạn có thể vận hành CSS theo ý muốn. Trong bài này tôi sẽ nói về chức năng [...]]]></description>
			<content:encoded><![CDATA[<p>Khái niệm về Inline và Block là một khái niệm hết sức cơ bản nhưng cũng cực kỳ quan trọng trong CSS. Hiểu được từng đặc điểm của mỗi thành phần là chìa khóa quan trọng để bạn có thể vận hành CSS theo ý muốn. Trong bài này tôi sẽ nói về chức năng của từng thành phần. Tuy nhiên tôi sẽ vẫn giữ nguyên từ chuyên ngành là Block và Inline mà không dịch ra tiếng Việt là &#8220;khối&#8221; và &#8220;trong dòng&#8221; nghe cùi quá.</p>
<p><span id="more-1827"></span></p>
<p>Khi các thành phần HTML được hiển thị trên trình duyệt nó thường có 2 cách hiển thị là theo Block và Inline. Nói hình tượng để bạn dễ hiểu thì các thành phần Block giống như một bàn cờ và các thành phần Inline là quân cờ. Các quân cờ nằm trong bàn cờ và bàn cờ thì không bao giờ nằm trong quân cờ. Đây cũng là một nguyên tắc cơ bản nhất của Inline và Block. Thành phần inline có thể nằm trong thành phần Block, nhưng Block không thể nằm trong thành phần Inline.</p>
<p>Lý thuyết thì là vậy nhưng hơi mơ hồ khó hiểu, cách tốt nhất là chúng ta học từ ví dụ ở dưới.</p>
<h5>Ví dụ về Block</h5>
<p>Thẻ &lt;p&gt; và &lt;div&gt; là hai thành phần mặc định Block phổ biến nhất. Chỉ khi bạn khai báo trong CSS và muốn biến nó thành inline với Property là Display: inline thì nó mới thành inline. Ví dụ tôi có một thẻ &lt;div&gt; như sau:</p>
<div style="background: yellow; border: 1px solid red; padding: 10px;">Bạn sẽ thấy dòng chữ này chiếm hết độ rộng của thành phần mẹ chứa nó và tự động xuống hàng mới</div>
<p>Nếu tôi viết tiếp thì dòng mới sẽ bị đẩy xuống dưới dù cho nó được viết cùng hàng với dòng ở trên nằm trong thẻ &lt;div&gt;</p>
<h5>Các thành phần Block bao gồm</h5>
<p><strong>&lt;div&gt;</strong>: Là thành phần trắng dùng để làm &#8220;hộp&#8221; chứa.<br />
<strong>&lt;h1&gt; &#8230;.&lt;h6&gt;</strong>: Các headings<br />
<strong>&lt;p&gt;</strong>: Thẻ này dùng để mở đầu và kết thúc một đoạn văn bản.<br />
<strong>&lt;li&gt;, &lt;dt&gt;, &lt;dd&gt;</strong>: hiển thị danh sách.<br />
&lt;table&gt;, &lt;blockquote&gt;, &lt;pre&gt; và &lt;form&gt;</p>
<h5>Ví dụ về thành phần Inline</h5>
<p>Ví dụ tôi có một đoạn văn như sau, và trong đó tôi có một cặp thẻ &lt;strong&gt;, nó không bắt thành phần nằm trong nó phải xuống hàng mà nó chỉ <strong>&#8220;nhẹ nhàng&#8221;</strong> chui vào giữa và sống hạnh phúc trong đó. Cũng giống như quân cờ nằm trong bàn cờ vậy.</p>
<h5>Các thành phần inline bao gồm</h5>
<p>&lt;span&gt;, &lt;a&gt;, &lt;em&gt;, &lt;br /&gt;<br />
<strong>&lt;img&gt;</strong></p>
<p>Ví dụ hình mặt cười này <img src='http://www.izwebz.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  sẽ xuất hiện ở trong dòng mà không ép chữ xuống hàng mới. Nó chỉ chiếm khoảng không gian tối thiểu mà nó cần. Giống như quân cờ chỉ chiếm một khoảng không gian nhất định của nó mà thôi. Chứ nó không ảnh hưởng đến bàn cờ.</p>
<p><strong> &lt;input&gt;</strong></p>
<input type="text" value="đây là inline element" />
<input type="submit" value="button" />
<h5>Display Property</h5>
<p>Cái hay của CSS là bạn không chỉ bị ép buộc sử dụng giá trị mặc định của từng thành phần. Mà bạn có thể thay đổi cách hiển thị của nó theo ý mình. Ví dụ một thành phần &lt;li&gt; theo mặc định là dạng Inline nhưng bạn có thể biến nó thành block với CSS tương ứng là Display: block. Đây chính là một phần rất quan trọng trong thiết kế giao diện. Nó mở ra một chân trời mới với các cách sắp xếp thành phần mà chỉ bị giới hạn bằng khả năng thiết kế của bạn.</p>
<p>Được áp dụng nhiều nhất là khi bạn sử dụng &lt;li&gt; làm menu như rất nhiều trang web. Ở mặc định nếu bạn có một list như sau:</p>
<pre class="brush: xml;">&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;About&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;FAQs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>Nó sẽ xuất hiện như sau ở trình duyệt</p>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">FAQs</a></li>
<li><a href="#">Contact</a></li>
</ul>
<p>Nếu bạn muốn nó xuất hiện trong cùng một hàng thì bạn có thể khai bao CSS như sau:</p>
<pre class="brush: css;">.menuNav li {
display:inline;
background-color:#eee;
border:1px solid red;
margin:0; padding:0px 10px;
}</pre>
<div class="tutorial-image">
<img src="http://www.izwebz.com/wp-content/uploads/2009/08/inline.png" alt="inline" />
</div>
<p>Bạn cũng có thể tham khảo thêm video tutorial tôi đã làm về <a href="http://www.izwebz.com/css/display-property-2/">Display Property</a> trong CSS để hiểu thêm chi tiết.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/thanh-ph%e1%ba%a7n-block-va-inline/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Vertical-align trong CSS</title>
		<link>http://www.izwebz.com/css/vertical-align-trong-css/</link>
		<comments>http://www.izwebz.com/css/vertical-align-trong-css/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 16:05:18 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=1803</guid>
		<description><![CDATA[Tính năng Vertical-align trong CSS được kế thừa từ &#8220;thời đại&#8221; sử dụng bảng để thiết kế giao diện. Hiện tại tính năng valign trong table đã bị &#8220;đào thải&#8221; và không còn được sử dụng đúng chuẩn web nữa. Nhưng thay vào đó CSS lại giới thiệu một tính năng khác nghe tên hoàn [...]]]></description>
			<content:encoded><![CDATA[<p>Tính năng Vertical-align trong CSS được kế thừa từ &#8220;thời đại&#8221; sử dụng bảng để thiết kế giao diện. Hiện tại tính năng valign trong table đã bị &#8220;đào thải&#8221; và không còn được sử dụng đúng chuẩn web nữa. Nhưng thay vào đó CSS lại giới thiệu một tính năng khác nghe tên hoàn toàn giống với valign là Vertical-align. Chính vì điều này nên đã gây ra một số hiểu lầm về nó. Trong bài này chúng ta sẽ xem xét cách sử dụng vertical-align trong CSS.</p>
<p><span id="more-1803"></span></p>
<p>Trên thực tế rất ít khi bạn phải sử dụng tính năng vertical-align trong CSS trừ khi bạn đang thiết kế bảng với dữ liệu cần căn chỉnh vào giữa dòng. Nhưng theo kinh nghiệm cá nhân tôi, khi làm giao diện tôi rất ít khi sử dụng vertical-align bởi vì nó thực sự không cần thiết. Do chúng ta có thể sử dụng padding và margin để điều khiển nó tới vị trí mà mình muốn. Nhưng với những người mới học CSS và vừa thoát ra khỏi cách thiết kế bằng bảng thì cái &#8220;lối mòn&#8221; cũ vẫn chưa hoàn toàn bỏ được. Chính vì vậy nhiều người mới hỏi tại sao khi sử dụng vertical-align: middle trong thẻ div nó lại không cho kết quả như mong muốn.</p>
<p>Nói chung cách sử dụng vertical-align trong CSS để căn chỉnh một thành phần không phải là table cell cũng không hề đơn giản mà cũng lắm nhiêu khê. Có nhiều cách hoàn toàn không tương thích với các trình duyệt đặc biệt là IE (kể cả IE 8). Vậy nên khi quyết định sử dụng vertical-align để căn chỉnh thành phần trong block element như &lt;div&gt; bạn nên suy nghĩ cho kỹ. Tuy nhiên vì bạn vẫn muốn làm hoặc bắt buộc phải làm thì dưới đây là một số cách bạn có thể áp dụng được.</p>
<h5>Cách 1: Biến &lt;div&gt; thành table cell</h5>
<p>Trong cách này chúng ta sẽ biến một thẻ &lt;div&gt; thành một table cell và do đó có thể áp dụng vertical-align bình thường. Cái hay của cách này là ngắn gọn và lẹ nhưng nó không tương thích với trình duyệt IE (kể cả IE 8 beta). Cho nên bạn cũng cần suy nghĩ ở đây.</p>
<pre class="brush: xml;">&lt;div id=&quot;container&quot;&gt;
   &lt;div id=&quot;content&quot;&gt;
     &lt;p&gt;Lorem ipsum dolor sit amet.&lt;/p&gt;
   &lt;/div&gt;
&lt;/div&gt;</pre>
<pre class="brush: css;">#container {display: table;}
#content {display: table-cell; vertical-align: middle;}</pre>
<h5>Cách 2: Sử dụng margin và absolute position</h5>
<p>Trong cách này chúng ta sẽ sử dụng absolute position để định vị thành phần và dùng margin giá trị âm để bù lại khoảng mình đẩy xuống. Cái hay trong cách này là tương thích với mọi trình duyệt, không cần thêm một thẻ div nữa. Nhưng mỗi khi trình duyệt bị thu nhỏ quá, nội dung sẽ biến mất.</p>
<pre class="brush: xml;">&lt;div id=&quot;container&quot;&gt;
   &lt;div id=&quot;content&quot;&gt;
    &lt;p&gt; Lorem ipsum dolor sit amet.&lt;/p&gt;
   &lt;/div&gt;
&lt;/div&gt;</pre>
<pre class="brush: css;">#container {position: relative;}
#content {
position:absolute;
top:50%; height:200px;
margin-top:-100px; /* giá trị âm bằng một nửa chiều cao */
}</pre>
<h5>Cách 3: sử dụng line-height</h5>
<p>Đây là cách có khi được sử dụng nhiều nhất bởi vì nó đơn giản nhất và tương thích với mọi trình duyệt. Nhưng nó chỉ có thể áp dụng với những thành phần chỉ có một dòng chữ và thành phần chứa nó có độ cao cụ thể.</p>
<pre class="brush: xml;">
&lt;div id=&quot;content&quot;&gt;
     Lorem ipsum dolor sit amet.
   &lt;/div&gt;
</pre>
<pre class="brush: css;">#content {
 height:200px;
#content p {
line-height: 200px;
}</pre>
<h5>Kết luận</h5>
<p>Ở bài này tôi giới thiệu với bạn 3 cách để căn chỉnh theo chiều dọc một thành phần. Cách nào cũng có điểm mạnh và điểm yếu và bạn hãy tùy từng trường hợp mà áp dụng sao cho hợp lý. Nhưng trên thực tế một đoạn văn không nhất thiết phải nằm giữa một thẻ div mới đẹp. Chính vì thế trừ trường hợp bắt buộc, tránh sử dụng vertical-align cho nó đỡ rắc rối.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/vertical-align-trong-css/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Absolute Position trong thiết kế giao diện</title>
		<link>http://www.izwebz.com/css/absolute-position-trong-thiet-ke-giao-dien/</link>
		<comments>http://www.izwebz.com/css/absolute-position-trong-thiet-ke-giao-dien/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 21:18:55 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=1582</guid>
		<description><![CDATA[Có một thực tế rằng Absolute Position tuy rất hay và mạnh nhưng lại chưa được sử dụng đúng với &#8220;thực lực&#8221; của nó. Đa phần người ta thường sử dụng Float và dùng Padding hoặc Margin để căn chỉnh các thành phần trong giao diện với nhau. Nhưng như bạn cũng đã biết, giao [...]]]></description>
			<content:encoded><![CDATA[<p>Có một thực tế rằng Absolute Position tuy rất hay và mạnh nhưng lại chưa được sử dụng đúng với &#8220;thực lực&#8221; của nó. Đa phần người ta thường sử dụng Float và dùng Padding hoặc Margin để căn chỉnh các thành phần trong giao diện với nhau. Nhưng như bạn cũng đã biết, giao diện với Float rất mong manh. Chỉ cần sai chút xíu là cả giao diện có thể bị vỡ.</p>
<p><span id="more-1582"></span></p>
<p>Đó là chưa kể đến những bất cập của Float như phải clear float và đôi khi nó thực sự rất khó quản lý. Nhưng không hiểu vì lý do tại sao Float được sử dụng rất rộng rãi và vượt ra ngoài dự định ban đầu của những người phát triển CSS. Đầu tiên Float chỉ được thiết kế để đưa hình ảnh vào những vị trí thích hợp. Nhưng dần dà nó được sử dụng khá phổ biến trong thiết kế giao diện.</p>
<p>Nói vậy không phải là tôi không thích Float hoặc sử dụng Float là không tốt, mà sự thực thì tôi cũng sử dụng Float khá nhiều trong thiết kế giao diện. Nhưng nếu dùng nó kết hợp với Absolute Position trong CSS thì giúp giao diện của bạn có thể tương thích với nhiều trình duyệt mà không cần phải áp dụng hack cho IE. </p>
<p>Trong bài này chúng ta sẽ tìm hiểu sơ qua về Absolute Position trong Relative Position. Tôi đã có một <a href="http://www.izwebz.com/video-tutorials/contextual-position-2/">video về Contextual Positioning</a> nói rất rõ về mối liên hệ giữa Relative Position và Absolute Position. Nhưng vì đây là khái niệm hết sức quan trọng do vậy trong bài này tôi cũng nói lại một chút.</p>
<p>Ở ví dụ dưới đây tôi sử dùng Absolute Position để định vị 3 thẻ div nằm trong thẻ div lớn là <span class="post-span">#wrapper</span>. </p>
<pre class="brush: xml;">&lt;div id=&quot;wrapper&quot;&gt;
        &lt;div id=&quot;left&quot;&gt;&amp;nbsp;&lt;/div&gt;

        &lt;div id=&quot;middle&quot;&gt;&amp;nbsp;&lt;/div&gt;

        &lt;div id=&quot;right&quot;&gt;&amp;nbsp;&lt;/div&gt;
    &lt;/div&gt;</pre>
<p>Với Absolute Position bạn có thể sử dụng các giá trị: <span class="post-span">px, em và %</span> và với các vị trí: <span class="post-span">top, right, bottom và left</span>. Tuy nhiên trong thực tế bạn chỉ cần 2 giá trị là top và left (hoặc right) thì cũng đủ để định vị một thành phần rồi.</p>
<p><strong>Mẹo nhỏ</strong>: Nếu trong quá trình định vị tọa độ với Absolute bạn phải làm đi làm lại nhiều lần. Thì nay bạn có thể sử dụng addon Firebug để định vị chính xác đến từng Pixel. Tôi có làm một video <a href="http://www.izwebz.com/video-tutorials/firebug-webmaster-can-co/">hướng dẫn cách sử dụng Firebug</a>.</p>
<div class="tutorial-image">
<img src="http://www.izwebz.com/wp-content/uploads/2009/08/absolute-1.png" alt="Absolute Position" />
</div>
<p>Ở ví dụ trên thẻ <span class="post-span">div#wrapper</span> có <span class="post-span">position: relative</span>, nó sẽ đóng vai trò làm thành phần bao quanh cho 3 thẻ div có <span class="post-span">position: absolute</span> nằm bên trong nó. Nếu ta bỏ giá trị <span class="post-span">position: relative</span> ở thẻ <span class="post-span">div#wrapper</span> đi thì 3 thẻ div ở trong sẽ như &#8220;hươu lạc mẹ&#8221; và chạy toán loạn hết. Uhm! thực ra cũng không toán loạn mà nó sẽ nhận <span class="post-span">body</span> làm mẹ nuôi và định vị theo &#8220;bà mẹ&#8221; mới này.</p>
<div class="tutorial-image">
<img src="http://www.izwebz.com/wp-content/uploads/2009/08/absolute-2.png" alt="Absolute Position" />
</div>
<p>Chính vì thế điều quan trọng nhất trong khi sử dụng Absolute Position là xác định thành phần bao quanh và đặt position của nó thành relative</p>
<h5>Nghe cũng hay mà bạn có ví dụ trong thực tế không?</h5>
<p>Tôi biết là bạn sẽ hỏi do vậy tôi đã chuẩn bị trước một <a href="http://www.izwebz.com/wp-content/uploads/2009/08/demo/absolute/">giao diện được sử dụng Absolute Position</a> cho bạn tham khảo. Bạn sẽ dễ dàng nhận thấy ở giao diện này có một tấm hình lớn choán hết phần Header và nó nằm &#8220;chông chênh&#8221; ở giữa. Đây là ví dụ hoàn hảo về sử dụng Absolute Position để định vị các thành phần.</p>
<p>Ngoài ra các thành phần còn lại như thanh di chuyển ở trên và dưới, logo và phần Featured đều được sử dụng Absolute Position. Tôi đã thử trong IE 6, 7 và 8 và hầu như không phải hack bất cứ phần nào ngoại trừ phần PNG hack cho IE 6. Nếu giao diện này làm bằng Float thì sẽ ít nhất là cũng phải hack cái Double Margin của IE.</p>
<p>Bạn có thể <a href="http://www.izwebz.com/wp-content/uploads/2009/08/downloads/absolute.rar">download ví dụ này</a> về để xem phần code HTML và CSS</p>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/absolute-position-trong-thiet-ke-giao-dien/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Những cách trình bày CSS</title>
		<link>http://www.izwebz.com/css/nhung-cach-trinh-bay-css/</link>
		<comments>http://www.izwebz.com/css/nhung-cach-trinh-bay-css/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 04:13:09 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=1567</guid>
		<description><![CDATA[Trong bài này chúng ta sẽ không bàn đến những tính năng thông thường của CSS mà trong bài này chúng ta sẽ xem xét đến những cách trình bày code CSS. Có rất nhiều cách bạn có thể chọn để trình bày trong CSS, nhưng chọn ra cách nào phù hợp với mình và [...]]]></description>
			<content:encoded><![CDATA[<p>Trong bài này chúng ta sẽ không bàn đến những tính năng thông thường của CSS mà trong bài này chúng ta sẽ xem xét đến những cách trình bày code CSS. Có rất nhiều cách bạn có thể chọn để trình bày trong CSS, nhưng chọn ra cách nào phù hợp với mình và luôn sử dụng nó là tốt nhất. </p>
<p><span id="more-1567"></span></p>
<p>Như bạn biết code CSS không kể khoảng trắng cho nên bạn có thể trình bày nó như thế nào tùy thích, ví dụ khi bạn viết:</p>
<pre class="brush: css;">#nav       {       list-style:          none;            }</pre>
<p>Thì cũng tương đương như khi bạn viết:</p>
<pre class="brush: css;">#nav {list-style: none;}</pre>
<p>Chính vì thế người ta mới có nhiều cách để trình bày code CSS sao cho dễ nhìn và dễ đọc hơn. Tôi phải nói trước rằng không có cách nào là cách tốt nhất mà chỉ có cách phù hợp với bạn nhất. Những cách trình bày sau đây được cho là phổ biến nhưng nếu bạn thấy cách nào phù hợp với mình nhất thì bạn có thể chọn và luôn sử dụng nó</p>
<h5>Cách 1: Nhiều hàng</h5>
<p>Cách này là cách tôi hay sử dụng trong các tutorial mà bạn thấy trong video. Theo tôi thấy thì cách này là phù hợp với tôi nhất bởi vì nếu cần chỉnh sửa code CSS sau này, bạn chỉ việc tìm đến Selector và các Attribute của nó ở ngay bên dưới và riêng ra từng dòng. Nhưng mặt hạn chế của nó là làm cho code CSS của bạn dài hơn và &#8220;nặng&#8221; hơn.</p>
<pre class="brush: css;">#header {
	height: 310px;
	background: transparent url(images/head.jpg) no-repeat top center;
}
#header h1 a{
	display: block;
	width: 376px; height: 47px;
	text-indent: -99999px;
	float: left;
	margin: 210px 0px 0px 10px;
	background: url(images/logo.png) no-repeat left top;
}
#header #mainNav {
	height: 35px; line-height: 35px;
	position: relative;
	border-top:  1px solid #89cce1;
	border-bottom:  1px solid #89cce1;
	margin: 17px 0px 20px 0px;
	background: #cde9f2;
}</pre>
<h5>Cách 2: Selector và Attribute chung một hàng</h5>
<pre class="brush: css;">#header { height: 310px; background: transparent url(images/head.jpg) no-repeat top center;}
#header h1 a {display: block; width: 376px; height: 47px; text-indent: -99999px; float: left;margin: 210px 0px 0px 10px;
	background: url(images/logo.png) no-repeat left top;}
#header #mainNav {height: 35px; line-height: 35px; 	position: relative;	border-top:  1px solid #89cce1;border-bottom:  1px solid #89cce1;margin: 17px 0px 20px 0px;background: #cde9f2;}</pre>
<p>Thì như bạn thấy, cách thứ 2 tiết kiệm được chiều dọc, nhưng có vẻ khó đọc hơn và nhìn như ma trận.</p>
<h5>Cách 3: Một hàng với Tab</h5>
<pre class="brush: css;">#header                     { height: 310px; background: transparent url(images/head.jpg) no-repeat top center;}
#header h1 a              {display: block; width: 376px; height: 47px; text-indent: -99999px;
                                  float: left;margin: 210px 0px 0px 10px;
	                          background: url(images/logo.png) no-repeat left top;}
#header #mainNav       {height: 35px; line-height: 35px; position: relative;
                                  border-top:  1px solid #89cce1;border-bottom:  1px solid #89cce1;margin:
                                 17px 0px 20px 0px;background: #cde9f2;}</pre>
<p>Cách trình bày thế này thì cũng dễ đọc hơn và khi chỉnh sửa bạn cũng tìm thấy Selector dễ hơn vì bạn không phải kéo chuột miên man mệt mỏi (sao nhiều &#8220;mờ&#8221; thế nhỉ)</p>
<h5>Cách 4: Nhiều hàng với thụt đầu dòng</h5>
<pre class="brush: css;">#header #mainNav {
	height: 35px; line-height: 35px;
	position: relative;
	border-top:  1px solid #89cce1;
	border-bottom:  1px solid #89cce1;
	margin: 17px 0px 20px 0px;
	background: #cde9f2;
       }
       #mainNav ul li {
	                    display: inline;
                          }
                         #mainNav ul li a {
	                                        color: #7dc4db;
	                                        font-weight: bold;
	                                        padding: 0px 5px 0px 10px;
	                                       }
                                               #mainNav ul li a:hover {
	                                       text-decoration: underline;
                                               }
#mainNav img.support {
	position: absolute;
	top: -6px; right: 0;
}
</pre>
<p>Cách trình bày thế này cũng tốn chiều dọc, nhưng giúp bạn biết được thành phần nào là con thành phần nào bằng trực giác. Tuy bạn có thể đọc code để biết được, nhưng đôi khi trực giác cũng rất tốt để bao quát vấn đề</p>
<h5>Cách 5: Sử dụng kết hợp</h5>
<p>Đây cũng là biện pháp tôi sử dụng cho những trang có quá nhiều code CSS. Như nói ở trên tôi thích nhất cách nhiều hàng, nhưng nếu nó dài quá thì nên kết hợp lại. Tôi thường kết hợp các thành phần liên quan đến nhau như sau:</p>
<pre class="brush: css;">div#containter {
     width: 300px; height: 400px;
     margin: 0px 0px 10px 15p; padding: 4px 5px;
     font-size: 12px; font-family: arial, sans-serif; color: blue;
     background: #456423;
}</pre>
<p>Như bạn thấy tôi kết hợp độ rộng với chiều cao, Margin với Padding và các giá trị liên quan đến font vào một hàng. Như thế cũng tiết kiệm được chiều dài của code</p>
<h5>Kết Luận:</h5>
<p>Như đã nói, không có cách nào là cách tốt nhất mà chỉ có cách phù hợp nhất. Do vậy, bạn cứ chọn cho mình một cách và sau đó sử dụng nó toàn bộ trong quá trình code của mình. Nhưng dù gì đi chăng nữa, để có code CSS dễ đọc, dễ hiểu và dễ chỉnh sửa sau này hoặc làm việc theo nhóm. Bạn rất cần trình bày sao cho ngăn nắp, gọn gàng và mạch lạc. Đây chính là điểm khác biệt giữa một coder giỏi và một coder xuất sắc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/nhung-cach-trinh-bay-css/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS Selectors (Phần 2)</title>
		<link>http://www.izwebz.com/css/css-selectors-phan-2/</link>
		<comments>http://www.izwebz.com/css/css-selectors-phan-2/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 14:27:14 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=1530</guid>
		<description><![CDATA[Đây là phần 2 của video tutorial về CSS Selectors. Trong bài này chúng ta sẽ tiếp tục tìm hiểu về những selector khác của CSS như: Descentdant, child, sibling, attribute và pseudo selector. Trong Video tutorial này tôi sẽ chỉ ra những khái niệm cơ bản nhất của CSS Selectors. Tuy video chưa thể [...]]]></description>
			<content:encoded><![CDATA[<p>Đây là phần 2 của video tutorial về CSS Selectors. Trong bài này chúng ta sẽ tiếp tục tìm hiểu về những selector khác của CSS như: Descentdant, child, sibling, attribute và pseudo selector.</p>
<p><span id="more-1530"></span></p>
<p>Trong Video tutorial này tôi sẽ chỉ ra những khái niệm cơ bản nhất của CSS Selectors. Tuy video chưa thể bao quát hết tất cả các CSS Selectors, nhưng tôi cũng đã cố gắng chọn ra những Selectors quan trọng nhất và hay được sử dụng nhất.</p>
<p><br/></p>
<p>Trong bài này tôi sẽ hướng dẫn đến những Selector như sau:</p>
<ul>
<li>Khái niệm về quan hệ &#8220;gia đình&#8221; trong CSS</li>
<li>Universal selector</li>
<li>Type selectors</li>
<li>Class selectors</li>
<li>ID selectors</li>
<li>Giống và khác nhau giữa Class và ID</li>
<li>Descendant selectors</li>
<li>Child selectors</li>
<li>Adjacent sibling selectors</li>
<li>Attribute selectors</li>
<li>Pseudo-classes</li>
</ul>
<p><br/><br />
<strong>Thời lượng</strong>:16.25<br />
<strong>Link Download</strong> định dạng .avi chất lượng cao: <a href="http://www.megaupload.com/?d=NMEK3DTX">MegaUpload</a>, <a href="http://www.mediafire.com/?jy2undm4uyo">MediaFire</a><br />
<strong>File Size</strong>: 34.1MB<br />
<strong>Các phần khác:</strong><a href="http://www.izwebz.com/video-tutorials/css-selectors/"> Phần 1</a></p>
<div class="tutorial-image">
<iframe src="http://player.vimeo.com/video/14795947" width="580" height="480" frameborder="0"></iframe>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/css-selectors-phan-2/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>CSS Selectors (phần 1)</title>
		<link>http://www.izwebz.com/css/css-selectors-phan-1/</link>
		<comments>http://www.izwebz.com/css/css-selectors-phan-1/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 14:20:24 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=1527</guid>
		<description><![CDATA[CSS Selectors là một khái niệm hết sức quan trọng trong CSS. Những property của CSS nếu bạn có quên hoặc không biết thì có thể google là ra. Nhưng nếu bạn không nắm rõ khái niệm về CSS Selectors thì giống như bạn đi đường mà không biết đường vậy. Nếu không biết đường [...]]]></description>
			<content:encoded><![CDATA[<p>CSS Selectors là một khái niệm hết sức quan trọng trong CSS. Những property của CSS nếu bạn có quên hoặc không biết thì có thể google là ra. Nhưng nếu bạn không nắm rõ khái niệm về CSS Selectors thì giống như bạn đi đường mà không biết đường vậy. Nếu không biết đường rất có thể bạn quẹo nhầm đường, đi sai địa chỉ hoặc thậm chí còn không tới đích. Còn nếu không rõ về khái niệm CSS Selectors thì bạn sẽ không hướng tới đối tượng mà mình muốn được, code CSS không như ý muốn, lạm dụng Class và ID, code CSS khó hiểu và phức tạp &#8230;</p>
<p><span id="more-1527"></span></p>
<p>Trong Video tutorial này tôi sẽ chỉ ra những khái niệm cơ bản nhất của CSS Selectors. Tuy video chưa thể bao quát hết tất cả các CSS Selectors, nhưng tôi cũng đã cố gắng chọn ra những Selectors quan trọng nhất và hay được sử dụng nhất.</p>
<p><br/></p>
<p>Trong bài này tôi sẽ hướng dẫn đến những Selector như sau:</p>
<ul>
<li>Khái niệm về quan hệ &#8220;gia đình&#8221; trong CSS</li>
<li>Universal selector</li>
<li>Type selectors</li>
<li>Class selectors</li>
<li>ID selectors</li>
<li>Giống và khác nhau giữa Class và ID</li>
<li>Descendant selectors</li>
<li>Child selectors</li>
<li>Universal selectors</li>
<li>Adjacent sibling selectors</li>
<li>Attribute selectors</li>
<li>Pseudo-classes</li>
</ul>
<p><br/><br />
<strong>Thời lượng</strong>:22:23<br />
<strong>Link Download</strong> định dạng .avi chất lượng cao: <a href="http://www.megaupload.com/?d=BNDJ7B5Q">MegaUpload</a>, <a href="http://www.mediafire.com/?4ddwwnd2zej">MediaFire</a><br />
<strong>File Size</strong>: 46.44MB<br />
<strong>Các phần khác:</strong><a href="http://www.izwebz.com/video-tutorials/css-selectors-phan-2/"> Phần 2</a></p>
<div class="tutorial-image">
<iframe src="http://player.vimeo.com/video/14795862" width="580" height="480" frameborder="0"></iframe>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/css-selectors-phan-1/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Cách sử dụng div đúng cách</title>
		<link>http://www.izwebz.com/css/cach-su-dung-div-dung-cach/</link>
		<comments>http://www.izwebz.com/css/cach-su-dung-div-dung-cach/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 20:14:55 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=1343</guid>
		<description><![CDATA[Div là thẻ rất quan trọng trong thiết kế giao diện. Nó được sử dụng để thay thế hoàn toạn định dạng bảng trước đây. Tuy nhiên khi mới bắt đầu làm việc với CSS, chúng ta có xu hướng lạm dụng thẻ Div. Đôi khi vì muốn tạo được một thành phần nào đó [...]]]></description>
			<content:encoded><![CDATA[<p>Div là thẻ rất quan trọng trong thiết kế giao diện. Nó được sử dụng để thay thế hoàn toạn định dạng bảng trước đây. Tuy nhiên khi mới bắt đầu làm việc với CSS, chúng ta có xu hướng lạm dụng thẻ Div. Đôi khi vì muốn tạo được một thành phần nào đó mà bạn có thể sử dụng thẻ div nhiều hơn mức cần thiết. Trong bài này sẽ hướng dẫn bạn cách sử dụng thẻ div đúng cách và &#8220;tiết kiệm&#8221; nhất.</p>
<p><span id="more-1343"></span></p>
<p><strong>Thời lượng</strong>:12:19<br />
<strong>Link Download</strong> định dạng .avi chất lượng cao: <a href="http://www.megaupload.com/?d=7OQ3M4CK">MegaUpload</a>, <a href="http://www.mediafire.com/?myv4nyjoytx">MediaFire</a><br />
<strong>File Size</strong>: 22.55MB</p>
<div class="tutorial-image">
[flashvideo file="http://www.izwebz.com/wp-content/uploads/2009/08/videos/div.flv /]</p>
<div class="fullScreen"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/cach-su-dung-div-dung-cach/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Clear và Float (video)</title>
		<link>http://www.izwebz.com/css/clear-va-float-video/</link>
		<comments>http://www.izwebz.com/css/clear-va-float-video/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 16:21:42 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=1241</guid>
		<description><![CDATA[Clear và Float là một khái niệm rất quan trọng trong CSS và sử dụng rất nhiều trong thiết kế giao diện với CSS. Tôi đã có bài viết về Clear và Float, nhưng vì đây là một khái niệm quan trọng, do vậy tôi muốn làm một video tutorial để giải thích những khía [...]]]></description>
			<content:encoded><![CDATA[<p> Clear và Float là một khái niệm rất quan trọng trong CSS và sử dụng rất nhiều trong thiết kế giao diện với CSS. Tôi đã có bài viết về Clear và Float, nhưng vì đây là một khái niệm quan trọng, do vậy tôi muốn làm một video tutorial để giải thích những khía cạnh khác của Clear và Float. Hy vọng qua video này, bạn sẽ hiểu thêm ra về clear và float</p>
<p><span id="more-1241"></span><br />
<strong>Thời lượng</strong>:19:44<br />
<strong>Link Download</strong> file định dạng .avi chất lượng cao: <a href="http://www.megaupload.com/?d=9BEAF6KR">MegaUpload</a>, <a href="http://www.mediafire.com/?jkznrozz2oj">MediFire</a><br />
<strong>File Size</strong>:63.13MB<br />
<strong>Tut chữ</strong> <a href=http://www.izwebz.com/css/clear-va-float/">về clear và float</a></p>
<div class="tutorial-image">
<iframe src="http://player.vimeo.com/video/14797340" width="580" height="480" frameborder="0"></iframe>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/clear-va-float-video/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Display Property</title>
		<link>http://www.izwebz.com/css/display-property-2/</link>
		<comments>http://www.izwebz.com/css/display-property-2/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 00:28:46 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=1121</guid>
		<description><![CDATA[Ở bài trước bạn đã biết rằng tất cả các thành phần xhtml đều có Position Property. Cũng tương tự như vậy tất cả các thành phần xhtml đều có Display Property. Thực tế có khá nhiều giá trị Display Property, nhưng những thành phần hay được sử dụng nhất thường có một giá trị [...]]]></description>
			<content:encoded><![CDATA[<p>Ở bài trước bạn đã biết rằng tất cả các thành phần xhtml đều có Position Property. Cũng tương tự như vậy tất cả các thành phần xhtml đều có Display Property. Thực tế có khá nhiều giá trị Display Property, nhưng những thành phần hay được sử dụng nhất thường có một giá trị Display Property mặc định là Inline hoặc Block. Video sau đây sẽ minh hoạ cho 2 ví dụ vế sử dụng Display Property kết hợp với Position Property để tạo ra pop up và tool tip</p>
<p><span id="more-1121"></span><br />
<strong>Xem Demo:</strong> <a href="http://www.izwebz.com/wp-content/uploads/2009/08/demo/tooltip/index.html">Display Property</a><br />
<strong>Link Download</strong> với định dạng .mp4 chất lượng cao hơn: <a href="http://www.megaupload.com/?d=0MSVUL3A">Megaupload</a>, <a href="http://www.mediafire.com/?zatdbjnen1y">Mediafire</a></p>
<div class='tutorial-image'>
<iframe src="http://player.vimeo.com/video/14799931" width="580" height="480" frameborder="0"></iframe></div>
<p>Sự khác biệt giữa thành phần Inline và Block như sau</p>
<ul>
<li>Block Elements như là: đoạn văn bản, heading, danh sách được xếp chồng lên nhau khi hiển thị trên trình duyệt.</li>
<li>Inline Elements là những thành phần như &lt;a&gt;, &lt;span&gt; và &lt;img&gt; được xếp cạnh nhau khi hiển thị trên trình duyệt. Và nó chỉ xuống dòng khi không còn đủ chỗ trống.</li>
<div class='tutorial-image'>
<img src="http://www.izwebz.com/wp-content/uploads/2009/08/tooltip-1.jpg" alt="tooltip with css" /></div>
<p>Nhưng cái hay của CSS là chúng ta có thể biến Block Element thành Inline Element và ngược lại, ví dụ:</p>
<pre class="brush: css;">
p {display:inline;}
a {display:block}</pre>
<p>Đây là một tính năng rất mạnh cho phép bạn bắt một thành phần Inline phải lấp đầy hộp chứa nó, và rất hữu dụng khi bạn tạo menu drop với CSS.</p>
<p>Một giá trị nữa của Display cũng được sử dụng phổ biến là <span class='post-span'>none</span>. Khi một thành phần nào đó được gán giá trị <span class='post-span'>none</span>, thì thành phần đó và bất cứ cái gì nằm trong nó sẽ bị biến mất khỏi trình duyệt, kể cả khoảng không mà nó lẽ ra phải chiếm nếu được hiển thị cũng bị biến mất như chưa bao giờ từng tồn tại. Tính năng này có điểm khác với <span class='post-span'>Visibility Property</span> với hai giá trị là <span class='post-span'>visible</span> và <span class='post-span'>hidden</span>. Khi một thành phần được gán giá trị là <span class='post-span'>hidden</span>, nó chỉ bị ẩn đi và không hiện ra trên trình duyệt. Nhưng khoảng không nó chiếm vẫn còn đó và không bị mất.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/display-property-2/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Contextual Position</title>
		<link>http://www.izwebz.com/css/contextual-position-2/</link>
		<comments>http://www.izwebz.com/css/contextual-position-2/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 06:20:08 +0000</pubDate>
		<dc:creator>Demon Warlock</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.izwebz.com/?p=972</guid>
		<description><![CDATA[Contextual Position là một khái niệm rất cơ bản nhưng cũng rất quan trọng trong thiết kế giao diện bằng CSS. Absolute position là một tính năng rất hay của CSS nhưng dường như nó lại rất ít khi được sử dụng và có một số người lại ngại sử dụng Absolute Position. Trong bài [...]]]></description>
			<content:encoded><![CDATA[<p>Contextual Position là một khái niệm rất cơ bản nhưng cũng rất quan trọng trong thiết kế giao diện bằng CSS. Absolute position là một tính năng rất hay của CSS nhưng dường như nó lại rất ít khi được sử dụng và có một số người lại ngại sử dụng Absolute Position. Trong bài này tôi sẽ hướng dẫn bạn cách sử dụng Absolute và chỉ cho bạn thấy khái niệm Contextual Position.</p>
<p><span id="more-972"></span></p>
<p><strong>Thời lượng</strong>: 15m9s<br />
<strong><a href="http://www.megaupload.com/?d=BTDHU1V2">Link Download</a></strong>: phiên bản chất lượng hình cao hơn</p>
<div class='tutorial-image'>
<iframe src="http://player.vimeo.com/video/14797724" width="400" height="300" frameborder="0"></iframe>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.izwebz.com/css/contextual-position-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
