css簡(jiǎn)史

css 簡(jiǎn)史

簡(jiǎn)述 CSS 的前世今生未來(lái),如何成為和html,javascript并稱(chēng)為web前端的三大技術(shù)基石;又是如何出現(xiàn)我們相愛(ài)相殺(:boom:)的樣式兼容問(wèn)題的。

前世 :running:

自從在1991年,蒂姆·伯納斯·李首次提出 HTML 的時(shí)候,也就是前端界面宇宙混沌初開(kāi),一片荒蕪,并沒(méi)有頁(yè)面樣式添加的方式。因此,群雄并起,逐鹿web端,出現(xiàn)了一大堆各式各樣的樣式方案,其中很多方案的特性為現(xiàn)在css的形成誕生提供了幫助。

瀏覽器標(biāo)簽樣式

頁(yè)面的樣式設(shè)計(jì),取決于使用的標(biāo)簽在瀏覽器的默認(rèn)樣式

<MULTICOL COLS="3" GUTTER="25">
  <P><FONT SIZE="4" COLOR="RED">This would be some font broken up into columns</FONT></P>
</MULTICOL>

各種樣式方案

  • RRP:1993年6月,Robert Raisch在www-talk的郵件列表中給出了一個(gè)提案, 不支持層疊樣式,單位決定于他們使用的上下文。
@BODY fo(fa=he,si=18)
  • PWP:ViolaWWW 創(chuàng)建者Pei-Yuan Wei 創(chuàng)建了一個(gè)樣式表語(yǔ)言,支持某種嵌套式的結(jié)構(gòu)
<LINK REL="STYLE" HREF="URL_to_a_stylesheet">
...
(BODY fontSize=normal
      BGColor=white
      FGColor=black
  (H1   fontSize=largest
        BGColor=red
        FGColor=white)
)
  • FOSI: 1987年,美國(guó)國(guó)防部CALS 團(tuán)隊(duì)創(chuàng)造了一門(mén)語(yǔ)言來(lái)定義 SGML 文檔的樣式,名為 FOSI
<outspec>
  <docdesc>
    <charlist>
      <font size="12pt" bckcol="white" fontcol="black">
    </charlist>
  </docdesc>
  <e-i-c gi="h1">\<font size="24pt" bckcol="red", fontcol="white"\></e-i-c>
  <e-i-c gi="h2">\<font size="20pt" bckcol="red", fgcol="white"\></e-i-c>
  <e-i-c gi="a"><font fgcol="red"></e-i-c>
  <e-i-c gi="cmd kbd screen listing example"><font style="monoser"></e-i-c></outspec>
  • DSSSL: 基于函數(shù)式語(yǔ)言 Scheme 創(chuàng)建一門(mén)新的語(yǔ)言,基于強(qiáng)大的能力,能對(duì)文檔進(jìn)行任何你可以想到的轉(zhuǎn)換
(define (create-heading heading-font-size)
  (make paragraph
    font-size: heading-font-size
    font-weight: 'bold))

(element h1 (create-heading 24pt))
(element h2 (create-heading 18pt))
  • PSL96: 1996年版的“Presentation Specification Language”,從核心上看,PSL 與 CSS 很像
H1 {  fontSize: 20;}
LI {
  if (ChildNum(Self) == round(NumChildren(Parent) / 2 + 1)) then
    VertPos: Top = Parent.Top;  
    HorizPos: Left = LeftSib.Left + Self.Width;  
  else
    VertPos: Top = LeftSib.Actual Bottom;  
    HorizPos: Left = LeftSib.Left;  endif
}

支持如此的功能或許真的可以實(shí)現(xiàn)完美拆分內(nèi)容和樣式的代碼。遺憾的是這門(mén)語(yǔ)言讓人望而生畏,畢竟太易于擴(kuò)展了。這意味著對(duì)于不同的瀏覽器很可能實(shí)現(xiàn)會(huì)很不一樣。而且,它以學(xué)術(shù)界中的數(shù)篇論文發(fā)表出現(xiàn),并沒(méi)有 www-talk 郵件列表上進(jìn)行研討,要知道大部分的工作都是在這郵件列表里確定的。因此這門(mén)語(yǔ)言并沒(méi)有被集成到主流的瀏覽器中。

  • CHSS:1994年由 H?kon W Lie 提出,提出了樣式權(quán)重渲染, 樣式是可以重疊的
h1.font.size = 24pt 100%
h2.font.size = 20pt 40%

例如,如果之前的樣式表定義h2的字體大小為30pt,有60%的權(quán)重,而加上這個(gè)樣式表h2 20px的40%,根據(jù)權(quán)重將這兩個(gè)值合到一起大概就是26pt。

瀏覽器支持

  • Mosaic: 標(biāo)簽樣式
  • ViolaWWW:PWP
  • 網(wǎng)景Netscape :標(biāo)簽樣式 ——> JSSS
  • IE: 標(biāo)簽 ——> css
    ...

今生 :car:

css 規(guī)范

CSS 最值的一提的就是它的簡(jiǎn)單。它易于解析、編寫(xiě)和閱讀。這種例子在互聯(lián)網(wǎng)的歷史里屢見(jiàn)不鮮。最終取勝的技術(shù)是那些初學(xué)者容易入門(mén)的,而不是那些給專(zhuān)家用的。

  • css1.0: 1996年12月, H?kon Lie 簡(jiǎn)化他的提案,并與 Bert Bos 合作,W3C推出了CSS規(guī)范的第一個(gè)版本
  • css2.0: 1998年
  • css3: 2001年5月W3C開(kāi)始進(jìn)行CSS3標(biāo)準(zhǔn)的制定,到目前為止該標(biāo)準(zhǔn)還沒(méi)有最終定稿。
h1{
  font-size: 20px;
  color: red;
}
a:hover {
  color: #e4393c;
}

css預(yù)處理

css 目前一些瀏覽器發(fā)展的歷史原因,有些兼容問(wèn)題,可通過(guò)不同hack或一些技巧、插件autoprefixer進(jìn)行解決

未來(lái) :rocket:

在未來(lái)的CSS中將會(huì)支持更多的屬性以及函數(shù),其中不乏有變量,嵌套,值計(jì)算等, 瀏覽器們也將統(tǒng)一規(guī)范,不再需要為了兼容而hack了
css 布局已經(jīng)出現(xiàn) flexbox, grid等友好的方式,也已經(jīng)被css標(biāo)準(zhǔn)采納,期待著css3的正式發(fā)布吧:smile:

2017年前端有什么樣變化?即將來(lái)臨的2018有什么樣的期待?- 知乎

參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,204評(píng)論 1 92
  • 十九大上,教育部部長(zhǎng)陳寶生表示,到2020年,我國(guó)將全面建立起新的高考制度。其實(shí)我們已經(jīng)了解到高考要改革了,但是怎...
    江蘇家學(xué)寶閱讀 962評(píng)論 1 2
  • 我就是我,無(wú)需為別人做出改變,更無(wú)需在人前掩飾,我就是我。 可以欣賞我,可以討厭我,我都不理會(huì)。我就是我。 活的舒...
    陸思恩閱讀 115評(píng)論 0 2
  • 我是黃菲菲今天聽(tīng)了芳老師的課,很受用、自己需要改進(jìn)的地方太多了。 今天寶貝睡懶覺(jué)睡到十點(diǎn)才起床的,起...
    fab黃菲菲閱讀 235評(píng)論 0 0
  • 真正懂得 生活的 人,會(huì)知道的 柴米油鹽醬醋茶 真實(shí)的,煙火 幸福,琴棋書(shū)畫(huà)詩(shī)酒花 只可以 怡情養(yǎng)性
    昊水長(zhǎng)天閱讀 188評(píng)論 0 4

友情鏈接更多精彩內(nèi)容