『壹』 20個真實的web開發項目集合,一起來看看!(一)
項目一:PC端網站布局
所含知識點:HTML基礎,CSS基礎,CSS核心屬性,CSS樣式層疊,繼承,盒模型,容器,溢出及元素類型,瀏覽器兼容與寬高自適度,定位,錨點與透明,圖片整合,表格,CSS屬性與濾鏡。
項目二:HTML5+CSS3基礎項目
所含知識點:HTML5新增的元素與屬性,表單域增強元素,CSS3選擇器,文字字體相關樣式,CSS3位移與變形處理,CSS3 2D轉換與過度動畫,CSS3 3D轉換與關鍵幀動畫,彈性盒模型,媒體查詢,響應式設計。
項目三:WebApp頁面布局項目
所含知識點:移動端頁面設計規范,移動端切圖,文字流式/控制項彈性/圖片等比例/特殊設計的100%布局,等比縮放布局,viewport/meta,rem/vw的使用,flexbox詳解,移動web特別樣式處理(reset, 1px border, 高清圖片)。
項目四:原生Java交互功能開發項目
所含知識點:基本語法,循環語句,函數與數組,String與Date,BOM與DOM,事件,拖拽效果,cookie存儲,正則表達式,Ajax,面向對象基礎,運動與游戲開發。
項目五:面向對象進階與ES5/ES6應用項目
所含知識點:Promise/A+,設計模式(觀察者模式等),原型鏈,構造函數,執行上下文棧與執行上下文,變數對象與活動對象,作用域鏈,閉包,this,ES5,ES6。
以上就是環球青藤小編關於20個真實的web開發項目集合的相關內容分享,希望對各位小夥伴們有所幫助,想要了解更多相關知識,請關注本平台哦!
『貳』 Web前端開發規范之css規范
今天小編要跟大家分享的文章是關於Web前端開發規范之css規范。Web前端作為開發團隊中不可或缺的一部分,需要按照相關規定進行合理編寫(一部分不良習慣可能給自己和他人造成不必要的麻煩)。不同公司不同團隊具有不同的規范和文檔。下面是根據不同企業和團隊的要求進行全面詳細的整理結果。來和小編一起看一看css規范的原則吧!
css規范
1、編碼規范為utf-8。
2、協作開發及分工:i會根據各個模塊,同時根據頁面相似程序,事先寫**體框架文件,分配給前端人員實現內部結構&表現&行為。共用css文件base.css由i書寫,協作開發過程中,嘩漏每個頁面請務必都要引入,此文件包含reset及頭部底部樣式,此文件不可隨意修改。
3、class與id的使用:id是唯一的並是父級的,class是可以重復渣瞎的並是子級的,所以id僅使用在大的模塊上如蘆空,class可用在重復使用率高及子級中。id原則上都是由我分發框架文件時命名的,為JS預留鉤子的除外。
4、為JS預留鉤子的命名,請以js_起始,比如:js_hide,js_show。
5、class與id命名:大的框架命名比如header/footer/wrapper/left/right之類的在2中由i統一命名.其他樣式名稱由小寫英文&數字&來組合命名,如i_comment,fontred,width200。避免使用中文拼音,盡量使用簡易的單片語合。總之,命名要語義化,簡明化
6、規避class與id命名(此條重要,若有不明白請及時與i溝通):a)通過從屬寫法規避,示例見d。b)取父級元素id/class命名部分命名,示例見d。c)重復使用率高的命名,請以自己代號加下劃線起始,比如i_clear。d)a,b兩條,適用於在2中已建好框架的頁面,如,要在2中已建好框架的頁面代碼中加入新的div元素,按a命名法則:...,樣式寫法:#mainnav.firstnav{.......}按b命名法則:...,樣式寫法:.main_firstnav{.......}
7、css屬性書寫順序,建議遵循:布局定位屬性-->自身屬性-->文本屬性-->其他屬性.此條可根據自身習慣書寫,但盡量保證同類屬性寫在一起.屬性列舉:布局定位屬性主要包括:display&list-style&position(相應的top,right,bottom,left)&float&clear&visibility&overflow;
自身屬性主要包括:width&height&margin&padding&border&background。
文本屬性主要包括:color&font&text-decoration&text-align&vertical-align&white-space&
其他&content。
8、書寫代碼前,提高樣式重復使用率。
以上就是小編今天為大家分享的關於Web前端開發規范之css規范的文章,希望本篇文章能夠對正在從事Web前端工作的小夥伴們有所幫助,想要了解更多Web前端知識記得關注北大青鳥Web培訓官網,最後祝願小夥伴們工作順利,成為一名優秀的Web前端工程師。
『叄』 pc端web、移動端web的字體大小、顏色、字體樣式使用
首先了解下px,em,rem的區別
px(像素)是絕對單位,頁面按精確像素展示,使頁面較穩定和相對固定一些。但這種方法存在一個問題,用戶在瀏覽我們製作的web頁面時,如果他改變了瀏覽器的字體大小,或是縮放、放大頁面,這時會使頁面布局被打亂。
em是相對單位,基準點為父節點字體的大小。上面說到使用px為單位的web頁面會遇到的問題可以使用em來解決。
例如con2的父元素為con1,css中<strong>con1</strong>和<strong>con2</strong>的font-size都設置為2em;
可以看得出con1和con2的font-size樣式都是2em,但是展現出來的字體大小不一樣,因為默認情況下沒有對字體進行重新設置的話,瀏覽器默認字體為16px,con1的2em就相當於32px,那麼con2的2em就相當於con1的兩倍也就是64px,所以con2字體比con1的大。
rem是相對於頁面根元素的大小單位,我們只需給頁面的根元素設置一個參考值,就可以在頁面中根據參考值設置其他元素的大小,rem不會出現嵌套的繁瑣。
設置html下1rem=10px
可以看得出1rem就是12px(瀏覽器下最小的字體為12px,當設置小於12px的字體,也默認為12px)
無論元素處於哪一層,都不會受到父元素的影響。
『肆』 vs2012web項目寫的樣式和瀏覽器看到的效果不一致
瀏覽器實際上還是看內核,內核不同,網頁看起來可能有姿改銷不同,你要做兼容,或者省事殲衡的話固定就用一個瀏覽器不做其他瀏覽跡游器的兼容
『伍』 ps中web樣式在哪裡
首先在桌面上雙擊ps的快捷圖標,然後將ps軟體打開。
2、打開ps之後按下Ctrl+N鍵新建一個文件,然後在工具箱內找到文字工具。
3、點擊文字工具在上面的菜單區里設置文字的字體和大小。
4、設置好之後在新建的文件內輸入文字,然後在菜單里找到窗口選項,點擊窗口選項在其子級菜單里找到樣式選項。
5、點擊樣式選項在樣式面板里找到設置下拉箭頭在其下拉菜單那裡找到web樣式選項。
6、點擊web選項在彈出的對話框內我們找到追加選項。
7、點擊追加選項在樣式面板里找到相應的的web樣式選項。
8、點擊選擇的web樣式選項,可以看到文字樣式就製作好了。
『陸』 web怎麼導入css樣式和圖片
請用絕對路徑,
此處使用的相對路徑,實際訪問的為根目錄的上級目錄中的css及img文件夾內容
『柒』 web分割線怎麼加樣式
您可以在 CSS 中為分割線元素添加樣式。例如,您可以使用 border-bottom 來創建下方邊框效果作為敗返分割線。另外,您也可以在樣式中自定義顏色、寬度以及衫虧樣察塌飢式等方面的屬性,實現不同的視覺效果。
『捌』 ps2022wed樣式在哪裡
從預設管理器里設置,看有沒有web樣式,塵蔽燃有就追加,沒有就是版本不夠不支持。
但是破解版軟體這個可能用不了,直接跳到存儲圖片界面,等於SHIFT+CTRL+S,沒有什麼用。
如果你的ps確派虛實沒有「存為web格式」的相關選項,那就是軟體的問題,下一個新的較高版本並譽的ps軟體。
『玖』 web2.0的工作原理
最近互聯網上比較火熱的話題當然是關於WEB2.0的應用,其中AJAX又是WEB2.0的核心之一。AJAX是Asynchronous JavaScript and XML 的縮寫。它並不是一門新的語言或技術,它實際上是幾項技術按一定的方式組合在一在同共的協作中發揮各自的作用,它包括
使用XHTML和CSS標准化呈現;
使用DOM實現動態顯示和交互;
使用XML和XSLT進行數據交換與處理;
使用XMLHttpRequest進行非同步數據讀取;
最後用JavaScript綁定和處理所有數據;
Ajax的工作原理相當於在用戶和伺服器之間加了—個中間層,使用戶操作與服務桐正舉器響應非同步化。這樣把以前的一些伺服器負擔的工作轉嫁到客戶端,利於客戶端閑置的處理能力來處理,減輕伺服器和帶寬的負擔,從而達到節約ISP的空間及帶寬租用成本的目的。
我們以兩個驗證通行證帳號是否存在的例子來講述AJAX在實際中的應用:
(1) 用文本字元串的方式返回伺服器的響應來驗證網易通行證帳號是否存在;
(2) 以XMLDocument對象方式返回響應來驗證清枝金山通行證帳號是否存在;
首先,我們需要用JavaScript來創建XMLHttpRequest 類向伺服器發送一個HTTP請求, XMLHttpRequest 類首先由Internet Explorer以ActiveX對象引入,被稱為XMLHTTP。 後來Mozilla、Netscape、Safari 和其他瀏覽器局碧也提供了XMLHttpRequest類,不過它們創建XMLHttpRequest類的方法不同。
對於Internet Explorer瀏覽器,創建XMLHttpRequest 方法如下:
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
由於在不同Internet Explorer瀏覽器中XMLHTTP版本可能不一致,為了更好的兼容不同版本的Internet Explorer瀏覽器,因此我們需要根據不同版本的Internet Explorer瀏覽器來創建XMLHttpRequest類,上面代碼就是根據不同的Internet Explorer瀏覽器創建XMLHttpRequest類的方法。
對於Mozilla、Netscape、Safari等瀏覽器,創建XMLHttpRequest 方法如下:
xmlhttp_request = new XMLHttpRequest();
如果伺服器的響應沒有XML mime-type header,某些Mozilla瀏覽器可能無法正常工作。 為了解決這個問題,如果伺服器響應的header不是text/xml,可以調用其它方法修改該header。
xmlhttp_request = new XMLHttpRequest();
xmlhttp_request.overrideMimeType('text/xml');
在實際應用中,為了兼容多種不同版本的瀏覽器,一般將創建XMLHttpRequest類的方法寫成如下形式:
try{
if( window.ActiveXObject ){
for( var i = 5; i; i-- ){
try{
if( i == 2 ){
xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );
}else{
xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
}
xmlhttp_request.setRequestHeader("Content-Type","text/xml");
xmlhttp_request.setRequestHeader("Content-Type","gb2312");
break;}
catch(e){
xmlhttp_request = false;
}
}
}else if( window.XMLHttpRequest ){
xmlhttp_request = new XMLHttpRequest();
if (xmlhttp_request.overrideMimeType) {
xmlhttp_request.overrideMimeType('text/xml');
}
}
}catch(e){
xmlhttp_request = false;
}
在定義了如何處理響應後,就要發送請求了。可以調用HTTP請求類的open()和send()方法,如下所示:
xmlhttp_request.open('GET', URL, true);
xmlhttp_request.send(null);
open()的第一個參數是HTTP請求方式—GET,POST或任何伺服器所支持的您想調用的方式。 按照HTTP規范,該參數要大寫;否則,某些瀏覽器(如Firefox)可能無法處理請求。
第二個參數是請求頁面的URL。
第三個參數設置請求是否為非同步模式。如果是TRUE,JavaScript函數將繼續執行,而不等待伺服器響應。這就是"AJAX"中的"A"。
用JavaScript來創建XMLHttpRequest 類向伺服器發送一個HTTP請求後,接下來要決定當收到伺服器的響應後,需要做什麼。這需要告訴HTTP請求對象用哪一個JavaScript函數處理這個響應。可以將對象的onreadystatechange屬性設置為要使用的JavaScript的函數名,如下所示:
xmlhttp_request.onreadystatechange =FunctionName;
FunctionName是用JavaScript創建的函數名,注意不要寫成FunctionName(),當然我們也可以直接將JavaScript代碼創建在onreadystatechange之後,例如:
xmlhttp_request.onreadystatechange = function(){
// JavaScript代碼段
};
在這個函數中。首先要檢查請求的狀態。只有當一個完整的伺服器響應已經收到了,函數才可以處理該響應。XMLHttpRequest 提供了readyState屬性來對伺服器響應進行判斷。
readyState的取值如下:
0 (未初始化)
1 (正在裝載)
2 (裝載完畢)
3 (交互中)
4 (完成)
所以只有當readyState=4時,一個完整的伺服器響應已經收到了,函數才可以處理該響應。具體代碼如下:
if (http_request.readyState == 4) {
// 收到完整的伺服器響應
} else {
// 沒有收到完整的伺服器響應
}
當readyState=4時,一個完整的伺服器響應已經收到了,接著,函數會檢查HTTP伺服器響應的狀態值。完整的狀態取值可參見W3C文檔。當HTTP伺服器響應的值為200時,表示狀態正常。
在檢查完請求的狀態值和響應的HTTP狀態值後,就可以處理從伺服器得到的數據了。有兩種方式可以得到這些數據:
(1) 以文本字元串的方式返回伺服器的響應
(2) 以XMLDocument對象方式返回響應
實例一: 用文本字元串的方式返回伺服器的響應來驗證網易通行證帳號是否存在
首先,我們登陸網易通行證注冊頁面,可以看到檢測用戶名是否存在是將用戶名提交給checkssn.jsp頁面進行判斷,格式為:
reg.163.com/register/checkssn.jsp?username=用戶名
根據上面講到的方法,我們可以利用AJAX技術對網易通行證用戶名進行檢測:
第一步:新建一個基於Xhtml標準的網頁,在<head>區域插入Javascript函數如下:
<script type="text/javascript" language="javascript">
function getXMLRequester( ){
var xmlhttp_request = false;
try{
if( window.ActiveXObject ){
for( var i = 5; i; i-- ){
try{
if( i == 2 ){
xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );
}else{
xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
xmlhttp_request.setRequestHeader("Content-Type","text/xml");
xmlhttp_request.setRequestHeader("Content-Type","gb2312");
}
break;}
catch(e){
xmlhttp_request = false;
}
}
}else if( window.XMLHttpRequest ){
xmlhttp_request = new XMLHttpRequest();
if (xmlhttp_request.overrideMimeType) {
xmlhttp_request.overrideMimeType('text/xml');
}
}
}catch(e){
xmlhttp_request = false;
}
return xmlhttp_request ;
}
function IDRequest(n) {//定義收到伺服器的響應後需要執行的JavaScript函數
url=n+document.getElementById('163id').value;//定義網址參數
xmlhttp_request=getXMLRequester();//調用創建XMLHttpRequest的函數
xmlhttp_request.onreadystatechange = doContents;//調用doContents函數
xmlhttp_request.open('GET', url, true);
xmlhttp_request.send(null);
}
function doContents() {
if (xmlhttp_request.readyState == 4) {// 收到完整的伺服器響應
if (xmlhttp_request.status == 200) {//HTTP伺服器響應的值OK
document.getElementById('message').innerHTML = xmlhttp_request.responseText;
//將伺服器返回的字元串寫到頁面中ID為message的區域
} else {
alert(http_request.status);
}
}
}
</script>
在<body>區域建立一個文本框,id為163id
<input type="text" id="163id" onpropertychange="IDRequest('http://reg.163.com/register/checkssn.jsp?username=')" />
再建一個id為messsge的空白區域用來顯示返回字元串(也可以通過Javascript函數截取一部分字元串顯示):
<div id="message"></div>
這樣,一個基於AJAX技術的用戶名檢測頁面就做好了,不過這個頁面將返回伺服器響應生成頁面的所有字元串,當然還可以對返回的字元串進行一些操作,便於應用到不同的需要當中。
實例二: 以XMLDocument對象方式返回響應來驗證金山通行證帳號是否存在
在上面的例子中,當伺服器對HTTP請求的響應被收到後,我們會調用請求對象的reponseText屬性。該屬性包含了伺服器返回響應文件的內容。現在我們以XMLDocument對象方式返回響應,此時將不再需要reponseText屬性而使用responseXML屬性。
首先登陸金山通行證注冊頁面,我們發現金山通行證用戶名的檢測方式為:
pass.kingsoft.com/ksgweb/jsp/login/uid.jsp?uid=用戶名,並且返回XML數據:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<response>
<method>isExistedUid</method>
<result>-2</result>
</response>
當result值為-1時表示此用戶名已被注冊,當result值為-2時表示此用戶名尚未注冊,因此通過對result值的判斷可以知道用戶名是否被注冊。
對上例代碼進行修改:
首先找到
document.getElementById('message').innerHTML = xmlhttp_request.responseText;
改為:
var response = xmlhttp_request.responseXML.documentElement;
var result = response.getElementsByTagName('result')[0].firstChild.data;//返回result節點數據
if(result ==-2){
document.getElementById('message').innerHTML = "用戶名"+document.getElementById('163id').value+"尚未注冊";
}
else if(result ==-1){
document.getElementById('message').innerHTML = "對不起,用戶名"+document.getElementById('163id').value+"已經注冊";
}
通過以上兩個實例說明了AJAX的客戶端基礎應用,採用的是網易和金山現成的伺服器端程序,當然為了開發合適自己頁面的程序,還需要對自己編寫伺服器端程序,這設計到程序語言及資料庫的操作,對於有一定程序基礎的讀者一定不是很難的事情,本文著重討論了客戶端AJAX的應用體驗,廣大讀者可以根據本文講的原理結合各種樣式表現手法作出絢麗多彩的應用,希望本文能夠起到拋磚引玉的作用。
附錄
(一) HTTP 1.1支持的狀態代碼
100 Continue 初始的請求已經接受,客戶應當繼續發送請求的其餘部分
101 Switching Protocols 伺服器將遵從客戶的請求轉換到另外一種協議
200 OK 一切正常,對GET和POST請求的應答文檔跟在後面。
201 Created 伺服器已經創建了文檔,Location頭給出了它的URL。
202 Accepted 已經接受請求,但處理尚未完成。
203 Non-Authoritative Information 文檔已經正常地返回,但一些應答頭可能不正確,因為使用的是文檔的拷貝
204 No Content 沒有新文檔,瀏覽器應該繼續顯示原來的文檔。如果用戶定期地刷新頁面,而Servlet可以確定用戶文檔足夠新,這個狀態代碼是很有用的
205 Reset Content 沒有新的內容,但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容
206 Partial Content 客戶發送了一個帶有Range頭的GET請求,伺服器完成了它
300 Multiple Choices 客戶請求的文檔可以在多個位置找到,這些位置已經在返回的文檔內列出。如果伺服器要提出優先選擇,則應該在Location應答頭指明。
301 Moved Permanently 客戶請求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應該自動地訪問新的URL。
302 Found 類似於301,但新的URL應該被視為臨時性的替代,而不是永久性的。
303 See Other 類似於301/302,不同之處在於,如果原來的請求是POST,Location頭指定的重定向目標文檔應該通過GET提取
304 Not Modified 客戶端有緩沖的文檔並發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。伺服器告訴客戶,原來緩沖的文檔還可以繼續使用。
305 Use Proxy 客戶請求的文檔應該通過Location頭所指明的代理伺服器提取
307 Temporary Redirect 和302(Found)相同。許多瀏覽器會錯誤地響應302應答進行重定向,即使原來的請求是POST,即使它實際上只能在POST請求的應答是303時才能重定向。由於這個原因,HTTP 1.1新增了307,以便更加清除地區分幾個狀態代碼:當出現303應答時,瀏覽器可以跟隨重定向的GET和POST請求;如果是307應答,則瀏覽器只能跟隨對GET請求的重定向。
400 Bad Request 請求出現語法錯誤。
401 Unauthorized 客戶試圖未經授權訪問受密碼保護的頁面。應答中會包含一個WWW-Authenticate頭,瀏覽器據此顯示用戶名字/密碼對話框,然後在填寫合適的Authorization頭後再次發出請求。
403 Forbidden 資源不可用。
404 Not Found 無法找到指定位置的資源
405 Method Not Allowed 請求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)對指定的資源不適用。
406 Not Acceptable 指定的資源已經找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容
407 Proxy Authentication Required 類似於401,表示客戶必須先經過代理伺服器的授權。
408 Request Timeout 在伺服器許可的等待時間內,客戶一直沒有發出任何請求。客戶可以在以後重復同一請求。
409 Conflict 通常和PUT請求有關。由於請求和資源的當前狀態相沖突,因此請求不能成功。
410 Gone 所請求的文檔已經不再可用,而且伺服器不知道應該重定向到哪一個地址。它和404的不同在於,返回407表示文檔永久地離開了指定的位置,而404表示由於未知的原因文檔不可用。
411 Length Required 伺服器不能處理請求,除非客戶發送一個Content-Length頭。
412 Precondition Failed 請求頭中指定的一些前提條件失敗
413 Request Entity Too Large 目標文檔的大小超過伺服器當前願意處理的大小。如果伺服器認為自己能夠稍後再處理該請求,則應該提供一個Retry-After頭
414 Request URI Too Long URI太長
416 Requested Range Not Satisfiable 伺服器不能滿足客戶在請求中指定的Range頭
500 Internal Server Error 伺服器遇到了意料不到的情況,不能完成客戶的請求
501 Not Implemented 伺服器不支持實現請求所需要的功能。例如,客戶發出了一個伺服器不支持的PUT請求
502 Bad Gateway 伺服器作為網關或者代理時,為了完成請求訪問下一個伺服器,但該伺服器返回了非法的應答
503 Service Unavailable 伺服器由於維護或者負載過重未能應答。例如,Servlet可能在資料庫連接池已滿的情況下返回503。伺服器返回503時可以提供一個Retry-After頭
504 Gateway Timeout 由作為代理或網關的伺服器使用,表示不能及時地從遠程伺服器獲得應答
505 HTTP Version Not Supported 伺服器不支持請求中所指明的HTTP版本
(二) XMLHttpRequest 對象方法
abort() 停止當前請求
getAllResponseHeaders() 作為字元串返問完整的headers
getResponseHeader("headerLabel") 作為字元串返問單個的header標簽
open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 設置未決的請求的目標 URL, 方法, 和其他參數
send(content) 發送請求
setRequestHeader("label", "value") 設置header並和請求一起發送
(三) XMLHttpRequest 對象屬性
onreadystatechange 狀態改變的事件觸發器
readyState 對象狀態(integer):
0 = 未初始化
1 = 讀取中
2 = 已讀取
3 = 交互中
4 = 完成
responseText 伺服器進程返回數據的文本版本
responseXML 伺服器進程返回數據的兼容DOM的XML文檔對象
status 伺服器返回的狀態碼, 如:404 = "文件末找到" 、200 ="成功"
statusText 伺服器返回的狀態文本信息
『拾』 Web文擋的三種基本格式
xml,html,sgml
SGML(Standard Generalized Markup Language),即標准通用標記語言,是1986年出版發布的一個信息管理方面的國際標准(ISO 8879)。該標準定義獨立於平台和應用的文本文檔的格式、索引和鏈接信息,為用戶提供一種類似於語法的機制,用來定義文檔的結構和指示文檔結構的標簽。其中Markup的含義是指插入到文檔中的標記。標記分為兩種:一種稱為procedard markup,用來描述文檔顯示的樣式;另一種稱為descriptive markup,用來描述文檔中的文字的用途。制定SGML的基本思想是把文檔的內容與樣式分開。
SGML規定了在文檔中嵌入描述標記的標准格式,指定了描述文檔結構的標准方法,目前在WEB上使用的HTML格式便是使用固定標簽集的一種SGML文檔。用於SGML可以支持無數的文檔結構類型,並且可以創建與特定的軟硬體無關的文檔,因此很容易與使用不同計算機系統的用戶交換文檔。
使用SGML對多媒體的創作將帶來許多好處。首先,由於其規范性,它可以使創作人員更集中於內容的創作,可提高作品的重復使用性能、可移植性能以及共享性能。其次,由於SGML的獨立性,使得它在許多場合都有用武之地。同XML相比,定義的功能很強大,缺點是它不適用於Web數據描述,而且SGML軟體價格非常價格昂貴。
HTML相信大家都比較熟悉,即「HyperText Markup Language」 (超文本標識語言),它的優點是比較適合web 頁面的開發。但它有一個缺點是標記相對少,只有固定的標記集如<p>.<strong>等。缺少sgml 的柔性和適應性。不能支持特定領域的標記語言,如對數學、化學、音樂等領域的表示支持較少。
所謂的xml,就是eXtensible Markup Language, 翻譯成中文就是「可擴展標識語言「,在國內很多人理解xml為html的簡單擴展,這實際上是一種誤解。盡管xml同html關系非常密切。 它由萬維網協會(W3C)創建,用來克服 HTML(即超文本標記語言(Hypertext Markup Language),它是所有網頁的基礎)的局限。和 HTML 一樣,XML 基於 SGML ― 標准通用標記語言(Standard Generalized Markup Language)。盡管 SGML 已在出版業使用了數十年,但其理解方面的復雜性使許多本打算使用它的人望而卻步(SGML 也代表「聽起來很棒,但或許以後會用(Sounds great, maybe later)」)。XML 是為 Web 設計的。
XML實際上是Web上表示結構化信息的一種標准文本格式,它沒有復雜的語法和包羅萬象的數據定義。XML同HTML一樣,都來自SGML(標准通用標記語言)。SGML是一種在Web發明之前就早已存在的用標記來描述文檔資料的通用語言。但SGML十分龐大且難於學習和使用。鑒於此,人們提出了HTML語言。但近年來,隨著Web應用的不斷深入,HTML在需求廣泛的應用中已顯得捉襟見肘,有人建議直接使用SGML作為Web語言。但SGML太龐大了,學用兩難尚且不說,就是全面實現SGML的瀏覽器也非常困難。於是Web標准化組織W3C建議使用一種精簡的SGML版本——XML。XML與SGML一樣,是一個用來定義其他語言的元語言。與SGML相比,XML規范不到SGML規范的1/10,簡單易懂,是一門既無標簽集也無語法的新一代標記語言。