기술자가 아닌 사람이 HTML5가 무엇인가요라고 묻는다면 어떻게 대답하시겠습니까?
새로운 HTML 사양. . .
이전에는 할 수 없었던 작업을 수행할 수 있는 놀라운 기능을 브라우저에 제공합니다. . . (정확히 말하면 브라우저에 대한 새로운 인터페이스 표준을 많이 규정해야 하고, 브라우저가 멋진 기능을 구현하도록 요구해야 합니다. Thank to Hong Maple Leaf)
브라우저에 많은 새로운 인터페이스가 노출됩니다. . .
새로운 효과가 많이 추가되었습니다. . .
질문한 사람은 실제로 질문하고 싶은 내용을 이해하지 못한 것 같습니다. 답변한 사람은 이해한 것 같았지만 뭔가 부족한 것 같았습니다. 놀라운 기능, 새로운 인터페이스, 멋진 효과, 가장 먼저 대답한 사람은 어리둥절했습니다. HTML은 무엇이며 CSS는 무엇이며 DOM은 무엇이며 JavaScript는 무엇입니까? 대부분의 프런트엔드 개발자는 이러한 기능을 매일 사용하지만 이들 간의 관계에 대해 생각하는 사람은 거의 없습니다.
우선 HTML의 정식 명칭은 Hypertext Markup Language로, 마크업 형태의 컴퓨터 언어입니다. 이 마크업 언어를 전문적인 파서에 제공함으로써 특정 인터페이스 효과를 파싱할 수 있습니다. 브라우저는 이 마크업 언어를 전문적으로 구문 분석하는 파서입니다. 최종 효과는 화면에 특정 인터페이스를 표시하는 것이며 브라우저는 각 표시를 내부 데이터 구조로 변환해야 하며 이 데이터 구조는 DOM 요소라고 말합니다. 예를 들어 태그는 브라우저 내부 세계의 HTMLAnchorElement 유형의 인스턴스입니다.
HTML 파일은 하이퍼텍스트 마크업 언어로 작성된 기사와 같습니다. 기사는 일반적으로 구조를 가지며 브라우저의 눈에는 DOM입니다. DOM은 일련의 계층적 노드 트리를 설명합니다. (그러나 이때 DOM은 여전히 브라우저 내부에 존재하며 C++ 언어로 작성되었습니다.)
역사의 발전과 함께 사람들이 더 이상 단순히 텍스트를 표시하는 것에만 만족하지 않으면 일부 텍스트에는 특별한 강조나 특별한 강조가 필요합니다. 형식에 대한 필요성이 서서히 나타났습니다. 디스플레이 효과를 제어해야 하는 사람들의 요구에 직면했을 때 가장 먼저 생각할 수 있는 가장 간단한 방법은 마커를 추가하는 것입니다. 일부 스타일 제어 태그를 추가합니다. 이때 와 같은 스타일 제어 태그가 등장했습니다. 그러나 이런 식으로 모든 표시는 두 가지 범주로 나누어집니다. 하나는 내가 무엇인지 알려주고 다른 하나는 내가 어떻게 표시하는지 알려줍니다. 이는 큰 문제가 아니며 마크업은 간단하지만 브라우저가 마크업을 구문 분석하는 것은 그리 간단하지 않습니다. 생각해보세요. 이렇게 하면 DOM은 두 개의 주요 카테고리로 나누어질 것입니다. 한 카테고리는 요소를 설명하는 DOM 노드에 속하고, 다른 카테고리는 표시 효과를 설명하는 DOM 노드에 속합니다. . DOM 노드는 요소나 디스플레이 효과를 나타낼 수 있습니다. 아무리 봐도 어색한 느낌이 듭니다.
결국 사람들은 스타일 태그를 버리고 요소 태그에 스타일 속성을 추가하기로 결정했습니다. 스타일 속성은 요소의 스타일을 제어합니다(원래 스타일 선언 구문은 매우 간단해야 합니다). 스타일 태그의 원래 속성은 이제 스타일 속성의 구문이 되었고, 스타일 태그는 스타일 속성이 되었습니다. 이렇게 하면 논리가 훨씬 더 명확해집니다. 그렇다면 다음 질문이 떠오릅니다.
기사에 수사가 너무 많으면 필연적으로 독자들의 혐오감을 불러일으킬 것입니다. 요소와 표시 효과를 모두 하나의 파일에 넣으면 확실히 읽기 어려울 것입니다.
효과가 필요한 요소가 10개라면 스타일을 10번 작성해야 하나요?
효과를 설정해야 하나요? 상위 요소 하위 요소에 어떤 영향을 미치는지
알려드리겠습니다. . . . . . . . .
비슷한 문제가 많을 텐데 CSS 규칙, css 선택기, CSS 선언, CSS 속성 등을 가져온 CSS와 Cascading 스타일 시트가 나왔습니다. , 이로써 위의 문제점을 해결합니다. 마크업 언어 계층은 해결되었지만 브라우저는 가만히 앉아서 플레이할 수 없으며 지원을 제공해야 합니다. 따라서 브라우저는 정적html 파일을 구문 분석할 때 전체 html 문서를 탐색하여 DOM 트리를 생성합니다. 모든 스타일 리소스가 로드되면 브라우저는 렌더링 트리를 구축하기 시작합니다. 프리젠테이션 트리는 일련의 CSS 선언을 기반으로 계단식 배열 후에 각 DOM 요소를 그리는 방법을 결정합니다. 이때 페이지에는 실제로 인터페이스가 표시되지 않으며 렌더링 트리도 브라우저 메모리의 데이터 구조입니다. 렌더링 트리가 완성되면 레이아웃이 시작됩니다. 이는 직사각형의 너비와 높이를 아는 것과 같습니다. 이제 캔버스에 그릴 위치와 차지하는 공간을 측정해야 합니다. 이 프로세스가 완료되면 그리기 프로세스가 되고, 그 다음에는 우리가 보는 디스플레이 인터페이스가 있습니다.
마크에 일부 효과를 추가하는 문제가 해결되었으며 역사의 수레바퀴가 다시 움직이기 시작했습니다. 점차적으로 사람들은 더 이상 단순한 디스플레이 효과에 만족하지 않고 상호작용을 원하게 됩니다. 그 당시 HTML을 작성하는 대부분의 사람들은 소프트웨어 개발을 이해하지 못했습니다. 농담입니까? 제가 활동 페이지를 작성할 때 C++를 사용하라고 했습니까? C++가 하는 일은 실제로 모기를 쫓는 대공포입니다. 즉 과잉 자격과 과소 활용입니다. 정규군이 싫어하는 일을 게릴라가 하게 하라. 이때 넷스케이프는 자바스크립트 언어를 개발했는데, 당시 자바스크립트는 지금만큼 인기가 없었다. 우주.
JavaScript는 브라우저에서 실행되는 언어입니다. HTML 텍스트는 정적 파일을 수정하는 것이 불가능하지만 브라우저 내부에서는 처리할 수 있습니다. 하지만 현재의 DOM은 C++객체가 아닙니다. JavaScript가 C++ 명령으로 변환되어 이러한 C++ 개체를 작동하거나 이러한 C++ 개체가 JavaScript 기본 개체로 패키징됩니다. 역사는 후자를 선택했고 이번에는 현대 DOM의 공식적인 탄생을 알렸습니다. 그러나 역사는 때때로 거꾸로 가고 IE는 이상하고 Edge를 포함한 그의 온 가족과 같은 역사에는 항상 몇 가지 이상한 일이 있을 것입니다.
마르크스는 사기꾼이었지만 엥겔스는 좋은 동지였습니다. 자연의 변증법과 역사적 유물론은 좋은 것입니다. 우리는 이것을 역사적인 관점에서 볼 수 있습니다. CSS, DOM, JavaScript의 출현과 발전의 궁극적인 원천은 HTML, Hypertext Markup Language입니다. 웹에 대한 사람들의 요구는 궁극적으로 HTML로 수렴됩니다. 따라서 역사가 새로운 요구를 창출할 때마다 HTML 사양에서 최종 변경이 먼저 발생합니다.
상호작용이 사람들의 요구를 충족할 수 없을 때 웹은 웹앱이라는 새로운 수요를 불러왔습니다. 새로운 요구에 부응하기 위해 가장 먼저 변경해야 할 것은 HTML 사양입니다. 현재 기존 HTML4.0은 더 이상 사람들의 증가하는 요구를 충족할 수 없습니다. 따라서 HTML5는 8년 간의 노력 끝에 탄생했습니다. 2014년에 드디어 출시되었습니다. 올해 정식으로 완성되었습니다! HTML5에는 확실히 새로운 태그가 추가되지만 기존 HTML의 경우 HTML5는 반란입니다. 이전 버전은 모두 JavaScript 인터페이스를 몇 마디로 설명했을 뿐이고 메인 공간은 태그를 정의하는 데 사용되었으며 모든 JavaScript 관련 내용은 DOM 사양에 따라 정의되었습니다. HTML5 사양은 새 태그를 사용하는 방법과 관련하여 수많은 JavaScript API를 정의합니다(그래서 일부 API는 DOM과 겹치고 브라우저가 지원해야 하는 DOM 확장을 정의합니다. 이를 통해 우리는 HTML5가 확실히 HTML의 최종 버전이 아닙니다).
위 내용은 HTML5가 무엇인지 알아보세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!