關於HTML的標籤可以換一種方式理解嗎?

其實大部分標籤都是一樣的,只是瀏覽器默認給每種不同的標籤加上了不同的css和js屬性,比方說:

1.&

,就是給span標籤加了一個換行;

2.&,就是給span標籤加了一個css(font-weight);

3.&,就是給span標籤加上css(display:block);

4.&,就是把herf的值在js中用window.location.href表示;

......

綜上所述,是不是可以理解為,假定我自己定義一個標籤&,然後把我需要的屬性和方法賦給&,它就可以幫我代替所有的標籤,大家有不同的想法嗎?


  1. HTML 和樣式沒必然聯繫。

  2. 你的理解是部分正確的,HTML 可以看成是元素是某種特定語義的簡寫。比如 & 就被簡寫為了 & 並標準化了。區別只在於標準的語義可依賴。語義是一種共識。


如此的話你只需要div就可以完成所有頁面。但html的語義化是有意義的,你可以不語義化但不要隨意否定它。


不要問這種蠢問題。

p 就是段落,什麼 span 加換行。被你這麼一換,語義都沒了。


你的理解完全是不對的。

HTML是表示內容用的標記語言,各個標籤有其自己的語義,如&

表示一個段落、&表示一個鏈接。HTML與瀏覽器樣式、行為一概無關,也可以在瀏覽器以外的環境下使用。

編寫HTML文檔時,不應當考慮任何有關「這會在瀏覽器里如何顯示」的問題而選擇使用何種標籤,因為你總可以用CSS控制任何元素以任何你願意的方式顯示。

總之趁早糾正這種想法吧。


語義和樣式沒有必然聯繫。全用 & 寫頁面也是可行的,但這就要求我們自己去做其他標籤已經做過的工作。

我家門前有塊含鐵的石頭,為什麼不自己生產一輛汽車呢?造輪子的想法要適可而止。


是。

只要你覺得這樣最方便,而且機器人普遍接受你的語義化提案。

其實當初的div+css浪潮就是這樣。後來覺得好端端地浪費一層命名,讓代碼冗長又是何苦呢。說白了是當時的人們思維混亂,需要用某種矯枉過正的規範簡化和梳理問題。


div明顯要比span+display樣式要省流量。


應該可以。不過這樣的話 搜索引擎的爬蟲可能抓取不到你網站的內容,還有就是針對視覺障礙者的屏幕閱讀器不能很好的閱讀文檔。


表現形式上確實如此,但是最好不要這樣去理解,不一樣的標籤其語義也是不同的。

非要鑽牛角尖,你可以全部用span來布局,無非是加樣式來控制罷了。但是這樣做一來增加工作量,二來降低代碼可讀性。

在開發過程中,語義清晰的代碼,可以做到直接看代碼就能知道這段代碼對應的那段內容,如果都是span,即便你用class或id做標識,也很難一時間找到對應的模塊。

往本質上說,html代碼設計初衷是WWW的描述語言,目的是為了能把存放在一台電腦中的文本或圖形與另一台電腦中的文本或圖形方便地聯繫在一起,形成有機的整體,人們不用考慮具體信息是在當前電腦上還是在網路的其它電腦上(此段是複製的,哈哈)。然後瀏覽器可以把這些代碼呈現出來。具體這些代碼是什麼樣子是css做的事,與html代碼本身無關。


試了下題主的想法,替換了部分標籤,看到的是這樣的內容時

我再也不想碰這玩意了


?功能的應用層實現與底層實現問題。

?一個功能可以在底層實現,不同標籤在底層識別解析。

?也可以在應用層實現,相同標籤在應用層語法識別後再通過底層解析

?前者效率高,後者多了一層。前者可以看做底層擴展定義


當然是可以,就像div#header,div#footer就是h5之前模擬的header,footer等等,但是要知道你寫的是一個doucment,東西不只是自己看的,還有瀏覽器,爬蟲,其他人,其他程序。


以高級語言為例子吧,所有的對象都繼承自object,按照你的理解,你是想自己寫一個jdk。。。。


可以看下SEO優化,語義話重點是突出標註幹嘛的,否則只要一個DIV,display設置一下就OK了


沒必要,本來標籤就是一些英文開頭縮寫,意思也明確就是字面的意思,現在html5更是語義化。

常用的就那麼多,記住行級、塊級就行了,即使記不住css覆蓋寫一遍。

當然你也可以用createElement()、XML自己造標籤寫樣式,但是不方便,按標準來吼不吼啊。

我個人想法,用筆畫畫很牛,用電腦畫畫也可以很牛,用電腦就不如用筆的嗎。同樣也可以理解,默認標籤是方便了操作的,更大作用可以統一管理更好通用。甚至bootstrap、juqery更是方便了操作,即使他們都有局限性,但不是用他們就水平不行,要會利用發明,甚至理解原理改進發明,但絕對不要重複發明。


你編程的時候是不是這麼命名變數的:i1、i2、i3、i4、i5、i6


平時書寫用markdown,就能體會了


你可以這樣理解。而且這樣很大程度上會有助於你的理解和記憶,所以你完全可以通過這種方式來學習 HTML。

但請不要這麼做,不要把你的這種理解寫到代碼裡面。

這樣會給你自己造成麻煩。當以後你想修改你的傑作的時候,或者多年以後當你想觀摩或者重新開啟這塵封的代碼的時候,你就能感受到問題了,通篇的 &、style="",我就問你難受不?

給別人造成麻煩。特別是當你在一個團隊的時候… 下場我不多說…

HTML 的發展是趨向語義化的,特別是在 HTML5 中,元素的定義更加表義化,比如 & 換成了更易懂的 &,新增了很多語義化的元素,其中很多在現在主流的瀏覽器中都看不出任何區別的,比如&、& 之類的。

在這個大背景下,應該轉變自己的觀念。思考和理解一個語義化元素的作用機制沒錯,但我們不能因此去否定它,這樣得不償失。


每個標籤都有他的語義,而且單詞也都是對應的縮寫,你這麼理解實際上就缺失了語義……


可以深入理解一下xml,html,dom,bom,把它們理解透了你就知道是怎麼回事了


推薦閱讀:

V8引擎是如何為JS中的函數分配地址(或任意除了函數名外能夠標識函數的變數)的?
(2017)你最不建議使用的Python Web框架?
如何評價Github的新版黑色Header?
既然Tengine比Nginx更強大,為什麼沒有取代Nginx呢?
有哪些python+flask的搭建的博客或論壇開源推薦?

TAG:Web開發 | 前端開發 | HTML | CSS | JavaScript |