首頁  >  文章  >  web前端  >  暢談HTML+CSS+JS(詳細解說)

暢談HTML+CSS+JS(詳細解說)

亚连
亚连原創
2018-05-18 15:43:2611324瀏覽

以下是我自己總結的一些想法以及一些收穫,  由於個人學的淺,如果有說的不對或不準確的地方,還請大家批評指正。

前端開發三劍客HTML CSS JS之名是如雷貫耳,是前端入門的基礎之基礎,前端程式設計師們用這三個元件構成了數量眾多的網頁。然而在初學的時候,由於無法迅速了解全部知識點,所以在學習的時候往往會有盲人摸象的感覺——就是對於各個組件的功能和分工不甚了解,無法從整體上把握學習方向,因而較難構成完整的知識體系,這是比較頭痛的事。我這個人學習有個特點,我喜歡從底層知識學起,然後在這個基礎上一層層加上其他內容,最後構成一個完整的框架。這是我習慣的學習方式。

      開始的時候,我還是有點頭暈的,知識點一個接一個,互相之間也有交叉,前面與後面聯繫起來,後面又與前面聯繫起來,搞懂還是要費勁。但還是整個內容過完兩三次之後,整個框架就清晰多了。簡單來說,HTML CSS JS的分工體現了軟體分層的概念。大體的功能分配是:HTML負責描述內容,CSS負責描述元素的樣式,JS則負責實現網頁的動作。這樣說,其實還不夠清晰,新手是看不太懂的,我想我們可以從網頁的發展歷程來理解為什麼會有這三種劃分。

      早期的網頁是靜態網頁,網頁中的元素基本上都沒有動作,人們上網主要是瀏覽資訊,網頁的互動性要求也很低。我們可以看一下96年雅虎的網站(圖摘自網路),網頁上有圖片,超連結和搜尋框,大多都採用的預設樣式,這樣的網頁樣式與內容都混合在一起,如果要修改網頁的樣式,就需要挨個修改,這樣就會比較麻煩。那要怎麼解決這個問題呢?網頁開發的開拓者 將樣式從內容中抽離出來,將所有描述網頁樣式的語句合併成一個文件,這個文件叫層疊樣式表,簡稱CSS。如果我們要修改樣式的話就從這個檔案修改,透過一些選擇器,我們可以快速地更改某一個或某一類元素的樣式,從而提高效率。

       將樣式從網頁中抽離後,HTML語言只負責描述網頁內容,這是什麼意思呢?在HTML中,我們用元素標記頭部文件,用元素標記網頁名稱,用<body>元素標記網頁主體,用<table>元素標記表格等等,透過向這些元素中填寫內容,我們就寫出了一個個有特定樣式的節點,所有的這些HTML節點就構成了網頁內容。這些標記大多是有預設樣式的,如果我們對預設樣式不滿意,我們也可以在CSS檔案中修改。 </p> <p>       完成了內容與表示的分離後,我們要解釋網頁的動作了。靜態頁面有個問題是,網頁的內容在產生後就不會再改變了。而我們在瀏覽網頁的時候,需要進行交互,我們需要登陸微博來評論點贊轉發,我們需要在玩網頁遊戲的時候控制人物的動作,這部分功能都是由JavaScript(JS)承載的。 </p> <p>  JavaScript是一種輕量級的程式語言,它不像C/C /JAVA等對資料類型作出嚴格規定,也沒有指針,操作符重載等等內容。說起來這名字很有迷惑性,名字裡有Java,大家卻都說跟Java沒有關係,這著實讓人頭痛。這好比說拍部電影叫《我叫潘金蓮》,卻說自己跟潘金蓮沒有關係。 (笑)開個玩笑。不過相較起來,JavaScript與Java的語法有許多相似之處,但JavaScript相比Java簡單許多。 JS不像Java是平台型的語言,有各種各樣的元件、框架,JS是與web緊密連結起來的。 JS透過插入到HTML中執行的,透過JavaScript我們可以實現寫入HTML輸出,對事件作出反應 ,改變HTML內容、圖像、樣式,驗證輸入等功能。基本上網頁上所有的互動都是透過JS函數實現的。這部分也是三劍客中最難的部分,我現在掌握得也是馬馬虎虎。後面的文章會針對具體的知識點再展開說。 </p> <p>       JS檔案和CSS檔案最終是要套用在HTML中的。在HTML中,我們可以透過<script>元素來插入JS程式碼,<script>元素可以放在<head>或<body>中。或在外部編寫JS文件,在HTML中引用。而CSS程式碼則稍有區別,我們可以透過<style>元素插入CSS程式碼,<style>元素必須放在<head>元素中。或在外部編寫CSS文件,在HTML中引用。也可以直接在某元素中規定CSS樣式,這種叫內聯樣式。 </p> <p>       透過最後這部分內容,我們可以試著總結這三個部分的關係了。 HTML好比是房子的地基,CSS和JS是,這三個部分一起組成漂亮的房子。我們不能把他們分開說,某某部分是個房子,只有三個一起才能組成一個漂亮的房子。 </p> <p>上面是我整理給大家的,希望今後對大家有幫助。 </p> <p>相關文章:</p> <p><a href="http://www.php.cn/js-tutorial-391103.html" target="_blank">p5.js 畢達哥拉斯樹的實作碼_javascript技巧</a><br></p> <p><a href="http://www.php.cn/js-tutorial-391064.html" target="_blank">基於js中的儲存鍵值對以及注意事項介紹_javascript技巧</a><br></p> <p><a href="http://www.php.cn/js-tutorial-391076.html" target="_blank">javascript深入理解js閉包</a><br></p><p>以上是暢談HTML+CSS+JS(詳細解說)的詳細內容。更多資訊請關注PHP中文網其他相關文章!</p></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>陳述:</span><div>本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn</div></div></div><div class="nphpSytBox"><span>上一篇:<a class="dBlack" title="關於如何優化你的JS程式碼(圖文教學)" href="https://m.php.cn/zh-tw/faq/396812.html">關於如何優化你的JS程式碼(圖文教學)</a></span><span>下一篇:<a class="dBlack" title="關於如何優化你的JS程式碼(圖文教學)" href="https://m.php.cn/zh-tw/faq/396816.html">關於如何優化你的JS程式碼(圖文教學)</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>相關文章</h2><em><a href="https://m.php.cn/zh-tw/article.html" class="bBlack"><i>看更多</i><b></b></a></em><div class="clear"></div></div><ul class="nphpXgwzList"><li><b></b><a href="https://m.php.cn/zh-tw/faq/1609.html" title="深入淺析Bootstrap列表組元件" class="aBlack">深入淺析Bootstrap列表組元件</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/zh-tw/faq/1640.html" title="JavaScript函數柯里化詳解" class="aBlack">JavaScript函數柯里化詳解</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/zh-tw/faq/1949.html" title="JS密碼產生與強度偵測完整實例(附demo源碼下載)" class="aBlack">JS密碼產生與強度偵測完整實例(附demo源碼下載)</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/zh-tw/faq/2248.html" title="Angularjs整合微信UI(weui)" class="aBlack">Angularjs整合微信UI(weui)</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/zh-tw/faq/2351.html" title="JavaScript快速切換繁體中文和簡體中文的方法及網站支援簡繁體切換的絕招_javascript技巧" class="aBlack">JavaScript快速切換繁體中文和簡體中文的方法及網站支援簡繁體切換的絕招_javascript技巧</a><div class="clear"></div></li></ul></div></div><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>公益線上PHP培訓,幫助PHP學習者快速成長!</p></div><div class="footermid"><a href="https://m.php.cn/zh-tw/about/us.html">關於我們</a><a href="https://m.php.cn/zh-tw/about/disclaimer.html">免責聲明</a><a href="https://m.php.cn/zh-tw/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>