Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
HTML作為前端三大基礎(chǔ)知識(shí)點(diǎn)之一,是每一個(gè)前端開(kāi)發(fā)人員都要掌握的部分。今天這篇文章我們來(lái)看看一些平時(shí)不太會(huì)注意,卻在面試時(shí)可能會(huì)問(wèn)到的題目,來(lái)看看你都會(huì)嗎?
HTML
我們都知道textarea是form表單中一個(gè)很常見(jiàn)的元素,用于多行文本輸入,可以設(shè)置行數(shù)和列數(shù)。
但是默認(rèn)的textarea樣式在頁(yè)面上看起來(lái)是很丑的,很多頁(yè)面都是采用div模擬textarea實(shí)現(xiàn)。例如QQ空間主頁(yè)面的發(fā)表說(shuō)說(shuō),在你看頁(yè)面源碼后就會(huì)發(fā)現(xiàn)這個(gè)輸入框其實(shí)是一個(gè)div元素,并不是一個(gè)textarea元素,現(xiàn)在我們就來(lái)看看這是如何實(shí)現(xiàn)的吧?
首先來(lái)看看實(shí)現(xiàn)的效果是什么樣的。
實(shí)現(xiàn)效果
關(guān)鍵屬性:contenteditable
正如這個(gè)屬性的字面意思,可以理解為可編輯的,如果在頁(yè)面標(biāo)簽上設(shè)置contenteditable=true,該標(biāo)簽就可以進(jìn)行編輯了。
可以配合user-modify屬性,該屬性表示的是控制用戶能否對(duì)頁(yè)面元素進(jìn)行編輯,通過(guò)設(shè)置不同的值可以選擇富文本或者純文本內(nèi)容,但是由于該屬性是非標(biāo)準(zhǔn)屬性,很少有人知道。
首先我們來(lái)看看頁(yè)面的HTML部分代碼,就是一個(gè)很簡(jiǎn)單的div標(biāo)簽,然后設(shè)置contenteditable屬性為true。
HTML部分代碼
接下來(lái)我們就看看整個(gè)CSS代碼的完整實(shí)現(xiàn)吧。
CSS樣式
通過(guò)min-height和max-height屬性可以控制div的高度,在內(nèi)容超出max-height后會(huì)出現(xiàn)滾動(dòng)條。如果想要固定div的高度,則只需要設(shè)置height屬性就可以,而不用設(shè)置min-height和max-height屬性。
src和href從使用上來(lái)看都是對(duì)外部資源的一種引用,但是在具體理解上是有差異的。
href的值指定的是資源在網(wǎng)絡(luò)上的位置,定義的是當(dāng)前頁(yè)面上的某個(gè)元素與需要的資源文件的一個(gè)鏈接。比如下面一個(gè)語(yǔ)句。
href引用
當(dāng)瀏覽器解析到頁(yè)面的這條語(yǔ)句時(shí),會(huì)知道在這里引用了一個(gè)外部樣式文件,但并不會(huì)阻止頁(yè)面解析。這與@import有很大不同,因此在引入外部樣式時(shí),推薦使用link標(biāo)簽。
src的值表示的是頁(yè)面上必不可少的內(nèi)容,需要將指定內(nèi)容加載到當(dāng)前頁(yè)面中。比如下面一個(gè)語(yǔ)句。
src引用
當(dāng)瀏覽器解析到頁(yè)面上的這條語(yǔ)句時(shí),瀏覽器會(huì)對(duì)這個(gè)文件進(jìn)行解析,編譯和執(zhí)行,從而導(dǎo)致整個(gè)頁(yè)面加載會(huì)被暫停,這也是為什么一般會(huì)選擇將script標(biāo)簽放在body結(jié)束標(biāo)簽的前面。
有一種更好的理解方式,href表示的是一個(gè)資源的鏈接;src是對(duì)當(dāng)前元素的替換,內(nèi)容最終會(huì)嵌入到當(dāng)前頁(yè)面中。
雖然目前大多數(shù)網(wǎng)頁(yè)都是采用的DIV+CSS布局的方式,但是也有少數(shù)的老式Web網(wǎng)頁(yè)采用的是Table布局,我們可以一起來(lái)看看兩種布局方式的優(yōu)劣。
布局對(duì)比
div+css布局
div+css的布局方式屬于W3C標(biāo)準(zhǔn),而且由于CSS的存在,HTML部分的代碼會(huì)顯得很純凈,滿足行為,樣式,結(jié)構(gòu)分離的原則。
頁(yè)面加載速度更快,這是目前DIV+CSS使用更廣泛的一個(gè)非常重要的原因。
頁(yè)面編碼量相對(duì)于Table布局會(huì)少很多。
頁(yè)面內(nèi)容更容易維護(hù),由于樣式都存在CSS文件中,只需要修改CSS文件即可,對(duì)HTML文件不會(huì)有影響。
由于DIV+CSS布局更容易進(jìn)行SEO優(yōu)化,所以更方便被搜索引擎收錄。
Table布局
雖然DIV+CSS有各種各樣的優(yōu)勢(shì),但是Table布局也并不是完全無(wú)用的。這里也可以列舉出幾個(gè)采用Table布局的優(yōu)勢(shì)。
新手學(xué)習(xí)方便(相信有很多后端RD在進(jìn)行前端學(xué)習(xí)時(shí)剛開(kāi)始都是從table布局開(kāi)始的)。
兼容性更好,由于Table布局是從最古老的瀏覽器發(fā)展而來(lái)的,在兼容性上會(huì)滿足所有瀏覽器。而CSS3的出現(xiàn)卻要考慮瀏覽器的支持程度,一個(gè)樣式要考慮加上幾個(gè)不同瀏覽器前綴,類似于-webkit,-moz等
今天這篇文章主要講解了幾個(gè)關(guān)于HTML的知識(shí)點(diǎn),大家都掌握了嗎?
CSDN 編者按】這篇文章通過(guò)一個(gè)有趣的 JavaScript 問(wèn)題,揭示了該 JavaScript 的復(fù)雜性和問(wèn)題的巧妙之處。
原文鏈接:https://dev.to/arjuncodess/javascript-is-extraordinarily-weird-hear-me-out-56j5
未經(jīng)允許,禁止轉(zhuǎn)載!
昨晚,我遇到了一個(gè)頗為有趣的 JavaScript 問(wèn)題。我敢保證,除非你提前看答案,否則很難回答出來(lái)。
("b" + "a" + + "a" + "a").toLowerCase()
可選擇的答案如下:
baaa
ba01100001a
baa
ba1a
這個(gè)問(wèn)題表面看起來(lái)不難,但當(dāng)我公布答案后,可能讓你驚掉下巴。
所有上述選項(xiàng)都是錯(cuò)的!請(qǐng)問(wèn),你選對(duì)了嗎?
答案將在5秒后公布。
5.
4.
3.
2.
1.
JavaScript 真是匪夷所思
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。