為什麼說 html 和 css 根本不算編程?

難道前端兩大塊之一的css在美團前端工程師眼裡就是切圖么?而且我認為這樣的對話在校招中出現非常打擊面試者,不知道業內前端大家都怎麼看?

我覺得大家有一點誤解了,首先面試者顯然並不是只會html和css,我個人也是更擅長js,從我的描述中完全體會不出一個人的css和js水平高低吧 雖然html css入門很簡單 但是精通他的人確不多,作為前端工程師的兩大技能之一,我覺得css也是很重要的,可能是我玻璃心認為面試官的那句話有一點瞧不起css吧~


嚴格上說真不能算

HTML 是結構化文檔

算是數據結構的一種(變體)吧

CSS 就是渲染引擎的怎麼運作的配置文件

所以也就算是程序運行配置參數的設置人員吧

雖然這倆貨結合起來

配合 :checked :not :nth-child之類的偽類

能整出有限狀態的分支條件啥的

但是還得依賴交互吧

一步步點下去

打個比方是

你寫一段代碼

先得有限狀態組合都羅列起來

然後給個輸入跑這些狀態

還沒循環

得靠人不斷的拉開關保證代碼一行行跑下去……

只能說是圖靈(靠人工)完備了吧……

我只回答你標題問題

你 desc 里的就不說了

css html 的確對web來說很重要

但這不是可以不學或者不會寫一些簡單程序的理由


HTML -&> HyperText Markup Language -&> 超文本標記語言

CSS -&> Cascading Style Sheets -&> 層疊樣式表

一個是標記語言,一個是樣式表。當然不是編程啦。一點問題都沒有。這個更類似於用非所見所得的字處理器寫文章是一樣的(譬如 markdown)。編程的部分在 Js 上。

當然了你要非說 CSS3 + HTML5 可以圖靈完備… 那個實現的也太蛋疼了(逃……


《如果用編程語言寫論文》——圖片來自互聯網,侵刪

面試官並沒有說錯什麼。

==========================================================

另外有人提出html+css是圖靈完備,相信是看了stackoverflow的這個問題:Is CSS turing complete?

不過我並不認同SO中第一的答案,因為其中圖靈完備的代碼包含了人工交互的部分。而圖靈完備中條件跳轉應該是自動執行。CSS和HTML如果圖靈完備意味著可以執行無限循環,但是實際上CSS表達總是有最終態。


HTML / CSS 真的不算編程。

這樣就打擊到了?也太玻璃心了。

另外,切圖就是把視覺稿(或者腦內的視覺稿)轉化成 HTML 頁面,所以說「CSS 就是切圖」也沒什麼錯。

我知道你想聽到的是「網頁重構」這個詞。

但是少年,如果你只會 HTML 和 CSS,估計你做的事情就是切圖而已...


terminology - Why does it matter that HTML and CSS are not programming languages?

HTML and CSS describe presentation, whereas programming languages describe function

我認為沒必要糾結HTML和CSS本身是不是編程語言,除非你發明了HTML和CSS。

如果你只會html和CSS,但你做出了Bootstrap一類的框架,或推出了SMACSS (Home - Scalable and Modular Architecture for CSS) 一類的方法論,誰也不會小瞧你。

所以重要的是,你自己做了什麼事情。


HTML和CSS是不是編程類語言並不是最重要的,最重要的是你自己的選擇。


能不能算編程,最重要的界限是具有圖靈完備(Turing completeness)

HTML+CSS 不是圖靈完備的,所以不算編程(其實你在問這個問題的時候,大家都想的是什麼時候這玩意也算編程了?)但是十多年前就有的 XML(準確的說是其中的 XSLT)是圖靈完備的

要麼多讀點書,要麼堅強些,不然往後的路很難走


確實不算編程。

但前端模板,CSS預處理和後處理,這些應該算是編程。

我相信隨著前端的發展。再過一兩年,校招前端面試絕對會比現在更難。


做了兩年重構,5月份才開始學js。。

才發現前端的世界比原來精彩太多了。

當然也發現比起js,重構真的就是個小坑而已,尤其是現在各種業界推的技術。

mvc,mvvm,模塊化,前端測試。。。而且都才學了沒多久,就發現大神們說這個都是落後的,新技術又要來了。。

所以與其糾結html和css是不是編程,不如靜下心來寫幾個項目,多學點技術,努力拿到百度的offer,然後打面試官的臉(往年拿百度offer然後跳去美團有額外加薪來著)。。


泡麵不能算做飯。


作為一名前端工程師,我第一次聽人把 HTML 和 CSS 說成是編程。


CSS代碼是可以有複雜度的,比如

foundation/_grid.scss

foundation/_visibility.scss

程序員很少需要天天寫這樣的代碼,先入為主是可以理解的。

HTML也是同樣可以有複雜度的

成長中的技術,比如WebComponents.org和React

要解決的一個問題就是render模塊化低耦合的問題

不「算」編程只是編程的角度

架構的角度,複雜項目的HTML和CSS並不比JS,PHP簡單多少。


我不怎麼會切圖,但是我做的是前端的事,什麼是前端,網上很多對這個職位的定義,但不能僅僅認為自己只能夠做切圖的事,受打擊,來吐吐槽,想求安慰,可以理解,我做java,做js,看來我會編程了吧,但是我覺得html,css做出來效果是人們真正想看到的東西,我很想掌握,也在學習,so 對自己定位可以定位為前端,但要更多的涉獵不同的技術,增強自己在軟體開發這方面的能力和視野.首先得有想法,其次通過技術手段去實現自己的想法,技術真的只是一個實現自己想法的工具,但是如何優美的實現,那是看編程功力和編程思想的,它是門學科.我也在學習,共勉吧


驚了。。。

為什麼那麼多人認為HTML並不算一門編程語言?

CSS不算也就算了

難道只有圖靈完備的語言才算是編程語言?

正則這種有限狀態機語言就不算?

HTML這種專業工具語言就不算?

只有邏輯存在順序,分支,循環的語言才算?

程序設計是給出解決特定問題程序的過程,軟體開發過程中的重要步驟。程序設計往往以某種程序設計語言為工具,給出這種語言下的程序。程序設計過程應包括分析、設計、編碼、測試、除錯等不同階段。

(https://zh.wikipedia.org/wiki/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1)

使用HTML進行網頁編寫的時候,分析、設計、編碼、測試、除錯,請問哪個不需要?

頁面結構分析,樣式分析,模塊重用,解耦,這難道不是編程的一部分?

僅僅是寫邏輯就叫編程?

那和僅僅是寫代碼就叫開發有什麼區別


這年頭真正精通 html + css的沒幾個, 光 bfc ,ifc 想理解透就很難。更別布局了。

html+css 寫出效果來很簡單,但是 想知道為什麼是這樣的效果就麻煩了。

現在 瀏覽器越來越牛逼了, 同樣的效果, 一個標籤+一點點css ,和 你四五個標籤+十幾行css,渲染出來的時間 也就差那麼幾毫秒。

所以咯,,,,, 但是,如果想學好精通,還是要 了解原理的。

看下面代碼,思考兩個問題。

1: 第一個div 為何高度不是 200px ?

2: 第二個div 明明是第三個span top對其,為何展現的像其他 top對其類似? 如果其他的top對其,第三個span top 對其 和現在又有什麼區別?

= =,,,,這應該算是 ifc 裡面的一點點小知識,,,

&