2012-06-10 90 views
5

我是一名(理論)計算機科學專業的學生,​​因此對編程語言語義的研究是我研究的主題之一(wikipedia)。CSS盒定位的形式化語義

我玩過很多CSS,對盒子定位規則有合理的理解。 (如果您告訴我創建一個具有特定佈局的頁面,我經常會想到正確的方框和適用的CSS規則。)

對CSS盒子定位規則有某種形式的語義會很酷,但在搜索了一段時間後,我無法找到任何有用的東西。我大部分只是簡單地結束於CSS規範,它被格式化爲具有僞算法的長文本(不是最大的閱讀問題---我還沒有很多努力閱讀這些規範)。

沒有人試圖將這個「理論轉換成一些數學模型,比規範提供的更嚴格嗎?我並不是在尋找完整的或明確的東西,但是如果至少應該定位方式盒可以用正式的方式建模,它肯定會很整潔(而且很有用!)。

有沒有人知道這樣的研究?

+0

有一篇很好的文章:http://www.brainjar.com/css/positioning/ – gandil

+0

我不確定你的意思是「正式」,但規範本身是**正式定義這些東西。畢竟,它是*規範*。這是[目錄](http://www.w3.org/TR/CSS21/cover.html#toc)。您需要關注涵蓋格式模型的第8,9和10節。 – BoltClock

+0

@Bolt在數學意義上是正式的; W3C規範在這個意義上不是正式的。 –

回答

2

沒有答案!這是一個非常簡化的案例可能正式化的例子(請參閱我上面的評論)。

說,例如,我們在世界上的工作特色(1)已知屏幕寬度enter image description here,(2)的enter image description hereenter image description here未嵌套的有序列表,沒有利潤/填充的/邊框,左邊浮動,其中我們通過數學函數wh知道它們的(2.1)高度和(2.2)寬度。

我們將定義函數enter image description hereenter image description here,它們表示每個方框左上角的座標。

我們將定義/使用關係「enter image description here開始行enter image description here」和「enter image description here有高度enter image description here」。

首先,enter image description here開始排隊0

然後,如果enter image description here開始排隊l,而且如果某些m in N

enter image description here

...我們得出這樣的結論:

  1. box heights in certain line
  2. box widths in certain line
  3. l具有高度lineheight
  4. bm+1開始排隊l +1 IFF m le N

這些規則在正式的定義給出盒的位置方式。當然,這只是一種方法,並且可能不是最聰明的方式(只是認爲它很快),但它確實正確地表現了花車的工作方式(模仿拼寫錯誤,我沒有很好地檢查它)。

在處理編程語言時,可以選擇許多這些形式,每個形式都是爲特定目的而發明的(請參閱wikipedia)。

我只是有興趣,如果有人曾試圖想出一些CSS框定位正式化。當然,規範還有很長的路要走,但是它們並不像數學方式那樣嚴格。