行內元素不能容納塊元素?如何理解?

時間 2021-05-08 13:03:25

1樓:pagemarks

理解了塊級元素和行內元素就理解了這個問題:

塊級元素包含了行內元素, 塊級和行內元素都可按照規範正常解析

行內包含了塊級元素,是塊級元素按行內元素展示? 還是行內元素按塊級元素展示?

2樓:陳小峰

這裡有乙個標準發展的過程。

在html5之前,元素被簡單二分為block和inline。

block構成乙個塊狀內容(一行也是一塊),inline構成一行內容裡的一部分。

文件結構上,block佔據新行並擴充套件到完整的寬度,而inline不開始新行且只佔據自身足夠的寬度。

那麼從語義(以及語法檢查)上來講,很自然的是block可以包含block和inline,而inline不能包含block。

不過html5帶來了變化,上述二分分類被一組更複雜的內容類別所取代:

其中phrasing content(短句內容)大致對應於inline元素,而flow content(流內容)包含了舊版定義中的block和inline元素。

所以對於html5而言,儘管明白過往block和inline的區別仍然有意義,但原先的說法並不嚴謹了。

用目前的分類來講,從語義表達和語法檢查上,短句內容應該只包含短句型別的標籤和純文字,而不能包含其他標籤,比如下面的表達是非法的:

title

sub-title

注意,這是一種鬆散的規則,實際上瀏覽器並不會對此做嚴格檢查和限制。

title

因為a標籤現在是transparent(透明)內容模型。

這在實踐上通常用於整行或整塊內容作為鏈結。

3樓:道可道非常道

因為塊元素的大小,一般瀏覽器會取最大可用寬度,當然可以自己設定。而行內元素,其高寬都是由內容決定的,矛盾。

事實上,塊元素形成塊級上下文(BFC),塊級上下文中要麼全是塊,要麼全是行內。行內元素形成內聯上下文(IFC),IFC中只能全是行內元素。

當然如果遇到了其他情況,也不會出錯,瀏覽器會做一些處理。比如BFC中,同時出現了行內元素和塊,會把行內元素包裝成塊,常見的就是匿名文字框。IFC中出現了塊元素,則會在外圍的內聯元素周圍生成乙個塊框

HTML 哪些元素不能有後代元素?編寫時應注意哪些?

小爝 除了void element之外,你還問了哪些標籤是必須按照順序的,我舉例幾個 html head body table thead tbody tr td tfootul li dl dt dd 等等。 鄧毅 你說的這個叫做 void element HTML5 裡面的 void eleme...

如何計算排列方法數,其中相同元素不能相鄰?

王贇 Maigo 的動態規劃解法是正解,不過直接看程式不容易看懂,我來用人話解釋一遍。首先澄清一點題意 從題主的描述來看,相同的數交換位置算同一種擺法。不過從的程式來看,題目是以撲克牌為背景的,點數相同的牌還有花色的區別。我就按後一種題意來講了。先來設計一種樸素的狀態 用表示還剩下張1 張2 張n需...

為什麼化合物中的元素不能為0價呢

李傑 價態真的只是乙個方便理解和計算的理論,實際上可以在化合物中人為規定。價態是根據電子和穩定狀態提出的,說乙個簡單的,Fe3O4,我們計算的是平均價態去配平可以,我們認為是Fe2O3.FeO也可以,還有硫代硫酸鈉也是這樣,所以可以為0價態,只要整體也為0就行。 其實化合價在化合物中有時候可以是0價...