…HTML의 구문은 배우기 비교적 간단하지만… 여전히 많은 요소, 속성 및…기타 개념을 배우고 추적해야 합니다.…이 과정은 소개하기 위한 것입니다. HTML의 필수 요소에 대해 설명합니다. "...실제로 사용 가능한 모든 단일 요소와 속성을 가르치도록 설계되지 않았습니다. ... 따라서 이를 염두에 두고 몇 가지 온라인 HTML 리소스를 제공하고 싶습니다. HTML을 배우기 시작하고...나중에 자신의 페이지를 작성할 때 귀중한 참조로 사용할 수 있습니다....이제 사양 자체에서 시작하겠습니다.

그리고 이것은 당신이 확실히 북마크했어야 하는 두 개의 문서입니다....그래서 이것은 HTML5의 W3C 버전입니다....당신은 그들이 최신 퍼블리셔 버전을 가지고 있는 것을 볼 수 있습니다....당신은 갈 수 있습니다 편집자의 초안을 볼 수 있습니다,...만약 당신이 파이프 아래로 내려가는 것이 무엇인지 보고 싶습니다.…그리고, 이것은 꽤 큽니다.…아래로 스크롤하면 당신은 할 수 있습니다여기에서 "목차만 볼 수 있습니다. … 그리고 저는 모든 내용을 스크롤하지 않을 것입니다.…

이력서 자동 스크롤

업데이트됨
3/30/2017
출시된
3/16/2015

HTML은 웹을 구동하는 프로그래밍 언어입니다. 그리고 모든 언어와 마찬가지로 일단 마스터하면 간단한 웹 사이트든 복잡한 웹 애플리케이션이든 자신만의 콘텐츠를 만들 수 있습니다. 이 과정에서는 HTML 구문과 선임 직원 저자 James Williamson은 일반적인 HTML 문서의 구조를 검토하고 HTML을 사용하여 페이지를 섹션화하고 콘텐츠 형식을 지정하는 방법을 보여줍니다. , 매력적인 사용자 경험.

주제는 다음과 같습니다.

  • HTML이 왜 중요한가요?
  • HTML 문서 탐색
  • 콘텐츠 서식 지정
  • 이미지 표시
  • nav, article, div 요소 사용하기
  • 페이지 및 다운로드 가능한 콘텐츠에 대한 링크
  • 목록 만들기
  • 스타일 제어(글꼴, 색상 등)
  • 기본 스크립트 작성

: 항상 이것을 이해하고 싶었지만, 그 중요성이 너무 작아서 항상 하지 않을 이유가 있었습니다 :)

그리고 당신은 궁금해했습니다 : URL - 무엇입니까?

나는 항상 이것을 접하지만 여전히 URI, URL, URN이라는 용어의 차이점을 이해하고 싶지 않고 갑자기 게시물(불행히도 이미 망각에 빠졌습니다), 나는 결정했습니다. 나 자신을 말하고 다른 사람들에게 말하지만 위에서 언급했듯이 이것으로 아무것도 바뀌지 않지만 때로는 철자를 좋아하므로 현명한 번역가를 읽으십시오.

브라우저의 주소 표시줄에 주의를 기울인 적이 있습니까? 이게 뭐야? URI, URL 또는 URN? 우리 중 많은 사람들이 URI, URL, URN을 구분하지 않으며, 우리 중 일부는 URI와 URN이라는 용어를 들어본 적도 없습니다. 모두가 URL이라는 용어만 사용합니다. 이것을 함께 알아 내려고 노력합시다.

약어 설명

URI - Uniform Resource Identifier(Uniform Resource Identifier) 식별자자원)
URL - Uniform Resource Locator(통합 위치 찾기자원)
URN - 통일 자원 이름(uniform 이름자원)

주의, 여기 진실은 작은 것들에 있습니다. 그러나 지금까지 어떤 것도 명확하지 않습니다. 일종의 혼란입니다. 더 가자.

정의

URI: 웹에 있는 리소스의 이름과 주소를 나타냅니다. 일반적으로 URL과 URN으로 구분되므로 URL과 URN은 URI의 구성요소입니다.
URL: 웹에 있는 일부 리소스의 주소입니다. URL은 리소스의 위치와 리소스에 액세스하는 방법을 정의합니다.
URN: 웹에 있는 일부 리소스의 이름입니다. URN의 요점은 여러 특정 위치에서 찾을 수 있는 특정 항목의 이름만 정의한다는 것입니다.

구체적인 예보다 더 나은 것은 없습니다

URI = http://site/2009/09/uri-url-urn.html
URL = http://사이트
URL=/2009/09/uri-url-urn.html

합산

URI는 추상 식별자의 개념인 반면 URL과 URN은 주소와 이름의 구체적인 구현입니다.
모든 사람에게 모든 것이 명확하기를 바랍니다. 똑똑해!

우리 각자에 대한 인식은 개별적이므로 기사에 대한 의견에서 토론하고 토론을 읽으십시오. 흥미로운 것들이 많이 있습니다.

일반적으로 많은 웹마스터는 사이트가 생성된 직후 호스트에 사이트를 업로드합니다. 동시에 페이지 내부 코드의 정확성보다는 텍스트 내용의 의미의 정확성에 주로 초점을 맞춥니다.

사이트 검증

그러나 사이트의 위치에 영향을 미칠 수 있고 영향을 미치는 다른 요소가 있습니다. 그리고 여기에는 무엇보다도 기술적인 요소가 포함됩니다. 글쎄, 사이트의 유효성 검사는 또한 기술적인 것들에 속합니다. 그래서 그것은 무엇입니까?

만약 간단한 용어로, 사이트 유효성 검사는 기술 준수 및 오류에 대해 사이트 코드를 확인하는 것입니다. 예를 들어 닫는 태그인 /html을 사용하는 것을 잊었습니다. 최신 HTML5에서는 시각적으로 아무것도 변경되지 않습니다. 그러나 이것은 코드 오류입니다.

코드를 작성할 때 다른 오류가 발생할 수 있습니다. 그리고 다시, 현대의 하이퍼 마크업 언어는 많은 것을 견뎌낼 것입니다. 예를 들어 닫는 태그 /head를 "잊어버리는" 것입니다. 다시, 당신은 차이를 볼 수 없습니다. 하지만 그녀는))

사실, 웹사이트를 작성할 때 꽤 많은 실수가 있을 수 있습니다. 더군다나 이러한 오류 중 일부는 시각적으로도 나타날 수 있습니다. 글쎄, 아마도 블록이 떠 있거나 정렬되거나 다른 것이 될 것입니다. 잠재적 오류, 수천. 그리고 그들 모두가 눈에 띄는 것은 아닙니다.

위험은 무엇입니까?

글쎄요, 그게 무슨 문제가 있는 것 같습니까? 예, 종종 그러한 오류는 눈에 띄지 않는다고 말해야합니다. 또는 오히려 인간에게 보이지 않습니다. 그러나 우리 사이트의 페이지는 사람뿐만 아니라 사이트를 완전히 스캔하는 검색 스파이더도 방문할 수 있습니다. 그리고 사이트에서 발견한 모든 오류는 Yandex 또는 Google과 같은 검색 엔진의 서버로 전송됩니다.

그리고 검색 엔진은 사이트에 많은 코드 오류가 있는 것을 보고 사이트가 나쁘다고 결론을 내릴 수 있습니다. 그리고 그것은 그들이 검색에서 그것을 올리지 않을 것임을 의미합니다. 글쎄, 이것은 이미 검색에서 방문자에게 작별 인사를 의미합니다.

예, 유효성 검사 오류로 인해 사이트가 비관적으로 표시되는 경우는 매우 드물다는 점을 인정해야 합니다. 그러나 이것은 충분히 가능합니다. 즉, 유효성 검사를 수행해야 합니다. 그리고 이를 위해 무엇을 해야 합니까? 물론 첫 번째 단계는 오류를 찾는 것입니다.

그러나 수동으로 이것은 매우 시간이 많이 걸리고 신뢰할 수 없는 비즈니스이므로 오류를 검색하기 위해 다음을 사용합니다. 특별 서비스, 소위 "검증인".

유효성 검사기 마크업 유효성 검사 서비스.

이 서비스는 거의 모든 사이트를 생성할 때 대부분의 페이지의 기초가 되는 HTML 및 XHTML 코드의 정확성을 확인하고 내부 구조를 결정합니다. 이 유효성 검사기 서비스는 http://validator.w3.org 링크를 따라 액세스할 수 있습니다.

그러나 여기에는 다른 유효성 검사기에도 적용되는 전제 조건이 있습니다. 확인된 사이트 또는 확인된 페이지는 호스팅에 업로드되어야 합니다. 그렇지 않으면 유효성 검사기가 사이트 주소를 "알 수" 없고 아무것도 확인할 수 없습니다. 이제 이 유효성 검사기에서 작업하는 방법을 이미 고려할 수 있습니다.

이 서비스의 페이지에 들어가면 전체 기능 그림이 표시됩니다. 그러나 묘사되고 쓰여진 것의 대부분은 메인 체크에 적용되지 않으며, 체크되는 페이지의 주소에 대한 입력 창에만 모든 주의를 기울여야 합니다:

바로 시작해야 하는 부분입니다.

실제로, 사이트의 유효성을 확인하는 것은 우리의 전체 필멸의 세계와 마찬가지로 매우 간단합니다. 서비스의 주소 창에서 사이트 주소를 작성해야 합니다. URL을 클릭한 다음 "확인"을 클릭합니다. 이러한 간단한 작업 후 유효성 검사기는 몇 초 동안 "퍼프"하고 다음을 발행합니다.

이것은 페이지 코드에 오류가 없으며 절대적으로 침착할 수 있음을 의미합니다.

그러나 다음과 같은 바람직하지 않은 옵션도 있을 수 있습니다.

이것은 이미 더 나쁘고 확인 중인 페이지의 내부 코드에 약간의 오류가 있음을 의미합니다. 그러나 이것은 전혀 치명적이지 않습니다. 아래 페이지를 스크롤하기만 하면 확인 프로세스 중에 발견된 모든 오류가 거기에 자세히 기록됩니다.

또한 유효성 검사기는 발견된 오류를 나열할 뿐만 아니라 이러한 오류가 있는 내부 코드의 행을 정확하게 표시합니다. 따라서 오랫동안 찾을 필요가 없습니다. 과장하지 않고 이 검증자가 완벽하게 작동한다고 단호하게 말할 수 있습니다.

그러나 그것이 전부는 아닙니다. 유효성 검사기는 감지된 코드 오류의 위치를 ​​나타낼 뿐만 아니라 이러한 오류를 제거하는 방법에 대한 완전한 권장 사항도 제공합니다. 물론, 이것을 위해 당신은 게으르게 쓰여진 모든 것을 주의 깊게 읽을 필요가 없습니다.

짧고 일반화된 결론으로 ​​다음과 같이 말할 수 있습니다.

  1. 이 유효성 검사기 서비스는 훌륭하게 작동하며 사이트를 매우 빠르게 확인할 수 있습니다.
  2. 글쎄, 작지만 아주 좋은 추가 사항: 사이트 유효성 검사는 무료입니다.
  3. 이제 다음 단계로 넘어갈 수 있습니다. CSS 코드를 확인하는 것입니다.

CSS 유효성 검사 서비스

일반적으로 위 서비스의 두 번째 기능이지만 HTML 및 XHTML 코드를 확인하기 위한 것이 아니라 특히 코드의 정확성을 확인하기 위해 "날카롭게" 합니다. CSS 스타일외부 테이블에 있습니다. 그리고 서비스 페이지로 이동하려면 http://jigsaw.w3.org/css-validator 링크를 따라가야 합니다.

그건 그렇고, 여기에 즐거운 점을 주목할 가치가 있습니다.이 서비스를 확인하는 것은 절대적으로 무료입니다. 따라서 지갑에서 돈을 꺼내지 마십시오. 적절한 순간까지 그대로 두십시오. 그러나 이 두 번째 서비스를 작업하는 방법론으로 넘어가 보겠습니다.

일반적으로 CSS 유효성 검사기의 모든 작업은 코드 청결도를 확인하는 것과 완전히 동일합니다. 따라서 유효성 검사기의 주소 표시줄에 대한 별도의 이미지를 제공할 필요가 없습니다. 조금 더 낮추면 수표 자체의 순서를 간단히 고려할 것입니다.

이를 위해 당신은 할 필요가 주소 표시 줄"http://my site/style.css"와 같은 CSS 테이블의 URL을 기록한 다음 러시아어로 "확인"이라고 표시된 버튼을 클릭합니다. 따라서 이 유효성 검사기는 몇 초 동안 "퍼프"하고 원하는 결과를 제공합니다.

이것은 CSS 테이블이 올바르게 작성되었으며 오류가 발견되지 않았음을 의미합니다.

그리고 여기에 즐거운 놀라움도 있습니다. 페이지를 조금 더 아래로 스크롤하면 CSS 테이블에 최적화된 코드가 거기에 작성되어 불필요한 비문이 모두 제거되고 모든 코드 태그가 순서대로 정렬됩니다. 모두의 최적의 작업 요구 사항을 충족하는 검색 엔진. 남은 것은 이 완벽한 코드 샘플을 복사하여 CSS 테이블에 붙여넣는 것뿐입니다.

다음과 같은 일이 발생할 수 있습니다.

즉, CSS 코드에서 일부 오류가 발견되었지만 이를 전혀 두려워해서는 안 됩니다. 그 빨간 선 바로 아래에 유효성 검사기가 철자가 틀린 태그를 정확히 알려줄 것입니다. 스타일 시트에서 이러한 태그를 찾고 필요한 수정만 하면 됩니다.

물론 그 이후에 수정된 스타일 시트를 호스트에 업로드 하고 초록색 선이 있으면 최적화된 CSS 테이블 스타일 코드를 행복하게 복사할 수 있습니다. 그렇다면 변경하는 것이 가장 좋습니다. 오래된 코드새롭고 최적화된 것으로.

간단한 요약.

가장 기본적이고 필수적인 두 가지 웹사이트 유효성 검사는 위에서 논의되었습니다. 이러한 검사가 없으면 robots.txt에서 검색 엔진에 대한 인덱싱을 열지 않아야 합니다. 그렇지 않으면 사이트가 인덱싱을 위해 무시될 수 있습니다. 검색 엔진적절한 제재를 가하면 결함이 있는 것으로 간주됩니다.

이러한 일이 발생하지 않도록 하려면 사이트와 모든 페이지의 기술적 상태에 대해 절대적으로 침착하고 완전히 확신하는 데 몇 분만 투자해야 합니다. 물론 링크와 앵커에 대한 추가 점검, 모바일 기기에서의 사이트 가시성, 기타 코드의 매개변수도 필요합니다. 그래야만 사이트가 완전한 기능과 성공 및 빠른 승진탑에서.

다른 모든 검사는 위에서 논의한 것만큼 빠르고 간단하다는 것을 미리 말씀드리고 싶습니다. 유효성 검사기와 작업하는 절차를 주의 깊게 읽어야 합니다.

2018년 4월 19일에 추가됨

HTML 코드 유효성 검사 시 일반적인 유효성 오류

기사를 업데이트하기로 결정했습니다. HTML 오류사이트에서 자주 발견되는 코드. 어쨌든, 나는 그것들을 많이 가지고 있었다)). 유효성 검사기는 오류를 노란색으로 강조 표시합니다.

1) 오류: 문자 참조가 세미콜론으로 끝나지 않았습니다.


오류: 문자가 세미콜론으로 중단되지 않았으므로 추가해야 합니다.

2) 경고: 섹션에 제목이 없습니다. 모든 섹션에 식별 제목을 추가하려면 h2-h6 요소를 사용하는 것이 좋습니다.


경고: 이 섹션에는 제목이 없습니다. 모든 섹션에 식별 제목을 추가하려면 h2-h6 요소를 사용하는 것이 좋습니다. 모든 것이 명확합니다. 최소한 하나의 자막을 추가해야 합니다. 이것은 실수가 아니라 권장 사항입니다.

3) 오류: 요소 noindex는 이 컨텍스트에서 요소 p의 자식으로 허용되지 않습니다.


오류: noindex 요소는 다음으로 허용되지 않습니다. 자식 요소이 컨텍스트에서 p 요소입니다. (이 하위 트리에서 추가 오류를 억제합니다.)
해결책은 간단합니다. noindex 태그를 주석 처리해야 합니다. 보기는 다음과 같습니다.

4) 오류: 중앙 요소가 더 이상 사용되지 않습니다.

오류: "center" 태그가 구식입니다. img에 대해 이야기하는 경우 교체해야 합니다. 그러면 align 속성을 사용할 수 있습니다. 다른 것이 중앙에 있으면 div로 바꿉니다.

5) img 요소는 특정 조건을 제외하고 alt 속성을 가져야 합니다.


오류: img 요소에는 alt 속성이 있어야 합니다. 여기서 모든 것이 명확합니다. alt 속성을 추가해야 합니다. 비어 있는 경우에도 오류가 사라집니다.

6) td 요소의 너비 속성이 더 이상 사용되지 않습니다. 대신 CSS를 사용하십시오.

오류: 'td' 요소의 'width' 속성은 더 이상 사용되지 않습니다.

7) 자바스크립트 리소스에는 type 속성이 필요하지 않습니다.


오류: 자바스크립트 리소스에는 type 속성이 필요하지 않습니다. 해결책은 단순히 불필요한 모든 것을 제거하고 "스크립트" 태그만 남겨두는 것입니다.

8) img 요소의 align 속성이 더 이상 사용되지 않습니다.


오류: img 요소의 align 속성은 더 이상 사용되지 않습니다. 이미지 정렬 div를 만듭니다.

ResourceBundle.Control 클래스에는 번들을 검색하고 로드할 때 ResourceBundle.getBundle() 메소드에 의해 호출되는 외부 메소드 세트가 있습니다. Control 클래스를 만든 후에는 기본 로드 및 캐싱 동작을 변경할 수 있습니다.

이 경우 Control 클래스의 두 가지 메서드인 getFormats() 및 newBundle() 구현을 만들어야 합니다. getFormats() 메서드는 유지 관리를 담당합니다. XML 형식, 그리고 newBundle()은 리소스 번들에서 작동합니다. 기본 Control 클래스에는 기본 세트 이름을 실제 리소스 이름으로 변환하는 도우미 메서드가 있습니다.

ResourceBundle.Control 클래스의 이 구현에는 XMLResourceBundle 의 하위 클래스가 포함됩니다. 이 하위 클래스는 다음에서 데이터를 로드하는 데 사용됩니다. XML 파일 ResourceBundle 메서드에서 사용합니다.

다음은 Control 클래스와 ResourceBundle 메서드의 구현에 대한 설명입니다.

가져오기 java.io.*;
가져오기 java.net.*;
가져오기 java.util.*;

Public 클래스 XMLResourceBundleControl은 ResourceBundle.Control(
개인 정적 문자열 XML = "xml" ;

공개 목록 getFormats(문자열 baseName)(
Collections.singletonList(XML) 반환 ;
}

Public ResourceBundle newBundle( 문자열 baseName, 로케일 로케일,
문자열 형식, ClassLoader 로더,
부울 다시 로드)
던지다 IllegalAccessException, InstantiationException, IOException{
if ((baseName == null ) || (locale == null ) || (형식 == null )
|| (로더 == null )) (
새로운 NullPointerException() 던지기;
}
리소스 번들 번들 = null ;
if (format.equals(XML))(
문자열 번들 이름 = toBundleName(baseName, 로케일) ;
문자열 리소스 이름 = toResourceName
(번들 이름, 형식) ;
URL= loader.getResource
(리소스명) ;
if (url != null ) (
URLConnection 연결 = url.openConnection() ;
if (연결 != null ) (
if (다시 로드) (
연결.setUseCaches(거짓) ;
}
InputStream 스트림 = connection.getInputStream() ;
if (스트림 != null ) (
BufferedInputStream bis = 새로운 BufferedInputStream(
개울);
번들 = 새로운 XMLResourceBundle(bis) ;
bis.close();
}
}
}
}
반품 번들;
}

개인 정적 클래스 XMLResourceBundle은 ResourceBundle(
개인 속성 소품;

XMLResourceBundle(InputStream 스트림)은 IOException(
소품 = 새 속성();
props.loadFromXML(스트림) ;
}

보호 개체 handleGetObject(문자열 키)(
props.getProperty(key) 반환 ;
}

공개 열거 getKeys()(
handleKeys = props.stringPropertyNames 설정() ;
컬렉션 반환 열거형(handleKeys) ;
}
}

공개 정적 무효 메인(문자열 인수)(
("테스트2" ,
새로운 XMLResourceBundleControl()) ;
= 번들.getString
("도움말 키") ;
System.out.println("도움말 키: " + 문자열 ) ;
}
}

이 구현에는 3줄 테스트 프로그램이 포함됩니다.

ResourceBundle 번들 = ResourceBundle.getBundle("Test2", 새로운 XMLResourceBundleControl()) ;
문자열 문자열 = 번들.getString
("도움말 키") ;
System.out.println("도움말 키: " + 문자열 ) ;

여기서 가장 흥미로운 것은 첫 번째 줄입니다. 컨트롤을 getBundle() 메서드에 전달해야 합니다. 그 후에는 다른 경우와 마찬가지로 세트를 사용할 수 있습니다.

다음은 예제 XML 파일 Test2.xml입니다.

http://java.sun.com/dtd/properties.dtd" > 확인 취소 돕다 아니요

XMLResourceBundleControl 프로그램을 실행한 결과는 다음과 같습니다.

> 자바 XMLResourceBundleControl HelpKey: 도움말

위의 구현은 getTimeToLive() 및 needsReload() 메서드를 사용하지 않습니다.

공개 긴 getTimeToLive( 문자열 baseName, 로케일 로케일)

공개 부울 필요Reload( 문자열 기본 이름,
장소,
문자열 형식,
클래스 로더,
리소스 번들,
긴 loadTime )

getTimeToLive() 메서드는 ResourceBundle.Control 로 생성된 리소스 번들의 수명을 반환합니다. 리소스 세트는 다시 로드 프로세스의 속도를 높이기 위해 캐시됩니다. 따라서 세트를 다시 로드할 때 캐시에 있습니다. 양수 TTL(Time-to-Live) 값은 재검증 없이 세트가 캐시에 남아 있는 시간을 밀리초 단위로 설정합니다. getTimeToLive() 메서드가 반환하는 기본값은 TTL_NO_EXPIRATION_CONTROL이며 캐시 만료 검사를 비활성화합니다. 세트를 캐시하지 않으려면 TTL_DONT_CACHE를 반환하십시오. 반환 값이 0이면 번들은 캐시되지만 getBundle() 메서드가 호출될 때마다 확인됩니다. 캐시를 지우려면 ResourceBundle 클래스의 정적 clearCache() 메서드를 호출합니다. 특정 로더에 의해 생성된 캐시를 지울 수 있는 선택적 ClassLoader 인수가 있습니다.

needReload() 메서드는 캐시된 집합을 다시 로드해야 하는지 여부를 결정합니다. true 값은 세트를 다시 로드해야 함을 의미하고 false 값은 다시 로드할 필요가 없음을 의미합니다. NeedReload() 메서드를 오버로드하여 리소스 세트를 다시 로드해야 하는지 여부를 제어할 수 있습니다. 예를 들어 리소스 세트가 항상 다시 로드되도록 하려면 needsReload() 메서드가 항상 true 를 반환해야 합니다. 이 경우 getTimeToLive() 메서드는 항상 값 0을 반환해야 합니다. 그렇지 않으면 세트가 예상보다 오래 지속됩니다.

얻기 위해 추가 정보 Mustang의 국제화 프로세스 개선 사항에 대한 정보는 다음에서 Sun Software Developer의 블로그인 John Okoner를 참조하십시오.