1. 
          

          1. 新聞動(dòng)態(tài)

            HTML + CSS 為何得不到編程界的認可?

            行業(yè)資訊 發(fā)布者:cya 2019-12-18 08:52 訪(fǎng)問(wèn)量:113

            作者 | Amadou Ibrahim

            譯者 | 彎月,責編 | 郭芮

            出品 | CSDN(ID:CSDNnews)


            如果我在用HTML+CSS編程,那么,我能算是名開(kāi)發(fā)人員嗎?


            以下為譯文:
            有好多次,別人說(shuō)我算不上程序員,因為我在用HTML + CSS編程。我非常傷心,因為別人都不認為我是開(kāi)發(fā)人員。我們討論了好幾個(gè)小時(shí),網(wǎng)上也有很多關(guān)于這個(gè)話(huà)題的討論。但仍然還有人否認這一點(diǎn),那么就讓我們在本文中好好探討一番。
            在深入探討之前,讓我們先來(lái)了解一下HTML + CSS的基礎知識。
            根據維基百科:

            超文本標記語(yǔ)言(英語(yǔ):HyperText Markup Language,簡(jiǎn)稱(chēng):HTML)是一種用于創(chuàng )建網(wǎng)頁(yè)的標準標記語(yǔ)言。

            這意味著(zhù)你需要使用HTML來(lái)構造顯示在網(wǎng)頁(yè)上的文檔。下面是一個(gè)基本的HTML頁(yè)面的例子:
            <!DOCTYPE html>
            <html>
            <head>
                 <!-- Metadata goes here -->
            </head>
            <body>
                 <!-- Page content goes here -->
            </body>
            </html>
            除了HTML之外,你還可以利用CSS來(lái)美化頁(yè)面。這就是為什么我們會(huì )結合二者使用。
            根據維基百科:

            層疊樣式表(英語(yǔ):Cascading Style Sheets,縮寫(xiě):CSS;又稱(chēng)串樣式列表、級聯(lián)樣式表、串接樣式表、階層式樣式表)是一種用來(lái)為結構化文檔(如HTML文檔或XML應用)添加樣式(字體、間距和顏色等)的計算機語(yǔ)言。

            下面是一個(gè)CSS文件的示例:
            *{  
                box-sizing: border-box;  max-width100%;
            }
            body{  
              font-size1.25rem;  padding-bottom70px;
              background#fff;
            }

            編程語(yǔ)言的結構

            首先,我不止一次聽(tīng)說(shuō)有人認為HTML + CSS沒(méi)有編程結構。那么編程結構是什么?經(jīng)過(guò)一番搜索后,我發(fā)現,現代編程語(yǔ)言的編程結構幾乎都如出一轍??刂平Y構和數據結構。別著(zhù)急,且聽(tīng)我慢慢道來(lái)。
            控制結構
            控制結構指的是,分析變量并根據給定的參數選擇程序執行順序的一塊程序。
            控制結構包括順序控制、條件控制和循環(huán)控制。下面我來(lái)舉例說(shuō)明。我使用Ruby語(yǔ)言來(lái)書(shū)寫(xiě)示例。別擔心,Ruby很接近英語(yǔ),非常易于理解。
            順序控制:逐條執行的指令。在下面的示例中,我們將執行一系列指令。
            # Sequences control-structures
            ## Set a new varibale age to 0.
            age = 0
            ## Then another varibale required_age to 15.
            required_age = 15
            ## Print this message "What is your age?" to the user
            puts "What is your age?"                           
            ## Get the user input and store it in age. Type 14
            age = gets.chomp.to_i
            ## Print this message "You are 14 year's old" to the user
            puts "You are #{age} year's old"                    
            條件控制:如果條件為true,則執行此處的代碼。程序根據條件的結果,決定要執行的代碼塊。
            # Condition Control Structure
            ## Set a new varibale age to 15.
            age = 15
            ## Then another varibale required_age to 16.
            required_age = 16
            ## check if the user age is less than 16
            if age < 16
              ## If the condition is checked, print the message "Sorry, you can't pass the driver license!" to the user 
              puts "Sorry, you can't pass the driver license!"
            else
              ## If the condition is not checked, print this message "Great! You can pass your driver license" to the user
              puts "Great! You can pass your driver license"
            end
            上述指定的代碼塊將循環(huán)執行多次,直到條件成立為止。示例中的條件是“counter”等于5。因此,這則消息輸出了5次。
            # Loop Control Structure
            ## Set a variable "counter" to zero
            counter = 1
            ## Iterate through the loop as long as "counter" is less than 5
            while counter <=5 do
              ## Print "Get your driver license with LicenseGuru"
              puts "Get your driver license with LicenseGuru"
              ## Add 1 to the current value of counter
              counter+=1
            end
            那么,HTML+ CSS有這樣的控制結構嗎?你怎么看?
            數據結構
            什么是數據結構?維基百科上說(shuō):

            數據結構(英語(yǔ):data structure)是計算機中存儲、組織數據的方式。

            簡(jiǎn)單來(lái)說(shuō),數據結構表示組織數據、定義數據類(lèi)型以及操作數據的方法。大多數編程語(yǔ)言都有不同類(lèi)型的數據,包括字符串、整數、布爾值、數組、對象...
            那么,HTML + CSS也有這種數據結構嗎?此外,還有人說(shuō)HTML + CSS不具備圖靈完備性——那么,圖靈完備性又是什么?
            我的第一反應也是發(fā)懵。但經(jīng)過(guò)幾個(gè)小時(shí)的查閱后,我有了大致的了解。
            簡(jiǎn)而言之,在計算理論里,如果一系列操作數據的規則(如指令集、編程語(yǔ)言、細胞自動(dòng)機)可以用來(lái)模擬單帶圖靈機,那么它是圖靈完備的。
            圖靈機是英國數學(xué)家艾倫·圖靈于1936年提出的一種將人的計算行為進(jìn)行抽象的數學(xué)邏輯機,其更抽象的意義為一種計算模型,可以看作等價(jià)于任何有限邏輯數學(xué)過(guò)程的終極強大邏輯機器。
            圖靈機是一個(gè)規則、狀態(tài)和轉換的系統,并不是指真正的機器。
            如此說(shuō)來(lái),HTML + CSS確實(shí)不具備圖靈完備性。因為HTML + CSS無(wú)法更改系統狀態(tài)。也無(wú)法做出決策或根據輸入更改狀態(tài)……
            那么,我還能說(shuō)HTML + CSS是編程語(yǔ)言嗎?

            CSS的控制結構

            是的,你沒(méi)看錯,CSS有自己的控制結構方式。下面是一些例子。
            順序控制
            與其他編程語(yǔ)言一樣,我們可以在CSS中逐行執行指令。
            body{
              // Set the background to white color
              background:#fff;
              // Set the font size to 20px
              font-size: 20px;
              // Set the background to yellow
              background:yellow;
              // Set the font size to 14px
              font-size:14px
            }
            在上述代碼中,第一條指令被覆蓋, 所以最后的結果是:
            條件控制
            @media screen and (max-width: 567px) {
                // Style 1
            }
            @media screen and (max-width: 900px) {
                // style 2
            }
            在上述代碼中,如果設備屏幕的最大寬度為567px,則應用樣式1;如果最大寬度為900px,則應用樣式2。因此,這就是一個(gè)條件控制。
            @supports (display: flex) {
              navbar{
                display:flex;
              }
            }
            對于上述navbar的樣式代碼,如果用戶(hù)的設備支持,則顯示屬性將設置為“flex”。你甚至可以使用關(guān)鍵字“not”書(shū)寫(xiě)false語(yǔ)句:
            @supports not (display: flex) {
                div { float: left; } /* alternative styles */
            }
            循環(huán)控制
            你是認真的嗎?是認真的。CSS也有類(lèi)似循環(huán)的指令。盡管看上去與其他編程語(yǔ)言的循環(huán)有所不同。CSS的循環(huán)指令沒(méi)有“for”循環(huán)或“while”循環(huán)。讓我們看一下這段代碼:
            li a{
              font-weight:700;
              display: block;
              padding15px;
              margin-bottom:10px;
              background:#333;
              color:white;
              text-align: center;
              text-decoration: none;
            }
            li a.active{
              background:red;
              color:white;
            }
            第一段代碼告訴瀏覽器循環(huán)遍歷“l(fā)i”元素內所有的“a”元素,然后應用給定的樣式。第二段代碼告訴瀏覽器再循環(huán)一遍。如果“a”元素的類(lèi)為“active”,則應用給定的樣式。因此,我結合使用了循環(huán)和條件控制。
            現在你是否同意HTML + CSS具有編程語(yǔ)言結構?你同意?那太好了!我們之間達成了共識,你可以走了。
            哦?你還在繼續閱讀?你還有疑問(wèn)?那么就讓我來(lái)一一解答吧。
            如果有人說(shuō)CSS具備圖靈完備性,你會(huì )說(shuō)什么?你無(wú)言以對,是嗎?事實(shí)上,有一位名叫Eli Fox-Epstein的名人證明了這一點(diǎn)。他進(jìn)行了一項實(shí)驗,并證明HTML + CSS具備圖靈完備性,而這個(gè)故事發(fā)生在2011年。有關(guān)的詳細信息,請點(diǎn)擊這里(https://accodeing.com/blog/2015/css3-proven-to-be-turing-complete)。
            所以,你現在可以接受HTML + CSS是一種編程語(yǔ)言了嗎?
            HTML + CSS就是當代網(wǎng)頁(yè)的“雙俠”(請參照電影《雙俠》)。
            對于全世界所有的網(wǎng)站而言,無(wú)論其服務(wù)器端的語(yǔ)言是什么,前端都使用了HTML + CSS。
            當目前為止,互聯(lián)網(wǎng)上的網(wǎng)站數目高達17億,供44億用戶(hù)使用。而且這個(gè)數字還在不斷增長(cháng)。
            這些網(wǎng)站又分為靜態(tài)網(wǎng)站和動(dòng)態(tài)網(wǎng)站。靜態(tài)網(wǎng)站僅使用HTML + CSS構建。而動(dòng)態(tài)網(wǎng)站還用到了其他語(yǔ)言。
            其他語(yǔ)言是什么意思?
            為了讓HTML + CSS大放異彩,你還需要其他的編程語(yǔ)言來(lái)潤色。常見(jiàn)的編程語(yǔ)言包括PHP、Python、Ruby、Javascript等等。Facebook、Twitter、Google和Medium都是動(dòng)態(tài)網(wǎng)站。他們的網(wǎng)站因結合了多種語(yǔ)言而得以蓬勃發(fā)展。
            感謝您的閱讀。如果你有不同的觀(guān)點(diǎn),請在下方留言。
            原文:
            https://medium.com/swlh/the-most-used-and-unrecognized-programming-languages-b0882e8c8c6f?



            關(guān)鍵字: HTML CSS 晨展科技

            文章連接: http://www.gostscript.com/hyzx/646.html

            版權聲明:文章由 晨展科技 整理收集,來(lái)源于互聯(lián)網(wǎng)或者用戶(hù)投稿,如有侵權,請聯(lián)系我們,我們會(huì )立即刪除。如轉載請保留

            双腿国产亚洲精品无码不卡|国产91精品无码麻豆|97久久久久久久极品|无码人妻少妇久久中文字幕
                1.