欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WEB前端涉及的布局、結(jié)構(gòu)化和標(biāo)準(zhǔn)化

互聯(lián)網(wǎng)   發(fā)布時(shí)間:2008-10-17 19:23:59   作者:佚名   我要評(píng)論
很久沒有寫文章,最近一直在忙于找工作和找房子。哎,現(xiàn)在終于安定下來了,哎,又嘆息一下,是因?yàn)槲野讶ヌ詫毭嬖嚨臋C(jī)會(huì)也推掉了,本來以為要卷鋪蓋回武漢了,哎,不提了,很對(duì)不起小馬哥,也很對(duì)不起自己??! 現(xiàn)在還是在上海,不扯了,開始正題吧。做前端開發(fā)快有3年時(shí)

很久沒有寫文章,最近一直在忙于找工作和找房子。哎,現(xiàn)在終于安定下來了,哎,又嘆息一下,是因?yàn)槲野讶ヌ詫毭嬖嚨臋C(jī)會(huì)也推掉了,本來以為要卷鋪蓋回武漢了,哎,不提了,很對(duì)不起小馬哥,也很對(duì)不起自己?。?
現(xiàn)在還是在上海,不扯了,開始正題吧。做前端開發(fā)快有3年時(shí)間,今天跟大家談?wù)剛€(gè)人對(duì)WEB前端開發(fā)的一些經(jīng)驗(yàn)(當(dāng)然都是個(gè)人的一些理解,有什么地方說的欠妥或不對(duì)的地方還請(qǐng)包含和指正),這里我就從WEB標(biāo)準(zhǔn)開始吧。
WEB標(biāo)準(zhǔn)是什么?
呵呵,說是WEB標(biāo)準(zhǔn),不過我這里主要是對(duì)XHTML1.1 和 CSS2.1的一些經(jīng)驗(yàn)總結(jié)。因?yàn)閃EB含蓋的內(nèi)容實(shí)在是太多了,“WEB標(biāo)準(zhǔn)”是一系列標(biāo)準(zhǔn)的總稱,包括HTML4.0、XHTML1.1、CSS2.1、XML1.0、RSS2.0、ECMAScript1.1、DOM1.0等等。所以這里要跟大家指出來一下,WEB標(biāo)準(zhǔn)不是我們所說的DIV CSS。
剛剛上面提到了——DIV CSS,呵呵,這里要說明下,這樣說其實(shí)是不正確的。DIV CSS準(zhǔn)確的說法(個(gè)人的理解)應(yīng)該是:采用W3C推薦的WEB標(biāo)準(zhǔn)中的XHTML1.1結(jié)合CSS2.0樣式表制作頁面的方法,DIV應(yīng)該指的是XHTML標(biāo)簽,而CSS顯示是指的CSS樣式表了。
采用WEB標(biāo)準(zhǔn)開發(fā)的好處
那么W3C為什么會(huì)推薦這樣的頁面制作方法呢?下面我們就簡單的看看采用WEB標(biāo)準(zhǔn)開發(fā)(個(gè)人理解的)相對(duì)以前TABLE布局的優(yōu)勢有哪些?
1、節(jié)約運(yùn)營成本,省錢啊!
呵呵,能幫你省錢的東西,你會(huì)不會(huì)有興趣?當(dāng)然是十分的有興趣了??纯次覀兊腤EB標(biāo)準(zhǔn)制作方法是如何做到的?
采用WEB標(biāo)準(zhǔn)制作,我們可以做到表現(xiàn)很形式的分離,我們用XHTML來表現(xiàn)(數(shù)據(jù)),用CSS來控制(頁面元素呈現(xiàn)的)形式。寫的好的頁面,XHTML代碼中基本上都是用戶要看的數(shù)據(jù),還其他修飾性的東西,全部由我們的CSS來控制。這樣一來我們的(XHTML)頁面的體積就大大減小了,這樣你在帶寬上的費(fèi)用就會(huì)大家降低了,這個(gè)怎么降低的,你可以想象一下,YAHOO的首頁小1K,100W個(gè)人一起訪問,那么帶寬節(jié)約了多少?而且可以更充分的利用帶寬。
而我們的CSS控制了,所有的頁面元素的樣式,現(xiàn)在想改網(wǎng)站的整體風(fēng)格,你只需要花幾分鐘修改一下一個(gè)CSS文件,就可以輕松搞定了。維護(hù)的成本也下來了,省了不少錢了吧?還有,你開這個(gè)頁面的速度會(huì)快很多啊,一個(gè)讓你等半分鐘的頁面,除非里面的信息對(duì)你很有用,不然我們大家基本都沒有太多的時(shí)間去用來等待的。
2、對(duì)用戶友好更友好,且有機(jī)會(huì)獲得更多的用戶
現(xiàn)在來說說用戶友好。首先我想把我們的用戶來分下類。
第一類:普通用戶(每個(gè)訪問我們網(wǎng)站的人);
第二類:搜索引擎;
采用WEB標(biāo)準(zhǔn)開發(fā)的頁面,結(jié)構(gòu)清晰,頁面體積小,瀏覽器兼容性好。普通用戶訪問的時(shí)候,頁面打開速度快,而且不管用戶使用那種瀏覽器,都能夠正常訪問(顯示)頁面,且頁面的結(jié)構(gòu)清晰,要找的數(shù)據(jù)可以很方便的瀏覽到。
而對(duì)搜索引擎來說,一個(gè)好的采用WEB標(biāo)準(zhǔn)開發(fā)的頁面,都是做過SEO優(yōu)化的,它訪問起來很友好,很容易理解你的頁面中哪里是標(biāo)題(H1~H6標(biāo)簽),哪里是段落(p標(biāo)簽),哪里是段落里要強(qiáng)調(diào)的內(nèi)容(strong標(biāo)簽) 等,它可以很容易的分析出來。而一個(gè)SEO好的站點(diǎn),大家都知道,被搜索引擎收錄的機(jī)會(huì)更多,這個(gè)也意味著您的網(wǎng)站會(huì)被更多的普通用戶訪問到,給你的站點(diǎn)帶來更多的用戶。
一個(gè)能幫我們省下大筆費(fèi)用,提高工作效率。同時(shí)又能夠提高頁面瀏覽速度,對(duì)用戶友好,甚至能夠不花錢宣傳,就能給你帶來更多用戶的技術(shù)。你說你會(huì)不會(huì)去使用它?呵呵,這個(gè)也正式我們的W3C推薦使用WEB標(biāo)準(zhǔn)開放網(wǎng)站的原因啊。而這個(gè)技術(shù)也得到了我們廣大用戶的認(rèn)可,所以您現(xiàn)在需要學(xué)習(xí)WEB標(biāo)準(zhǔn)啊。^-^!
呵呵,溫習(xí)完了基礎(chǔ)課程,現(xiàn)在正式開始講XHTML和CSS的技巧了。
合理的布局
有朋友會(huì)開始問了,怎么一開始就開始講合理的布局了呢?呵呵,前面我們提到了一些知識(shí)點(diǎn)——“結(jié)構(gòu)清晰、SEO優(yōu)化、頁面體積小、XHTML代碼中基本上都是用戶要看的數(shù)據(jù)”。這些東西,都是我們做了合理布局的結(jié)果。而且我個(gè)人覺得,我們采用WEB標(biāo)準(zhǔn)制作的一切都是從這個(gè)知識(shí)點(diǎn)開始的,所以我這里就先來說這個(gè)話題。
那么大家又會(huì)開始問,怎樣的一個(gè)頁面,才算是合理的布局的呢?恩,這個(gè)問題問題問得好,也是我們大家剛開始學(xué)用WEB標(biāo)準(zhǔn)的問得最多的問題之一,我也曾經(jīng)常被這個(gè)問題所困擾,這里就說說我對(duì)合理布局的一些理解。
在開始講合理布局的頁面要達(dá)到的要素前,我們還是用個(gè)實(shí)例來講解會(huì)更直觀些。先來看看這個(gè)圖片:

http://www.yaohaixiao.com/samples/myblog/index.htm
不錯(cuò),這個(gè)是一個(gè)文章詳細(xì)頁,沒有左右兩欄布局,不過這里我重點(diǎn)要講的是合理的布局,在稍后的文章中我會(huì)詳細(xì)的介紹浮動(dòng)元素。好,回到剛才的話題,大家看到了這個(gè)頁面了。
#p#
我這里先把代碼寫給大家看看(省略了部分代碼):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Ajax標(biāo)簽導(dǎo)航實(shí)例詳解</title>
<link href="css/article.css" _fcksavedurl=""css/article.css"" _fcksavedurl=""css/article.css"" _fcksavedurl=""css/article.css"" _fcksavedurl=""css/article.css"" rel="stylesheet" type="text/css" media="all" />
<script language="javascript" type="text/javascript" src="js/common.js"></script>
</head>
<body>
<div id="container">
<div id="topbar">
<h1><a href="http://www.yaohaixiao.com/" target="_blank" title="海嘯的地盤--享受生活,享受每一天!">海嘯的地盤--享受生活,享受每一天!</a></h1>
<div id="search-bar">
<form name="frmsearch" id="frmsearch" action="" method="post">
<label for="keyword">站內(nèi)搜索:</label>
<select id="topics">
<option value="0">全部主題</option>
<option value="1">(X)HTML</option>
<option value="2">CSS</option>
<option value="3">Javascript</option>
<option value="4">XML</option>
<option value="5">ASP/ASP.NET</option>
</select>
<input type="text" name="keyword" id="keyword" value="請(qǐng)輸入搜索關(guān)鍵字" maxlength="60" />
<input type="reset" name="btnsearch" id="btnsearch" value="開始搜索" />
</form>
</div>
</div>
<ul id="nav">
<li><a href="#2">ARTICLES</a></li>
<li><a href="#2">TOPICS</a></li>
<li><a href="#2">ABOUT</a></li>
<li><a href="#2">CONTACT</a></li>
<li><a href="#2">GESTBOOK</a></li>
<li><a href="#2">FEED</a></li>
</ul>
<h2>Ajax標(biāo)簽導(dǎo)航實(shí)例詳解</h2>
<div id="article-info">作者/程序設(shè)計(jì):<a href="yaohaixiaomailto:haixiao_yao@yahoo.com.cn">yaohaixiao</a> 來源:<a href="http://www.yaohaixiao.com" target="_blank">yaohaixiao.com</a> 發(fā)布時(shí)間:2008年4月28日</div>
<h3>代碼篇</h3>
<p>
之前整理發(fā)表了<a href="http://www.yaohaixiao.com/article.asp?id=44" target="_blank">《XMLHTTPRequest的屬性和方法簡介》</a>,它Ajax要使用的核心的技術(shù)之一,現(xiàn)在就來實(shí)際運(yùn)用它。這個(gè)Ajax標(biāo)簽導(dǎo)航,是我很久前就寫的一個(gè)腳本,很實(shí)用的(還被很多網(wǎng)站收錄了哦),現(xiàn)在拿它來做實(shí)例講解吧!當(dāng)然個(gè)人能力有限,有什么不對(duì)的地方還請(qǐng)多包含!
</p>
<p>
演示地址:<a href="http://www.yaohaixiao.com/code/ajaxtab/index.htm" target="_blank">http://www.yaohaixiao.com/code/ajaxtab/index.htm</a>
</p>
<p>
效果大家看到了,核心功能有:<br />
1、將當(dāng)前選中標(biāo)簽以特殊的樣式顯示<br />
2、將異步加載的頁面信息顯示到指定的DOM節(jié)點(diǎn)中
</p>
<p>
我們來看看處理腳本的代碼吧:
</p>
<div class="code-title">程序代碼:ajaxtab.js</div>
<div class="js code" name="code" id="js-code">
<!--<br />
// 判斷是否支持ActiveX<br />
var useActiveX=(typeof ActiveXObject != "undefined"); <br />
// 判斷是否支持DOM<br />
var useDom=document.implementation && document.implementation.createDocument;<br />
// 判斷是否支持XMLHttpRequest對(duì)象<br />
var useXmlHttp=(typeof XMLHttpRequest != "undefined");<br />
// XMLHttpRequest對(duì)象版本<br />
var ARR_XMLHTTP_VERS = ["MSXML2.XmlHttp.6.0","MSXML2.XmlHttp.3.0"];<br />
// DOM對(duì)象版本 <br />
var ARR_DOM_VERS = ["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.3.0"]; <br />
/* ===========================================================<br />
* 函數(shù)名稱:$(i)<br />
* 參數(shù)說明:i - 目標(biāo)節(jié)點(diǎn)名稱<br />
* 函數(shù)功能:獲取指定的目標(biāo)DOM節(jié)點(diǎn)<br />
* 返 回 值:返回要搜索的目標(biāo)DOM節(jié)點(diǎn)<br />
* 使用方法:$("frmSearch")<br />
============================================================ */<br />
function $(i){<br />
if(!document.getElementById)return false;<br />
if(typeof i==="string"){<br />
if(document.getElementById && document.getElementById(i)) {<br />
// W3C DOM<br />
return document.getElementById(i);<br />
}<br />
else if (document.all && document.all(i)) {<br />
// MSIE 4 DOM<br />
return document.all(i);<br />
}<br />
else if (document.layers && document.layers[i]) {<br />
// NN 4 DOM.. note: this won't find nested layers<br />
return document.layers[i];<br />
} <br />
else {<br />
return false;<br />
}<br />
}<br />
else{return i;}<br />
}<br />
//-->
</div>
<p>
id="news" - news就是我們的導(dǎo)航標(biāo)簽的ID;<br />
id="newsCnt" - newsCnt就是我們要寫入信息的目標(biāo)DOM節(jié)點(diǎn);<br />
class="first" - first當(dāng)前(第一個(gè))標(biāo)簽的樣式;<br />
id="news-0" - news-0 通過”-“分開,我們就分別可以得到news(導(dǎo)航標(biāo)簽ID),0(標(biāo)簽[li]在導(dǎo)航標(biāo)簽中的索引值)<br />
<a href="news/news0.htm">網(wǎng)站重構(gòu)</a> - 超鏈接<br />
<span></span> - 標(biāo)簽間的分割線<br />
</p>
<p>
我羅列的這些東西,相信大家開始看出了些頭緒了,呵呵,不過別急!在我們看處理的腳本之前,先讓我們來看看導(dǎo)航標(biāo)簽的樣式,主要是看看我們對(duì)分割線的處理(一點(diǎn)CSS處理的技巧)。
</p>
<p>
本來想偷個(gè)懶,讓大家看我上邊說的那篇文章,想想也就是Ctrl C&Ctrl V,都貼出來吧!呵呵?。?!
</p>
<p>
不過還沒有完,最后要說的就是innerHTML這個(gè)特性,這里我們還要感謝微軟啊,innerHTML就是它的專利,我們就是用它來改變指定DOM內(nèi)的HTML字符串的,而不用刷新頁面。詳細(xì)的信息大家還是google一下吧,我也要休息下啊?。『瓤诓柘龋。-^!
</p>
<p>
以上講了這么多,我們最后來看看,我們這個(gè)ajax標(biāo)簽導(dǎo)航都用到了那些技術(shù)吧:
</p>
<ol>
<li>XHTML</li>
<li>CSS</li>
<li>Javascript</li>
<li>DOM</li>
<li>XMLHttpRequest對(duì)象</li>
<li>innerHTML</li>
</ol>
<p>
還有XML,我們這個(gè)例子沒有涉及到。東西雖小,包含的(web前端開發(fā))知識(shí)可是都用到了啊,我把我會(huì)的點(diǎn)東西都端出來了(要失業(yè)了),呵呵!
</p>
<p>
當(dāng)然我很喜歡跟大家多交流,以后有時(shí)間,我們?cè)趤碚務(wù)凜SS的HACKS技巧,Javascript DOM編程等等的,今天就收工了,謝謝捧場先!??!
</p>
</div>
<p id="copyright">
Copyright &copy; 2007-2008 <strong><a href="yaohaixiao.comhttp://www.yaohaixiao.com">yaohaixiao.com</a></strong>, All rights reserved. Powered By: <a href="Yaohaixiaomailto:haixiao_yao@yahoo.com.cn">Yaohaixiao</a>
</p>
</body>
</html>

看出來什么沒有?(代碼是很多,呵呵?。┛赡艽蠹乙呀?jīng)發(fā)現(xiàn),整個(gè)頁面里基本上都是用戶要看的數(shù)據(jù),其中只包含了很少(必要)的布局(XHTML)標(biāo)簽(請(qǐng)?jiān)试S我這么說)。整個(gè)頁面基本都是由最基礎(chǔ)的h1~h6、p、ul、ol、li、form、div標(biāo)簽來實(shí)現(xiàn)的。
說到這里就要講到我在前面提到的“結(jié)構(gòu)清晰、SEO優(yōu)化、頁面體積小、XHTML代碼中基本上都是用戶要看的數(shù)據(jù)”,看看我的這個(gè)例子做到了沒有?
結(jié)構(gòu)清晰--也就是我們常說的,XHTML標(biāo)簽要結(jié)構(gòu)化(語意化)。
#p#
什么叫結(jié)構(gòu)化?
由于個(gè)人認(rèn)為這個(gè)知識(shí)點(diǎn)是十分重要的,所以請(qǐng)?jiān)试S我在這里多羅嗦幾句,我們采用WEB標(biāo)準(zhǔn)的方法制作頁面的優(yōu)勢就體現(xiàn)在頁面結(jié)構(gòu)清晰。我們以前用table布局的時(shí)候,我們的表現(xiàn)(數(shù)據(jù))和形式(布局樣式)是混在一起的,有很多冗余的數(shù)據(jù)混雜在一起,而大家再看看我上面給大家展示的代碼,很明顯,結(jié)構(gòu)十分清晰。
呵呵,說了半天,還是沒有說什么是結(jié)構(gòu)化,什么才是結(jié)構(gòu)清晰啊?不要急。還記得我剛才提到的那幾個(gè)標(biāo)簽嗎?
h1~h6--如果你要顯示的數(shù)據(jù)是作為標(biāo)題顯示的時(shí)候,就用這些標(biāo)簽,因?yàn)檫@個(gè)標(biāo)簽的意思就是說,這個(gè)是一個(gè)標(biāo)題,不僅我們的用戶很容易理解h-head的英文字母縮寫,我們的另外一個(gè)用戶搜索引擎也可以很容易理解它。呵呵,看到了吧,一個(gè)充分結(jié)構(gòu)化的頁面,對(duì)用戶是十分友好的。
p--Paragraph(段落)
ul--unorglized list(無序的列表)
ol--orglized list(有序的列表)
li--list item(列表項(xiàng))
form--表單
div--division(區(qū)域)
我這么一寫,大家估計(jì)開始明白了,原來XHTML標(biāo)簽是有著自己的意義的(至于其他的標(biāo)簽的語意義,大家可以自己到W3C看看它的解釋,也可以查看語義化你的HTML標(biāo)簽和屬性),所以我們講要語意化的意思,就是用合理的標(biāo)簽來顯示數(shù)據(jù),比如前面提到的,是標(biāo)題,就應(yīng)該用h1~h6標(biāo)簽,如果是一個(gè)段落的介紹文字,那么就應(yīng)該使用p標(biāo)簽,如果是顯示的一個(gè)沒有順序的列表,就應(yīng)該用ul標(biāo)簽,如此...
所以看這個(gè)例子里
<h2>Ajax標(biāo)簽導(dǎo)航實(shí)例詳解</h2>
這么寫就是很合理的,h2標(biāo)簽就說明這里是個(gè)標(biāo)題。而這么寫:
復(fù)制內(nèi)容到剪貼板代碼:
.title{
font-size:18px;
...
}
<div class="title"><strong>Ajax標(biāo)簽導(dǎo)航實(shí)例詳解</strong></div>

雖然你用了strong來強(qiáng)調(diào)說明這部分文字,但是還是沒有h2標(biāo)簽來的直接明了。
還有這么寫
<div class="ariticle-title"><h2>Ajax標(biāo)簽導(dǎo)航實(shí)例詳解</h2></div>
也不是我們推薦的,可以不用嵌套層的地方,我們盡量不要去過多的嵌套層,減少嵌套會(huì)讓我們的瀏覽器解析起來會(huì)更容易,速度更快。
所我們使用WEB標(biāo)準(zhǔn)開發(fā)頁面,絕對(duì)不是單純的把以前的table換成DIV就OK了。而采用標(biāo)準(zhǔn)制作頁面,也不意味著我們就不使用table。只要把握我剛才說的原則,使用合理的標(biāo)簽顯示相應(yīng)特征的數(shù)據(jù)。
其實(shí)我們的table標(biāo)簽是一個(gè)很好的用來顯示二維數(shù)據(jù)的標(biāo)簽,而table標(biāo)簽也確實(shí)是設(shè)計(jì)出來用來顯示數(shù)據(jù)的,而不是用來布局的,只是我們當(dāng)時(shí)的設(shè)計(jì)師們都用table標(biāo)簽來布局了。關(guān)于table標(biāo)簽的使用,大家也可以去看看上面提供那篇參考文章《語義化你的HTML標(biāo)簽和屬性》。
#p#
上面,我們講到了要充分的語意化,其中我們提到了嵌套的問題,這個(gè)也是我們做到結(jié)構(gòu)化的一個(gè)重要部分。個(gè)人認(rèn)為一個(gè)最基本的原則就是盡量減少嵌套。至于為什么這么做,我剛才也給大家做了一個(gè)簡單的介紹,結(jié)構(gòu)清晰,瀏覽器解析快。其實(shí)結(jié)構(gòu)清晰(夠簡單,嵌套少),對(duì)我們的搜索引擎同樣是做起到了SEO的效果。怎么講?大家想想,嵌套N多層,跟我們以前使用table設(shè)計(jì)時(shí),table套table的區(qū)別就不大了,而那種含有大量冗余信息的頁面,搜索引擎解析的時(shí)候也很費(fèi)力啊。所以我們現(xiàn)在有了WEB標(biāo)準(zhǔn),就不要再去犯以前的錯(cuò)誤了。
說到SEO優(yōu)化,讓我們來看看我的例子中對(duì)LOGO的處理,XHTML代碼如下:
<div id="topbar">
<h1><a href="http://www.yaohaixiao.com/" target="_blank" title="海嘯的地盤--享受生活,享受每一天!">海嘯的地盤--享受生活,享受每一天!</a></h1>
<div id="search-bar">
<form name="frmsearch" id="frmsearch" action="" method="post">
<label for="keyword">站內(nèi)搜索:</label>
<select id="topics">
<option value="0">全部主題</option>
<option value="1">(X)HTML</option>
<option value="2">CSS</option>
<option value="3">Javascript</option>
<option value="4">XML</option>
<option value="5">ASP/ASP.NET</option>
</select>
<input type="text" name="keyword" id="keyword" value="請(qǐng)輸入搜索關(guān)鍵字" maxlength="60" />
<input type="reset" name="btnsearch" id="btnsearch" value="開始搜索" />
</form>
</div>

呵呵,當(dāng)大家用瀏覽器瀏覽時(shí),可能會(huì)以為這里是一個(gè)<img />標(biāo)簽吧?其實(shí)我這里做了一個(gè)簡單的SEO優(yōu)化(當(dāng)然只是我個(gè)人比較喜歡這個(gè)方法,可能有朋友跟我有不同觀點(diǎn)。),做了關(guān)鍵字的優(yōu)化。
對(duì)SEO有些了解的朋友都知道,搜索引擎搜索關(guān)鍵字的時(shí)候,是先對(duì)XHTML標(biāo)簽里的<meta>標(biāo)簽的keyword部分的文字,然后就是標(biāo)題里的文字,接著就是正文中的h1~h6標(biāo)簽,然后是strong標(biāo)簽中的文字。而我們網(wǎng)站的名稱,毫無疑問的會(huì)作為關(guān)鍵字的。
所以我這里用h1標(biāo)簽?zāi)M了<img />標(biāo)簽的效果,將網(wǎng)站名稱這個(gè)關(guān)鍵字在頁面里出現(xiàn)了一次,而且是以正文中搜索引擎分析的優(yōu)先級(jí)最好的h1標(biāo)簽,以說明該內(nèi)容在頁面中的關(guān)鍵性。具體的實(shí)現(xiàn)代碼這里就直接寫出來:
#topbar h1{
float:left;
width:220px;
height:58px;
line-height:58px;
overflow:hidden;
font-size:18px;
color:#060;
text-indent:-999px;
background-image:url(../img/logo.png);
}
#topbar h1 a:link,
#topbar h1 a:visited,
#topbar h1 a:hover{
display:block;
width:220px;
height:58px;
line-height:58px;
overflow:hidden;
background-color:transparent;
}
<h1><a href="http://www.yaohaixiao.com/" target="_blank" title="海嘯的地盤--享受生活,享受每一天!">海嘯的地盤--享受生活,享受每一天!</a></h1>

看了代碼,我想大家也很明白了,我們這里利用了text-indent、overflow:hidden;屬性以及display:block。我們把LOGO圖片作為h1標(biāo)簽的背景,然后用text-indent設(shè)置一個(gè)超大的負(fù)值,然后結(jié)合overflow:hidden;屬性,讓h1標(biāo)簽里面的字都超出到它的布局范圍內(nèi),overflow:hidden后就在h1標(biāo)簽里看不到文字了,而LOGO圖片背景顯示出來了。
接著一個(gè)關(guān)鍵就是將a標(biāo)簽?zāi)M成圖片鏈接的效果。我們首先將a標(biāo)簽display屬性設(shè)置為block,強(qiáng)制將a標(biāo)簽顯示成塊級(jí)元素(塊級(jí)元素和行內(nèi)元素的知識(shí)我們下面馬上給大家介紹),給它設(shè)置布局大小,這樣我們a標(biāo)簽里就是一個(gè)塊了,而這個(gè)塊剛好是我們背景l(fā)ogo圖片的大小,讓你點(diǎn)擊的時(shí)候感覺是點(diǎn)的一個(gè)圖片鏈接,而我們的a標(biāo)簽是嵌套在h1標(biāo)簽里的,繼承了H1的text-indent屬性,里面的文字超出了a標(biāo)簽的布局范圍,沒有顯示出來,而顯示了圖片(其實(shí)是背景圖)。呵呵,圖片鏈接就這樣被我們模擬出來了,不過為了更像圖片鏈接,我們又給a標(biāo)簽添加了title屬性,來模仿img標(biāo)簽的alt屬性,呵呵,模擬得夠像吧。
上面介紹了,一個(gè)技巧,其實(shí)主要是利用我們的CSS控制來實(shí)現(xiàn)的,不過我這里還不打算介紹CSS的技巧,接著我們的結(jié)構(gòu)化的話題說下去??纯矗鋵?shí)在制作一個(gè)結(jié)構(gòu)化充分的頁面的時(shí)候,我們同時(shí)也在做SEO的優(yōu)化。
#p#
結(jié)構(gòu),結(jié)構(gòu),剛才我提到了標(biāo)簽有塊級(jí)元素和行內(nèi)元素之分的,要是不理解好這兩個(gè)概念,我們也不會(huì)很好的了解怎么合理的結(jié)構(gòu)化頁面,現(xiàn)在就來介紹它們:
塊級(jí)元素
塊級(jí)元素生成一個(gè)元素框,(默認(rèn)地)它會(huì)填充其父級(jí)元素的內(nèi)容,旁邊不能有其他元素。換句話說,他在元素框之前和之后生成了“分隔”符。我們最熟悉的HTML元素是p和div.
行內(nèi)元素
行內(nèi)元素在一個(gè)文本行內(nèi)生成元素框,而不會(huì)打斷這行文本。行內(nèi)元素最好的例子就是XHTML中的a元素。strong和em也屬于行內(nèi)元素。這些元素不會(huì)在它本身之前或之后生成“分隔符”,所以可以出現(xiàn)在另一個(gè)元素的內(nèi)容中,而不會(huì)破壞其顯示。
注意,盡管“塊”和“行內(nèi)”這兩個(gè)詞與HTML和XHTML中的塊級(jí)和行內(nèi)元素有很多共同點(diǎn),但也存在一個(gè)重要的差別。在HTML和XHTML中,塊級(jí)元素不能繼承自行內(nèi)元素(即不能嵌套在行內(nèi)元素中)。但是CSS中,對(duì)于顯示角色如何嵌套不存在任何限制。
恩,還是不能把CSS跟XHTML完全的分開談,沒辦法。現(xiàn)在大家了解了什么是塊級(jí)元素和什么是行內(nèi)元素了吧。還是回過頭來接著說我們的結(jié)構(gòu)化吧,以上講了這么多,我都是在講XHTML標(biāo)簽要結(jié)構(gòu)化,所以基本跟CSS關(guān)系不大,那么我們下面看看我寫的這個(gè)頁面的代碼在沒有CSS的情況想,是否結(jié)構(gòu)清晰吧:

看看,頁面是不是依舊很清晰,很容易看出,哪里是標(biāo)題,哪里是導(dǎo)航,哪里是搜索表單?呵呵,其實(shí)我這么給大家看的頁面,跟我們的搜索引擎查看頁面的結(jié)構(gòu)很接近了,到這里大家可能體會(huì)到一些搜索引擎友好的意思了吧?
其實(shí)讓我們看看這個(gè)頁面的DOM數(shù)狀圖,可能我們對(duì)一個(gè)簡潔合理的結(jié)構(gòu)化布局的頁面有更直觀的了解。

看看,是不是做到了我說的:XHTML標(biāo)簽充分的語意化、盡量少的嵌套、頁面里基本只顯示用戶需要看的數(shù)據(jù)、對(duì)搜索引擎友好(沒有CSS支持時(shí),瀏覽頁面時(shí)同樣清晰,層次分明,十分容易查看的數(shù)據(jù)。),已做了基本的SEO優(yōu)化
呵呵,說到這里我才回答了“怎樣的一個(gè)頁面才算是合理的布局的呢?”,做到上面4點(diǎn),我個(gè)人覺得這個(gè)頁面就已經(jīng)做到了合理布局。而至于說要通過W3C的XHTML語法驗(yàn)證,只是很基礎(chǔ)的開始。一個(gè)通過驗(yàn)證的頁面和一個(gè)合理布局的頁面是兩碼事的。
這里我再羅嗦一下,我一直都在說的是個(gè)人認(rèn)為如何才算是一個(gè)合理布局的頁面?要達(dá)到什么要求才能算合理布局?因?yàn)橹挥欣斫饬诉@個(gè),之后的CSS的技巧(瀏覽器的兼容處理等)都是圍繞著讓XHTML頁面布局更合理來進(jìn)行的。而不是單純做到各個(gè)瀏覽器下都顯示正常(一致)。所以請(qǐng)記住在開發(fā)時(shí)做到:
    XHTML標(biāo)簽充分的語意化 盡量少的嵌套 頁面里基本只顯示用戶需要看的數(shù)據(jù)(我們用CSS直接控制用戶需要看的數(shù)據(jù)的顯示的樣式) 頁面對(duì)搜索引擎友好(沒有CSS支持時(shí),瀏覽頁面時(shí)同樣清晰,層次分明,十分容易查看數(shù)據(jù)。),已做了基本的SEO優(yōu)化

今天就談到這里吧,下面我們會(huì)接著討論CSS的處理技巧。

相關(guān)文章

  • css九宮格布局的五種方法

    本文主要介紹了css九宮格布局的五種方法,內(nèi)容包括grid布局、flex布局、table布局、float浮動(dòng)定位、inline-block+letter-spacing屬性這五種方法的實(shí)現(xiàn),感興趣的可以了解下
    2023-09-18
  • CSS實(shí)現(xiàn)元素水平垂直居中的幾種方法

    在Web開發(fā)中,經(jīng)常會(huì)遇到需要將元素水平和垂直居中的情況,今天,將為大家分享幾種CSS方法,讓你的元素輕松居中,讓頁面更美觀吸引人,感興趣的小伙伴可以自己動(dòng)手試一試
    2023-09-08
  • css實(shí)現(xiàn)元素居中的6種方法

    相信大家在面試的時(shí)候也會(huì)經(jīng)常碰到css實(shí)現(xiàn)元素居中的方法,下面我介紹6種方法給大家,歡迎大家評(píng)論區(qū)交流
    2023-09-07
  • flex布局中使用flex-wrap實(shí)現(xiàn)換行的項(xiàng)目實(shí)踐

    最近需要做個(gè)換行的布局,本文主要介紹了flex布局中使用flex-wrap實(shí)現(xiàn)換行的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需
    2022-06-16
  • CSS布局之浮動(dòng)(float)和定位(position)屬性的區(qū)別

    今天看到有朋友留言問浮動(dòng)和定位有什么區(qū)別,如何使用?今天找了篇文章,講的比較通俗易懂,供大家參考
    2021-09-23
  • css實(shí)現(xiàn)元素居中的N種方法

    這篇文章主要介紹了css實(shí)現(xiàn)元素居中的N種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • div水平布局兩邊對(duì)齊的三種實(shí)現(xiàn)方法

    這篇文章主要介紹了div水平布局兩邊對(duì)齊的三種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起
    2021-01-21
  • waterfall瀑布流布局+動(dòng)態(tài)渲染的實(shí)現(xiàn)

    這篇文章主要介紹了waterfall瀑布流布局+動(dòng)態(tài)渲染的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起
    2021-01-19
  • 頁面中有間隔的方格布局如何完美實(shí)現(xiàn)方法

    這篇文章主要介紹了頁面中有間隔的方格布局如何完美實(shí)現(xiàn)方法。文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來
    2020-11-27
  • css實(shí)現(xiàn)六種自適應(yīng)兩欄布局方式

    這篇文章主要介紹了css實(shí)現(xiàn)六種自適應(yīng)兩欄布局方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)
    2020-10-28

最新評(píng)論