1. 程式人生 > >雅虎面試題-你真的瞭解HTML嗎?

雅虎面試題-你真的瞭解HTML嗎?

有這麼一段HTML,請挑毛病:
  1. <P>  哥寫的不是HTML,是寂寞。<br><br>  我說:<br>不要迷戀哥,哥只是一個傳說

這是原來雅虎一道筆試題(文字變了變),用了很多年了,還沒有一個人完全答對過。
============== 解答部分 ==============

出這道題的動機是,太多人覺得HTML太簡單,但它恰恰又是前端開發中最基礎最重要的部分。HTML結構設計的合不合理,直接影響到程式碼易不易維護,靈不靈活,同時事關網頁效能,協作效率。碰到不少人認為前端開發就是javascript開發,大錯特錯啊。javascript, html, css這三個前端開發的基礎支柱,性質完全不同又緊密關聯,對它們的正確理解,合理應用是專業與非專業的區別。有些後端工程師可以寫出很漂亮的JS,但他們真的不懂怎麼合理的把js, html, css結合起來應用。對html的準確把握,不像學一般的程式語言那樣,而是建立在豐富實踐經驗和體會的基礎上,是前端的工程師的基本功。


這不是一道較真題或是裝逼題,正經一道“畫雞蛋”的題,考的是基本功。程式碼如其人,對一行程式碼的理解足以反映出他的前端開發素養。

言歸正傳。這道題的考點:

考點1:html和 xhtml的區別
這行程式碼在html 4.01 strict下是完全正確的,在xhtml 1.0 strict下是錯誤一堆的。所以明顯是一個考點。在xhtml下所有標籤是閉合的,p,br需要閉合, 標籤不允許大寫,P要小寫。同時nbsp和br必須包含在容器裡。html下這些都不是錯。p在html裡是可選閉合標籤,是可以不用閉合的。

這個考點告訴你xhtml是多麼苛刻。這是基本考點,答對,你能拿到60分。

考點2:考樣式分離
用nbsp控制縮排是不合理的。應該用CSS幹這事。所以應該刪掉nbsp


考點3:合理使用標籤
br是強制折行標籤,p是段落。原題用連續的br製造兩個段落的效果,效果是達到了,但顯然用的不合理,段落間距後期無法再控制。正確的做法是用兩個p表現兩個段落。“我說”後面是正常的文字折行用br是合理的。

上面全答對,你就能拿到100分。

對原題改進的結果:
html 4.01:
  1. <p>哥寫的不是HTML,是寂寞。</p>我說:<br /> 不要迷戀哥,哥只是一個傳說

xhtml 1.0:
  1. <p>哥寫的不是HTML,是寂寞。</p><p>我說:<br /> 不要迷戀哥,哥只是一個傳說</p>

加分:合理的用語義化標籤

在前面的基礎上合理的用語義化標籤,對內容進行必要的標記,是加分的。但過度的使用標籤,就畫蛇添足了。如“我說”的話,可以用q標籤標註。
  1. <p>哥寫的不是HTML,是寂寞。</p>
  2. <p>我說:<br /> <q>不要迷戀哥,哥只是一個傳說</q></p>

我覺得這就夠了,如果再進一步,“我”用cite標註,“HTML” 用abbr或acronym標註(至於再討論abbr和acronym的區別就太較真了),也OK。再複雜就沒必要了。
  1. <p> 哥寫的不是<abbr title=”Hyper Text Markup Language”>HTML</abbr>,是寂寞。</p>
  2. <p><cite> 我</cite>說:<br /> <q>不要迷戀哥,哥只是一個傳說</q></p>

相關推薦

試題-真的瞭解HTML?

有這麼一段HTML,請挑毛病: <P>  哥寫的不是HTML,是寂寞。<br><br>  我說:<br>不要迷戀哥,哥只是一個傳說 這是原來雅虎一道筆試題(文字變了變),用了很多年了,還沒有一個人完全答對過。======

leetcode微軟,亞馬遜,試題206. Reverse Linked List的java實現

這是一道道簡單的連結串列題,但是有很多大公司都有出這道面試題,可見基礎題在面試中也很重要 這裡有兩種解法,雖然大體相同,但是耗時不同 Reverse a singly linked list. 第一

試題─把十進位制數(long型)分別以二進位制和十六進位制形式輸出,不能使用printf系列

程式設計實現:把十進位制數(long型)分別以二進位制和十六進位制形式輸出,不能使用printf系列。 實現了unsigned long型的轉換。 // 十進位制轉換為二進位制,十進位制數的每1bit轉換為二進位制的1位數字 char *int_to_bin(unsigne

試題─有兩個雙向迴圈連結串列A,B,知道其頭指標為:pHeadA,pHeadB,請寫一函式將兩連結串列中data值相同的結點刪除

有雙向迴圈連結串列結點定義為: struct node {    int data;   struct node *front,*next; }; 有兩個雙向迴圈連結串列A,B,知道其頭指標為:pHeadA,pHeadB,請寫一函式將兩連結串列中data值相同的結點刪

校園網路安全CTF 第一題 和 瞭解

第一題: 需要先找到相應頭(REsponse header中的tips)   <?php$flag = "***";if (isset($_GET['repo']))//檢測變數是否設定 { if (strcmp($_GET['repo'], $flag) == 0) //比較兩個

這道javascript 試題 必須會

fun prot 試題 concat 作用 val function 運算 return 實現一個函數,運算結果可以滿足如下預期結果: add(1)(2) // 3 add(1, 2, 3)(10) // 16 add(1)(2)(3)(4)(5) // 15 話不多說

2017年8道php試題題+答案)

php 高級php1、<?php echo count(strlen(“http://php.net”)); ?>的執行結果是? 答案:1 講解:count(var)是用來統計數組或對象的元素個數的。當var是null或者空數組時,結果為0。如果var是普通變量,則返回1。正常情況下返回var中的

Java程序員從阿裏、京東、美團面試回來,這些試題

Java 程序員 分布式 微服務 後端 最近有很多朋友去目前主流的大型互聯網公司面試(阿裏巴巴、京東、美團、滴滴),面試回來之後會發給我一些面試題。有些朋友輕松過關,拿到offer,但是有一些是來詢問我答案的。 其實本來真的沒打算寫這篇文章,主要是自己得記憶力不是很好,不像一些記憶力強的人

這道Java基礎試題真的會

你咱不往下看,先想想你的答案是什麼? 這裡先來聊聊String的intern()方法是幹什麼的? intern方法是一個native方法,空口無憑,咱們還是可以看看Stirng的原始碼 從方法的註釋咱們可以知道,它的作用: 1:如果字串常量池中已經包含一個等於此Sti

Java程式設計師從阿里拿到offer回來,這些試題

前不久剛從阿里面試回來,為了這場面試可以說準備了一個半月,做的準備就是刷題和看視訊看書充實自己的技術,話說是真難啊,不過還算順利拿到了offer,有很多面試題我已經記不起來了,這些是當天回家整理好的,下面我來跟大家一起分享一下。 首先我們需要明白一個事實,招聘的一個很關鍵的因素是在給自己找未來的同事,同

Java開發試題大彙總,年薪30萬的試題能答出多少?

最近有很多朋友在問,年後打算跳槽,這兩個月該怎麼準備,針對這些問題,我總結了一套年薪30萬左右Java開發面試題,雖然還落了一下沒寫,但是我感覺完全掌握這些,年薪30萬是沒有問題的,下面來看看這些面試題你能答出多少。 一、Java基礎 1. String類為什麼是fina

這個Java基礎試題真的會

你咱不往下看,先想想你的答案是什麼? 這裡先來聊聊String的intern()方法是幹什麼的? intern方法是一個native方法,空口無憑,咱們還是可以看看Stirng的原始碼 從方法的註釋咱們可以知道,它的作用: 1:如果字串常量池中已經包含一個等於

投行的 15 個多執行緒和併發試題——都會

多執行緒和併發問題已成為各種 Java 面試中必不可少的一部分。如果你準備參加投行的 Java 開發崗位面試,比如巴克萊銀行(Barclays)、花旗銀行(Citibank)、摩根史坦利投資公司(Morgan Stanley),你會遇到很多有關多執行緒的面試題。多執行緒和併發

這樣的試題

                    面試題1:斯密斯夫婦握手問題  史密斯夫婦邀請另外四對夫婦就餐,已知他們每個人都不和自己握手,不和自己的配偶握手,且不和同一個人握手一次以上。在大家見面握手寒暄後,史密斯問大家握手了幾次,每個人的答案都不一樣。  問:史密斯太太握手幾次?  1.所涉及的知識點  ·

Scrum Master 試題必須知道的22個Scrum基礎知識

以下的22個問題基本上涵蓋了Scrum所涉及的內容,如果你能夠正確回答出所有問題,那麼你已經具備了作為一名Scrum Master的基本素質;當然,作為一名合格的Scrum Master,更重要的是你的經驗,因為Scrum Master更多的需要和人打交道,很多實際問題的處理方式是必須在實踐中才能體會的

Java程式設計師臥底從阿里、京東、美團面試回來,這些試題

面試,難還是不難?最終結果好還是不好?取決於面試者的底蘊(氣場+技能)、心態和認知以及溝通技巧。而一些主流的大型網際網路公司面試(阿里巴巴、京東、美團、滴滴)更是需要你在面試時展現出自己的能力,從而獲得面試官的欣賞和肯定。 而程式設計師在應聘時更是需要經歷層層面試。俗話說,磨刀不誤砍柴工

Java程式設計師金三銀四求職季,這些多執行緒試題

  多執行緒是Java技術面試中面試官比較喜歡問的問題之一。在這裡,從面試的角度列出了大部分重要的問題,但是作為一個程式設計師仍然應該牢固的掌握Java多執行緒基礎知識來對應日後碰到的問題。 1. 程序和執行緒之間有什麼不同? 一個程序是一個獨立(self contain

2017已來,最全面試總結——這些Android試題一定需要

三金四銀,又到了一年一度的跳槽季。也許有不少Android程式設計師開始摩拳擦掌蠢蠢欲動了。結合以往自己的經歷,今天給大家總結下Android面試題,希望有幫助。 本文轉自:(http://www.jianshu.com/p/a22450882af2) 1:Activ

[乾貨]2017已來,最全面試總結——這些Android試題一定需要

前言 來年發完年終獎。也許有不少Android程式設計師開始摩拳擦掌蠢蠢欲動了。結合以往自己的經歷,今天給大家總結下Android面試題,希望有幫助。 01Activity生命週期? 這幾乎是個老少咸宜,永遠不會過

python經典試題:想找工作?這些試題會了

輸出結果 classes readline 應用 all 就是 last 如果 合數 ? 前言 什麽?你要去找工作?先別急著找工作,先把下面的python面試題先給看了吧,不然你就只是去面試而不是找工作。話說不打沒準備的仗,下面這些基本的面試題都不會你怎麽可能找到工作呢