從語義化的角度,<li> 標籤中的內容應該使用 <p> 標籤嗎?

& & Hi I am an item. & & And I am another one. & &

& && Hi I am an item. && && And I am another one. && &

對比,哪個是更好的選擇?


都可以。

以前我也糾結什麼元素應該放什麼元素裡面,直到《精通 CSS 與 HTML 設計模式》的作者提出了三個名詞,把塊級元素劃分成三類:結構化塊狀元素、終端塊狀元素、多目標塊狀元素。

& 屬於結構化塊狀元素和多目標塊狀元素,它讓文檔形成結構,也是多目的的,即能包含內容也能包含其他塊級元素。

&

屬於終端塊狀元素,它下面不能再出現其他塊級元素,只能包含內容。

不被推薦的是這種寫法:

&text&text&&

這裡有此書的預覽,見第二章:精通 CSS 與 HTML 設計模式


從題主給的例子來看,兩者從語義上是等價的。

4.4 Grouping content

3 Semantics, structure, and APIs of HTML documents

一句或多句話組成段落,不會因為有沒有 &

而改變本身的語義,所以有時候 &

是多餘的。


如無必要,勿增實體


如果你的 li 裡面只有一個 p,顯然就是多此一舉啊。

個人感覺實際項目中強求語義化和通過標準測試的強迫症是病,得治。


若你用了p,為何又要用li?

若你用了li,為何又要用p?

你的內容到底是列表還是段落分不清嗎?…


具體情況具體分析吧,如果只是樓主這種情況P標籤應該是多餘的,但是如果用li進行布局的話,裡面是可以用p標籤的,比如下面這個布局應該是正常的:

& & &
&Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et, facilis, voluptates, architecto quidem aut quam quos quia perferendis dolorum recusandae nemo consectetur atque officiis dolor asperiores aperiam officia tempora ad!& &
& &
&Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et, facilis, voluptates, architecto quidem aut quam quos quia perferendis dolorum recusandae nemo consectetur atque officiis dolor asperiores aperiam officia tempora ad!& &
& &
&Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et, facilis, voluptates, architecto quidem aut quam quos quia perferendis dolorum recusandae nemo consectetur atque officiis dolor asperiores aperiam officia tempora ad!& &
& &
&Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et, facilis, voluptates, architecto quidem aut quam quos quia perferendis dolorum recusandae nemo consectetur atque officiis dolor asperiores aperiam officia tempora ad!& &

&

li裡面還可以放div,為什麼放P標籤就有影響語義化呢?但是P標籤裡面記得好像是不能放li的。


li 列表也! p段落也!


首先p代表的是一個段落,縱觀整個li,是否有其他內容需要與這句話"斷",要是沒有的話,那你要段就必然顯得多此一舉,就好比多講了一句廢話,廢話當然是木意義的。


這兩種里加不加p標籤效果都一樣呀


兩者表現都一樣,所以不需要用p標籤。

在實現了功能的前提下,能少寫代碼就少寫,越精簡越好。

ps想到一句話,多讀一點書,少寫一行代碼。


推薦閱讀:

JS 基礎尚可,要深入學習,哪裡有練手的小項目?希望可以具體點,例如[名稱:小聊天室 功能有:聊天、查看…]
專註前端還是全棧?
當前主流HTML5的網頁是否依然是以DIV + CSS為基礎開發的?
像「class="btn btn-large btn-block btn-primary"」這樣的 CSS 使用風格好嗎?
前端開發中如何做到頁面安全,防止 xss ,csrf 這樣的欺騙及偽造?

TAG:前端開發 | HTML5 |