整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          沒有技術的人才會問空格問題??? #web前端

          壓縮。

          我是沒想到還是有人會說,沒有基礎的人才會問html空格的問題,這些細節沒有什么用,而我這里給大家簡單的匯報一下。

          首先第一個問題,標簽和標簽之間空格的問題。先看一下這個家伙,這個例子,這兩種寫法有什么區別?直接看這里的例子。第一種寫法包含了一個奇怪的空格,但是第二種寫法是不包含空格的。

          這個東西在html里面,它的解析,它的Dome節點中看是看不出來的,而我們看它們的表現完全一致的,要怎么去理解?畢竟寫的代碼不是所有的都會去掛工程畫,這個地方是animate和note的區別,它們的內存結構是不一樣的。

          比如第一個節點,它下面包含了5個字節點,有3個是文本節點。再看第二個節點,這個節點下面只有兩個節點,只有兩個span的標簽。去看html的時候,它的表現是字符,標簽是字符的一種結構,但是最終使用的時候是document,它是節點,中間是有轉換的,這是理論。

          這里聊的就是text文本節點,而對于文本節點,那里面的東西就非常惡心了,東西就特別多了。比如現在就要這三個字,無壓縮它的寬度,要怎么去計算?找一下無壓縮節點,找的是無壓縮里面文案的節點,它是沒有寬度的,上面可以看到它的寬度是144,這是它渲染出來的,它的寬度是沒有的,這個節點里面是不給提供它的寬高的,這是很惡心的一件事情。

          必須得基于容器,基于它外側的容器,來去獲取到它最終的寬度,計算中文的寬度是多少,大家有見過這樣的需求吧。

          再說一個,現在要節點信息的位置,比如這里做了個例子,現在要定義文案的偏移量,要怎么去計算?當用第一種方式里面寫的有SPA標簽以后,直接獲取標簽,用行內的標簽來去進行獲取,里面包含了左邊定位的信息,三百八十七。

          ·但現在要計算第二個節點,它的問題跟剛才的問題是一樣的,如何去獲取到text的節點?它的寬高獲取不到的,沒有偏移量的信息,得進行特殊的計算,這就是其中一個比較大的區別,這個東西就比較操蛋了。

          ·再來一個跨局跟行內元素的規則,規則包含哪些?標準的規則是所有的子元素,塊菊元素當中所有的子元素要么都是塊菊,要么都是內聯的。看一下它們兩個這種寫法上有沒有區別?這兩種寫法是沒有任何區別的,因為它是跨極,它是內聯的,而內聯和跨極是不允許進行交叉使用的。

          它的寫法相當于它的外層又包含了一個隱匿的跨句元素,直接看頁面中表現的效果,它倆的表現效果是一致的,雖然標簽不一樣,但是最終展示的結果是一樣的,它倆的表現形式是一樣的。

          如果這個邏輯知道,再解釋一下下面這種寫法,這兩種寫法是一樣的,解釋一下為什么?已知div是跨距元素,跨距元素當中里面所有的節點全部都是跨距元素或者是行內元素,而又知道空格會轉換成text的節點,而Tech的節點是行內元素,所以它的外層又會包成一行隱匿的節點,它是div,所以這里包含div,這里又包含div,有3個空格。

          塊級:所有的子元素都是塊,中間兩偏差的兩個一,這兩個元素它倆的表現是一樣的,可以看到它最終表現的效果。

          這里引出的額外的概念就是塌陷,沒有內容,沒有div它的content是0,它的高度必須得是0,否則這種實現就會跟理解是有差異的,而這種實現又會產生一些額外的其他的問題。

          舉一個例子,往from表單里面,往table里面插入元素,恰巧那一行的數據它就是為空,后端返回這個空詞無串,這個時候要不要進行特殊處理?比如圖中這個table,這個table它就是沒有數據,這兩行就是沒有數據,最終展示的時候可能就是第一行它是正常的,它的高度可能是40,第二行第三行它就是癟了,發現了因為沒有內容產生的原因。

          要怎么去解決這個問題?phone表格也是一樣的,它也會有類似的問題。當然還會有一些其他的比較惡心的要求,現在是復文本,現在是編輯代碼,而要求內容跟寫的結構一樣,現在要再怎么去處理第三類?使用PRE標簽,刷新一下,空殼這個問題又得到了一個處理。

          這里就涉及到了具體的解析結構、規則,而這些問題聊完以后又可以回到上一個問題,HM中有哪些標簽?關于如何分類的?標簽的分類其實按功能分、按和模型去區分,沒問題都沒問題,但至少所有的類型得加上。

          比如hider meter,它們是行類的還是塊兒級?包括直播的時候彈幕上已經提到過行內塊級,有些內容是說錯的,講道理當時就是聽個響,因為答案太普通了。可以按照另外的一種結構來去區分,可以基于轉換后的元素進行區分,而它包含很多。

          ·第一種:空元素,沒有內容的元素,它的核心是什么?現在寫一個image標簽,里面的標簽內容不要那樣寫,非要這樣去寫,里面加一個奇怪的標簽內容,肯定是標加不進去的,是沒有辦法放到image里面的。包括heart,包括這些里面的其他的標簽全部都是這樣的,最終會做一些特殊的操作來去處理里面的span或者里面文案的內容。

          ·第二個元素,模板元素。它是用來定義下面模板用的,是比較特殊的,里面的內容不會進行額外的解析。比如現在寫了一個奇怪的標簽,里面加了一個script,這個時候刷起甲會怎樣?刷新一下標簽會進行執行。當然是如果用time play就不會進行執行,它是一個元素的,是一個模板類的標簽,刷新一下不會進行執行。

          ·第三類,原始文本元素。這類元素其實往下看,主要是看這兩個元素包含可轉移和不可轉移,一般是兩個,提示器寫的也行,一般是兩個。這兩個會進行解析,需要其他的解析器來對里面的代碼去進行解析。但是textl里邊放的這些元素是不會進行解析的。

          比如現在把tablet改成taxl,大家注意里面的節點會怎么處理?會去執行嗎?不會執行,并且會把里面的內容放到里面的內容,這個東西也是以前代替template的核心原因。去看一些比較老的實現的時候,比如百度中里面會用一些taxl代替template,因為以前沒這個元素。

          ·第五個,這兩原始文本算兩個,第五個就是外來元素,這里寫的又比較清楚,非HTML規范的一些元素。特殊的一些元素,外來的不是html里面規范的。

          最后就是普通元素,打鼓本身就是筆試題的平替,但是它的內容跟筆試是不一樣的,筆試是有標準答案的,是要打分的,60分以后繼續聊,沒有超過60分就可以走了。

          但打鼓不是,拋出一個問題,永遠是論述題,大家來相互的溝通,有可能面試官的這個點不會沒關系,完全可以主動地去提。面試官我覺得這個點不重要,我更了解瀏覽器中編語原理的部分,了解瀏覽器中關于渲染引擎的這一部分,可以基于這個問題來探討一下關于節點,關于剛才這些問題到底是有一個什么樣的答案,這是沒有問題的。

          反正一句話,我是不認可沒有技術的人才會問hmr空格問題的,更不認可這些細節問題沒有任何用的言論。

          、系統結構:

          ① B/S架構:Browser/Server(瀏覽器/服務器的交互形式。)

          • Browser支持的語言:HTML、CSS、JavaScript;S是服務器端Server支持的語言有:C、C++、Java等
          • B/S架構系統有什么優點和缺點? 優點:升級方便,只升級服務器代碼即可,維護成本低。缺點:速度慢、體驗不好、界面不炫酷
          • 企業大部分使用B/S架構
          • B/S架構的系統代表有:京東、百度、天貓等

          ② C/S架構:Client/Server(客戶端/服務器的交互形式。)

          • C/S架構的優點和缺點?
          • 優點:速度快、體驗好、界面炫酷(娛樂性多數是C/S架構)
          • 缺點:升級麻煩、維護成本較高。
          • C/S架構的系統代表有:QQ、微信、支付寶等

          2、 HTML概述

          ① 什么是HTML?② 怎么開發HTML?③ 怎么運行HTML?

          • ① HTML:Hyper Text Markup Language(超文本標記語言)

          ?由大量的標簽組成,每一個標簽都有開始標簽和結束標簽。

          ?超文本:圖片、聲音、視頻等

          • ② HTML開發使用普通的文本編輯器就行,創建擴展名是.html或.htm

          ?編輯器有:HBuilder、vscode等

          ③ 直接采用瀏覽器打開HTML文件就能運行

          ④ HTML是誰制定的?

          • ④ W3C:世界萬維網聯盟

          ?W3C制定了HTML的規范:每個瀏覽器生產廠家都會遵守規范。HTML也會按照規范去寫代碼

          ?HTML規范目前最高的版本是:HTML5.0,簡稱H5

          ?我們現在主要學的HTML4.0(基本用法)

          • 為了方便中國Web前端程序員開發,提供了大量幫助文檔。為開發提供方便。

          ?w3school:先出現的,和W3C無關

          ?w3cschool:后出現的,和W3C無關

          ?W3C制定了很多規范:HTML/XML/http協議/https協議……

          3、 第一個HTML

          4、基本標簽

          • p:段落標記
          • h1~h6:標題字,與word的標題字相同
          • br:換行標記(獨目標記)
          • hr:橫線(獨目標記)
          • color:橫線顏色
          • width:橫線寬度(可以px和%)
          • pre:預留格式
          • del:刪除字
          • ins:插入字(有下劃線)
          • b:粗體字
          • i:斜體字
          • sup:上標
          • sub:下標
          • font:字體標簽
          • color:字體顏色
          • size:字體大小(1~7)

          頁面效果圖:

          5、實體符號:為了避免和標簽沖突,所以需要使用實體符號

          • <:<
          • >:>
          • 空格:
          • 注:html中按多個空格鍵,在網頁中只顯示一個空格

          6、HTML表格

          • table:表格
          • tr:行
          • td:列
          • th:列(比td加粗居中)
          • 合并行:rowspan(一個格占兩個位置)
          • 注:row合并的時候,刪除下面的單元格
          • 合并列:colspan(一個格占兩個位置)
          • 注:col合并的時候,刪除哪個沒有要求

          7、thead、tbody、tfoot標簽

          • thead、tbody、tfoot不是必須的,便于后期JS編寫。

          8、body的背景顏色和背景圖片

          • bgcolor:背景色
          • background:背景圖片
          • 背景圖片在背景色的上面

          9、img標簽

          • src:圖片的路徑
          • 只設置width,height會等比例縮放
          • 只設置height,不起作用
          • title:鼠標懸停時顯示的信息
          • alt:設置圖片加載失敗時顯示的提示信息

          10、 超鏈接或熱鏈接

          • href:hot references 熱引用;
          • 后面一定是一個資源的地址。
          • 后面的路徑可以是絕對路徑也可以是相對路徑,可以是網絡某個資源的路徑。
          • target:
          • _blank:新窗口
          • _self:當前窗口(默認)
          • _top:頂級窗口
          • _parent:父級窗口

          超鏈接的作用:

          通過超鏈接可以從瀏覽器向服務器發送請求。

          11、request與response的概念

          • request:瀏覽器向服務器發送數據(請求)
          • B --》S
          • response:服務器向瀏覽器發送數據(響應)
          • S--》B

          12、列表

          • 有序列表:ol
          • type:1、A、a、I、i
          • 無序列表:ul
          • type:circle(○)、square(□)、disc(●)

          13、表單(重點)

          • action:寫提交的URL地址
          • method:默認get;還有post
          • 表單有什么用?
          • 答:收集用戶的信息。表單展現之后,用戶填寫表單,點擊提交。 (submit)
          • 怎么畫一個表單?
          • 答:用form標簽
          • 一個網頁可以有多個表單form
          • 表單最終是需要提交數據給服務器的,form標簽有一個action屬性,這個屬性用來指定服務器地址。
          • action屬性用來指定數據提交給哪個服務器
          • action屬性和超鏈接中的href屬性一樣。都可以向服務器發送請求(request)
          • http://192.168.111.3:8080/oa/save 這是請求路徑,
          • 表單提交數據最終提交給192.168.111.3機器上的8080端口對應的軟件。
          • input中的type取值:
          • radio:單選控件
          • checkbox:多選控件
          • submit:提交控件
          • reset:重置控件
          • button:普通控件
          • text:文本控件
          • password:密碼控
          • file:文件控件
          • 上傳文件專用
          • hidden:隱藏域
          • 網頁上看不到,但是表單提交的時候數據會自動提交給服務器。
          • input中的value屬性用來指定按鈕上顯示的文本信息。
          • 超鏈接a與表單form的區別?
          • 答:表達form可以收集信息,而超鏈接a無法收集信息。
          • 表單提交里面的按鈕input中屬性必須定義name,不然提交不了。
          • 表單是以什么格式提交數據給服務器的?
          • 格式:action?name=value&name=value&name=value..
          • HTTP協議規定的,必須以這種格式提交給服務器
          • java中String split('&');
          • 重點強調:表單項寫了name屬性的,一律會提交給服務器。不想提交就不要寫name屬性。
          • 文本框和密碼框的value不需要程序員指定,用戶輸入什么value就是什么。
          • 當name沒有寫的時候,該項不會提交給服務器
          • 但是當value沒有寫的時候,value的默認值是空字符串"",將空字符串提交給服務器。java代碼得到的是:String s = "";

          效果圖:

          地址欄提交的信息:

          ?username=abc&userpassowrd=1234&sex=1&aihao=study&aihao=dream&myText=我沒有value屬性;&position=ln&myFile=&myHidden=

          14、表單的說明:

          • ① 用戶手動輸入的文本框,都不需要給value賦值
          • ② textarea沒有value屬性
          • ③ radio、checkbox默認選項需要使用,checked="checked"(簡寫:checked)
          • ④ select中的option屬性:? selected="selected" 為默認選中 ?size:顯示條目數量
          • multiple="multiple" 支持多選(select的屬性)
          • ⑤ input的屬性
          • readonly和disabled:
          • 都是只讀不能修改
          • 數據不會提交
          • maxlength:設置文本框中輸入的字符數量。

          15、HTML中的結點

          • 在HTML文檔中,任何元素(結點)都有id屬性,id屬性是該節點的唯一標識。所以在同一個HTML文檔中id值不能重復。
          • 注意:表單提交數據的時候,只和name有關系,和id無關
          • id有什么作用?
          • javascript語言:可以對HTML文檔中的任何節點進行增刪改操作。
          • 獲取節點時,通常通過id來獲取節點
          • HTML文檔是一棵樹,樹上有很多節點,每一個節點都有唯一的id(DOM樹)

          16、div和span

          • div和span有什么用?
          • div和span都可以稱為圖層。
          • 有什么用?
          • 圖層的作用為了保證頁面可以靈活的布局。
          • div和span是可以定位的,只要定下div的左上角的x軸和y軸坐標即可。
          • div和span的區別?
          • di獨占一行
          • span不會獨占一行
          let str = "jiajia2023_&^%^&";
          console.log(str.match(/.+/));//匹配除換行符以外的任何單個字符
          
          let url = 'http://www.baidu.com'
          console.log(url.match(/https?:\/\/w+\.\w+\.\w+/));//['http://www.baidu.com', index: 0, input: 'http://www.baidu.com', groups: undefined]
          
          // 不能匹配換行符
          let aStr = `
          sfjsjalsjkajjnjn
          dgudjg
          `;
          console.log(aStr.match(/.+/));//['sfjsjalsjkajjnjn', index: 1, input: '\nsfjsjalsjkajjnjn\ndgudjg\n', groups: undefined]
          console.log(aStr.match(/.+/s));//s視為單行  ['\nsfjsjalsjkajjnjn\ndgudjg\n', index: 0, input: '\nsfjsjalsjkajjnjn\ndgudjg\n', groups: undefined]
          
          let tel = '010 - 4561237'
          console.log(tel.match(/\d+ - \d{7}/));//['010 - 4561237', index: 0, input: '010 - 4561237', groups: undefined]
          console.log(tel.match(/\d+\s-\s\d{7}/));//結果同上,可以用空格,也可以用\s

          主站蜘蛛池模板: 91一区二区三区| 乱子伦一区二区三区| 亚洲视频一区在线| 无遮挡免费一区二区三区| 日本免费一区二区在线观看| 国产精品一区二区三区99| 国产精品成人一区二区三区| 亚洲伦理一区二区| 在线精品亚洲一区二区小说| 欧洲精品免费一区二区三区| 无码人妻一区二区三区免费手机| 日韩精品成人一区二区三区| 国产免费一区二区三区免费视频| 免费一区二区视频| 日韩在线一区视频| 天海翼一区二区三区高清视频| 中文乱码精品一区二区三区 | 激情综合一区二区三区| 亚洲av日韩综合一区久热| 国产成人精品第一区二区| 亚洲香蕉久久一区二区| 亚洲一区二区三区不卡在线播放| 蜜桃无码一区二区三区| 精品一区二区三区东京热| 亚洲一区二区久久| 日本一区二区三区精品视频| 亚洲AV日韩AV天堂一区二区三区| 日本一区二区高清不卡| 亚洲日本一区二区一本一道| 日韩一区二区三区在线精品 | 无码日韩人妻av一区免费| 亚洲高清一区二区三区 | 精品一区二区三区免费毛片爱 | 视频一区二区三区在线观看| 精品一区二区三区在线成人| 久久国产免费一区| 久久精品一区二区三区中文字幕| 国产一区二区三区小向美奈子 | 另类一区二区三区| 色噜噜AV亚洲色一区二区| 国产免费伦精品一区二区三区|