HTML의 숨겨진 기능


110

HTML이 가장 널리 사용되는 언어 (적어도 마크 업 언어로서)는 정당한 평가를받지 못했습니다.
수년 동안 사용되어 왔음을 고려할 때 FORM / INPUT 컨트롤과 같은 것은 새로운 컨트롤이 추가되지 않은 채 여전히 동일하게 유지되었습니다.

따라서 적어도 기존 기능 중에서 잘 알려지지 않았지만 매우 유용한 기능을 알고 있습니까 ?

물론이 질문은 다음과 같습니다.

JavaScript의
숨겨진 기능 CSS의
숨겨진 기능 C #의
숨겨진 기능 VB.NET의
숨겨진 기능 Java의
숨겨진 기능 클래식 ASP의
숨겨진 기능 ASP.NET의
숨겨진 기능 Python의
숨겨진 기능 TextPad의
숨겨진 기능 Eclipse의 숨겨진 기능

HTML 5.0의 기능은 작업 초안 에 있으므로 언급하지 마십시오.

답변 당 하나의 기능을 지정하십시오 .

답변:


244

프로토콜 독립적 절대 경로 사용 :

<img src="//domain.com/img/logo.png"/>

브라우저가 HTTPS를 통해 SSL로 페이지를 보는 경우 https 프로토콜을 사용하여 해당 자산을 요청하고 그렇지 않으면 HTTP를 사용하여 요청합니다.

이렇게하면 IE에서 "이 페이지에 보안 항목과 비보안 항목이 모두 포함되어 있습니다."라는 끔찍한 오류 메시지를 방지하여 모든 자산 요청을 동일한 프로토콜 내에 유지합니다.

주의 사항 : 스타일 시트의 <link> 또는 @import에서 사용하면 IE7 및 IE8 에서 파일을 두 번 다운로드합니다 . 그러나 다른 모든 용도는 괜찮습니다.


29
이는 HTML 기능이 아니라 URL / URI 기능입니다.
Gumbo

44
@Gumbo : 사실, 그것은 URI 기능이지만 규칙을 구부리고 여기에 포함시키기에 충분하다고 생각했습니다. 그리고 조만간 URI 사양의 숨겨진 기능을 기대하지 않습니다. :)
Paul Irish

2
하나의 슬래시는 프로토콜 부분이 아니라 도메인 부분에 상대적입니다.
SztupY

2
IE는 엄청나게 멍청합니다! 도대체 왜 파일을 두 번 DL합니까?

5
한 가지 큰 단점이 있습니다. 파일을 디스크에 저장하고 file:프로토콜을 사용하여 액세스 하면 브라우저가 리소스 (예 : CDN 또는 다른 외부 서버)를 찾을 수 없습니다.
Marcel Korpel

138

레이블 태그는 "for"속성을 사용하여 레이블을 양식 요소와 논리적으로 연결합니다. 대부분의 브라우저는이를 관련 양식 요소를 활성화하는 링크로 바꿉니다.

<label for="fiscalYear">Fiscal Year</label>
<input name="fiscalYear" type="text" id="fiscalYear"/>

24
예, 얼마나 적은 사이트가 이것을 적극적으로 사용하는지 놀랍습니다. 내가 JS를 사용하는 사이트가 ...이 일을 보았다
보리스 CALLENS

2
아주 최근에 이것을 발견했습니다.
Arnis Lapsa

4
cagdas, HTML에는 실제로 숨겨진 기능이 없으며 지정된 표준입니다.
eyelidlessness

54
대답을 확장하려면 입력을 레이블로 감싸고 for 속성을 생략 할 수도 있습니다. <label> 회계 연도 <input name = "fiscalYear"type = "text"/> </ label>
눈꺼풀 없음

32
체크 박스와 라디오 버튼을 사용하지 않는 것은 범죄입니다.
Kornel

136

(IE, Firefox 및 Safari) 의 contentEditable 속성

<table>
    <tr>
      <td><div contenteditable="true">This text can be edited<div></td>
      <td><div contenteditable="true">This text can be edited<div></td>
    </tr>
</table>

이렇게하면 셀을 편집 할 수 있습니다! 어서 그것을 시도 당신이 저를 믿지 않는 경우.


7
질문은 HTML5에 의해 도입되지 않은 기능을 요구합니다
Quentin

15
David Dorward, IE 5.5에서 MS에 의해 contentEditable이 도입 되었기 때문에 HTML5와 함께 도입되었다고 말하는 것은 정확하지 않습니다.하지만 그렇습니다. HTML5까지 표준화되지 않았습니다. Tyson & Steve, contentEditable은 버전 2.0에서 Safari에 도입되었지만 많은 중요한 서식 지정 방법이 3.x까지 추가되지 않았습니다. Victor H Valle은 doctype에 따라 다릅니다. HTML 4는 접었을 때 = "true"로 확장되어야합니다.
eyelidlessness

2
이 링크를 시도 적절한 예로 이어질하지 않습니다
고든 구스타프손에게

4
@Binoj-절대 아닙니다. -는 "의 contentEditable 속성은 그 키워드 빈 문자열, 사실과 거짓 열거 속성입니다" w3.org/TR/html5/editing.html
쿠엔틴

2
더 좋은 방법은 현재 웹 페이지를 편집 할 수 있도록 다음을 북마크릿으로 추가하는 것입니다. javascript : document.body.contentEditable = 'true'; document.designMode = 'on'; void (0);
Amro

102

optgroup 태그 는 사람들이 자주 사용하지 않는 기능 중 하나 라고 생각합니다 . 내가 말하는 대부분의 사람들은 그것이 존재한다는 것을 깨닫지 못하는 경향이 있습니다.

예:

<select>
  <optgroup label="Swedish Cars">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
  </optgroup>
  <optgroup label="German Cars">
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </optgroup>
</select>

불행히도 메뉴 계층 구조의 브라우저 구현은 많이 필요합니다. 관련 사용 사례가 거의 없기 때문에 optgroup이 많이 사용되지 않는다고 생각합니다.
eyelidlessness

1
모든 브라우저에서 한 수준이 지원되어야합니다. 포럼 목록을 메인 페이지에서 사용되는 것과 동일한 섹션으로 나누기 위해 일부 화면에서 사용하는 다른 웹 포럼입니다.
staticsan 09

@staticsan. 여러 항목의 작은 분류에 유용하다는 데 동의합니다.
RichardOD

5
@eyelidlessness : 요소를 들여 쓰거나 ---category---. 와 같은 '헤더'텍스트를 사용하는 드롭 다운이 항상 표시 됩니다.
DisgruntledGoat

4
이것은 내가 몰랐던 깔끔한 기능입니다!
Chrisb

100

내가 가장 좋아하는 부분은 라우팅이나 URL 재 작성을 사용하려는 경우 생명의 은인 인 기본 태그입니다.

다음 위치에 있다고 가정 해 보겠습니다.

www.anypage.com/folder/subfolder/

다음은이 페이지의 링크에 대한 코드 및 결과입니다.

일반 앵커 :

<a href="test.html">Click here</a>

으로 이끌다

www.anypage.com/folder/subfolder/test.html

이제 기본 태그를 추가하면

<base href="http://www.anypage.com/" />
<a href="test.html">Click here</a>

앵커는 이제 다음으로 이어집니다.

www.anypage.com/test.html

48
선행 슬래시와 함께 /images/image.png를 사용할 수도 있습니다. :-)
molf

46
기본 태그는 핵 옵션입니다. #define과 동일합니다. 추적하지 않으면 향후 개발자에게 명확하게 알리고 사이트 아키텍처의 매우 낮은 수준의 일부로 만들면 실망 할 수 있습니다. 분명하지 않은 버그. 나는 이것을 필요로 하지 않았고 ,주의해서 사용하십시오.
annakata

2
예, CSS 파일을 페이지에 동적으로로드하려고 할 때 기본 태그가 내 JavaScript를 방해하는 것을 보았습니다. 또한 IE6의 버그로 인해 잘못된 태그 (</ base>)를 명시 적으로 닫아야합니다. 조건부 주석이 도움이 될 수 있습니다.
avdgaag 2009-06-05

4
기본 URL은 상대 URL 경로뿐만 아니라 모든 상대 URL에 적용됩니다. 따라서 참조 #top는 루트 인덱스 문서에서 "top"으로 확인되고 동일한 문서에서 "top"으로 확인됩니다.
Gumbo

17
이 기능은 '소스보기'와 함께 작업하기 위해 페이지의 HTML을 다운로드해야하는 상황에서 매우 편리합니다. 소스가 다운로드되면 적절한 href 속성을 사용하여 BASE 요소를 추가 할 수 있습니다. 이렇게하면 소스 HTML 만 다운로드 한 후 로컬에서 작업 할 수 있습니다. 모든 javascript, css 및 이미지를 다운로드 할 필요가 없습니다.
Andy Ford

99
<img onerror="{javascript}" />

onerror 작은 적십자 (IE에서) 그림이 표시되기 직전에 실행되는 JavaScript 이벤트입니다.

이를 사용하여 깨진 이미지를 유효한 대체 콘텐츠로 대체하는 스크립트를 작성할 수 있으므로 사용자가 적십자 문제를 처리 할 필요가 없습니다.

첫눈에 이것은 완전히 쓸모없는 것으로 보일 수 있습니다. 왜냐하면 이미지가 처음에 사용 가능했는지 이전에 알지 못했습니까? 그러나 고려해 보면 이것에 대한 완벽한 유효한 응용 프로그램이 있습니다. 예를 들어, 제어하지 않는 타사 리소스의 이미지를 제공한다고 가정합니다. 여기에있는 gravatar와 마찬가지로 http://www.gravatar.com/ 에서 제공됩니다. http://www.gravatar.com/ 에서 제공됩니다. http://www.gravatar.com/ 은 신뢰할 수 있지만 stackoverflow 팀이 전혀 제어하지 않는 리소스입니다. 경우 http://www.gravatar.com/가 다운되면, 유래는 사용하여이 문제를 해결 수 있습니다 onerror.


아하 ...이게 그렇게 생각한다면 내가 진정으로 필요할 때이 사실을 더 일찍 알아야합니다. : /
Arnis Lapsa

명확히하기 위해 onerror는 이미지로드에 실패 할 때 작업을 수행 할 수있는 자바 스크립트 이벤트 (onclick과 유사)입니다.
Jehiah

1
Daniel Silveira, 실제로 깨진 (예 : 404) 이미지의 경우 오류 코드가 실행된다는 점을 명확히 하시겠습니까? 어쨌든 이것은 HTML 기능 자체가 아니라 DOM 기능입니다.
eyelidlessness

2
나는 존재하지 않는 이미지, 재귀적인 사람을 가리키는이 하나를 사용했습니다. ??
Pharabus

96

<kbd>키보드 입력을위한 마크 업에 대 한 요소

Ctrl+ Alt+Del


다른 글꼴 형식 외에 <kbd>에 특별한 것이 있습니까? 여기에 다른 서식 태그 목록이 없다면? w3schools.com/tags/tag_phrase_elements.asp
귀하의 친구 Ken

특히, 잘 알려지지 않은 것 같습니다
Russ Cam

3
기본적으로는 아무것도 없지만 SO처럼 CSS로 요소를 마크 업하는 것이 더 깔끔합니다.
Agent_9191

1
그것이 존재한다는 것을 몰랐습니다. 그것은 재미 있습니다.
Kzqai 2010-06-25

85
<blink>

사이트에서 중요한 모든 것에 사용되어야합니다. 대부분의 중요한 사이트는 모든 콘텐츠를 깜박입니다.

<marquee>

사실적인 스크롤 효과를 만들어 전자 책 등에 적합합니다.

편집 : 이지업 친구들, 이것은 단지 유머에 대한 시도였습니다.


62
아마도 우리 숨기고 싶은 기능을 나열해서는 안된다는 질문을해야 할 것 입니다.
Ben Blank

12
... div 표시 코드에 대한 의사 터미널 스타일링의 일부로 <blink>를 사용했습니다 (: before {content : "drthomas @ house : ~ $";} : after {content : "_"; text -decoration : 깜박임;} ... 그것은 굉장했다 아마 도움을 요청해야 =]..
다윗이 분석 재개 모니카 말한다

2
<marquee> <blink> 역대 가장 성가신 HTML 태그 !!! </ blink> </ marquee> 이들은 숨겨져 있지 않으며 이유 때문에 사용되지 않습니다.
Your Friend Ken

2
내가 그저
멋있기

3
부디. <blink>의 유일한 합법적 인 사용은 Schroedinger의 고양이가 죽지 <blink> 아닙니다 </ blink>. (나는이 XKCD에 줄 알았는데,하지만 난 그 순간에 그것을 찾을 수 없습니다.)
크리스토퍼 Creutzig

84

잘 알려져 있지는 않지만 lowsrc이미지를 lowsrc로드하는 동안 표시 할 이미지를 지정할 수 있습니다 src.

<img lowsrc="monkey_preview.png" src="monkey.png" />

인터레이스 이미지 를 좋아하지 않는 사람들에게 좋은 옵션입니다 .

약간의 퀴즈 : 한때이 속성은 2000 년경 Hotmail악용 하는 데 사용될 정도로 모호했습니다 .


나는 몰랐다. 애니메이션 "로드"에 사용할 수 있습니까?
보리스 CALLENS

2
Opera에서 "Hotmail 악용"링크에서 사기 경고를 받았습니다. : o
jrista

2
그것은 보안 웹 사이트이고 안전합니다.
Joey Robert

27
그러나이 속성은 독점적입니다. msdn.microsoft.com/library/ms534138(VS.85).aspx
Gumbo

17
이 속성은 HTML4 이후로 더 이상 사용되지 않습니다. 프로덕션 웹 사이트에서 사용해서는 안됩니다.
Ben Hull

67

DELINS삭제 및 삽입 내용을 표시합니다 :

HTML <del>sucks</del> <ins>rocks</ins>!

10
확실히 충분히 사용되지 않았습니다.
눈꺼풀 없음 2009-06-06

2
@ 눈꺼풀 없음 : 삭제 / 삽입 된 텍스트 표시가 그다지 유용한 상황은 충분하지 않습니다.
DisgruntledGoat

2
I에 유래를 사용할 것을 맹세 할 수 <ins>그리고 <del>잠시 뒤 어떤 시점에서 개정 페이지에,하지만 지금은 사용 <span class="diff-add">하고 <span class="diff-delete">. :(
시스템 PAUSE

1
@DisgruntledGoat 위키 개정 내역? 그것에 대한 사용 사례의 많음
HorusKol

3
@Horus : 확실히 당신은 용도를 찾을 수 있지만 여전히 엄청난 양의 상황이 아닌 것들의 거대한 계획에서.
DisgruntledGoat

58

버튼 태그는 새로운 input submit태그와 많은 사람들이 아직 익숙하지 않은. 예를 들어 버튼의 텍스트는 버튼 태그를 사용하여 스타일을 지정할 수 있습니다.

<button>
    <b>Click</b><br />
    Me!
</button>

두 줄로 된 버튼을 렌더링합니다. 첫 번째 줄 은 굵게 " Click "이고 두 번째 줄은 "Me!"입니다. 여기에서 시도해보십시오 .


15
IE <8에서 깨져서 부끄러운 일입니다. 문제를 해결하는 것은 가능하지만 고통 스러울 수 있으며 때로는 웹 서버와 서버 측 프로그래밍 환경 사이에서 실행되는 보안 보호 기능을 사용합니다.
Quentin

6
그러나 IE <8은 값이 아닌 요소의 내용을 제출합니다. 일부 버전은 클릭하지 않았더라도 항상 성공적인 컨트롤로 취급 할 것이라고 생각합니다.
Quentin

4
그리고 <button contenteditable>로 만들면 버튼 텍스트도 변경할 수 있습니다! 유효한 용도를 찾을 수있는 모든 사람을 가리 킵니다. :)
Gavin

4
"입력"유형의 제출이있는 이유를 이해하지 못했습니다. 아무것도 입력하지 않고 다른 필드에 입력 한 내용 만 제출합니다.
DisgruntledGoat

3
@DisgruntledGoat : 이름 / 값 쌍이 실제로 전송됩니다. 양식에 하나 이상의 버튼 (예 : 편집, 삭제, 이동 등)이 있고 누른 버튼을 구별하려는 경우 유용합니다. 불행히도 buttonIE <8 에서는 동일하지 않으며 놀랍게도 모든 button요소 의 이름 / 값 쌍을 보냅니다 .
BalusC 2009

56

인쇄용 CSS 지정

<link type="text/css" rel="stylesheet" href="screen.css" media="screen" />
<link type="text/css" rel="stylesheet" href="print.css"  media="print" />

1
몇 주 전에 발견
Daniel Moura

41
정말 숨겨진 이모가 아닙니다.
Dmitri Farkov

이것은 일반적으로 사용됩니다.
UpTheCreek

이전에이 처리하지 않은 경우, 나는 당신이 ... 전에 생산 웹 사이트를하지 않았 희망
Kzqai

이것이 어떻게 숨겨진 것으로 간주 될 수 있습니까?
Marin

54

<dl> <dt><dd>항목은 종종 잊어 그들은 정의 목록, 정의 용어 및 정의를 위해 서있다.

정렬되지 않은 목록 ( <ul>) 과 유사하게 작동 하지만 단일 항목 대신 키 / 값 목록과 비슷합니다.

<dl>
  <dt>What</dt><dd>An Example</dd>
  <dt>Why</dt><dd>Examples are good</dd>
</dl>

또한 dl / dt / dd 의미 체계는 유사한 목록에 적합합니다 (예 : 대화에 구조가 권장 됨).
눈꺼풀 없음 2009-06-06

2
기본 프레젠테이션은 그다지 좋지 않지만 사람들은 CSS를 사용하여 여러 가지 방법으로 요소의 스타일을 지정할 수 있다는 사실을 잊어 버립니다.
DisgruntledGoat

18
자주 잊혀지는 더 흥미로운 점은 형식이 키 / 값 / 값 / 값 / 값 / 키 / 값이라는 것입니다.
Quentin

1
@D_N, 나는 제안 된 사용 이 그것과 분리되고 모순되는 것이 아니라 정의와 의미론 의 일부 라고 생각하는 것이라고 생각 합니다.
눈꺼풀 없음 2010-06-03

1
@D_N 및 @eyelidlessness - 의미 론적으로 대화를 마크 업에 브루스 로손의 노트 체크 아웃 ... 플러스 배심원은 HTML5 대화 요소 ...에서 여전히 brucelawson.co.uk/2006/...
펜톤

52

정확히 숨겨져 있지는 않지만 (그리고 이것은 IE의 잘못입니다) 내 취향에 맞는 thead, tbody, tfoot 에 대해 아는 사람이 충분하지 않습니다 . 그리고 얼마나 많은 사람들이 tfoot이 마크 업에서 tbody 위에 나타나야한다는 것을 알고 있습니까?


1
boris callens, 그래, thead, tbody 및 tfoot이 없으면 tbody가 암시됩니다.
눈꺼풀 없음 2009-06-06

2
IE5가 TBODY를 제대로 구현했다면 더 많은 사람들이 사용할 것입니다. 이것은 몇 년 전의 주요 문제였습니다. Mozilla와 Opera는 정말 멋진 스크롤링 TBODY를 지원했습니다. 불행히도 IE5는 그렇지 않았습니다.
staticsan 09

9
그들은이를 넣어야하기 때문에 인쇄 할 때 유용하다 theadtfoot각 페이지의 상단과 하단에. thead긴 테이블이있을 때 브라우저에서 반복 할 메커니즘이 없다는 것은 안타까운 일입니다.
DisgruntledGoat

1
나는 tfoot이 tbody보다 높은 것을 알고 있었고 그것은 꽤 멍청하다고 생각합니다. 나는 내 tfoot을 아래에 놓았고, 그것이 의미가있는 곳에, 검증 자 오류를 얻었고, tfoot을 tbody 위로 옮겼습니다 (혼란 스럽지만 항상 준수 함), 그리고 무엇을 추측합니까?! 표를 강조 표시하려고 할 때 브라우저 (최소 FF)는 발이 신체 아래에 있더라도 신체 앞의 발을 강조 표시합니다! 그리고!!! 텍스트 편집기에 복사하면 시각적으로 본문 위에 있습니다. 완전히 임의적 인 규칙.
Anthony

3
@Anthony : 연결 속도가 느리면 표 내용이로드되는 동안 모든 머리글과 바닥 글을 볼 수 있다는 의미입니다.
me_and dec

50

wbr또는 워드 브레이크 태그입니다. Quirksmode에서 :

(단어 나누기)는 "브라우저가 원할 경우 여기에 줄 바꿈을 삽입 할 수 있습니다."를 의미합니다. 브라우저는 줄 바꿈이 필요하다고 생각하지 않습니다.

<div class="name">getElements<wbr>ByTagName()</div>

브라우저에 줄 바꿈을 추가하는 옵션을 제공합니다. 테이블에 충분한 공간이있는 매우 큰 해상도에서는 필요하지 않습니다. 그러나 더 작은 해상도에서는 전략적으로 배치 된 줄 바꿈으로 인해 테이블이 창보다 커지는 것을 막아 수평 스크롤바가 발생합니다.

&shy;동일한 페이지에 언급 된 HTML 엔티티 도 있습니다 . 이것은 wbr나누기가 삽입 될 때 하이픈 (- )이 추가되어 나누기를 나타냅니다. 그것이 인쇄 된 방식과 비슷합니다.

예 :

TextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextText


2
이것에 열악한 브라우저 지원이 있기 때문에 조심하십시오
Christophe Eblé

7
"IE8 as IE8"은 지원하지 않으며 Windows 용 Safari 3.0에서는 버그가 있습니다. 그 지원 외에는 꽤 좋습니다. 링크의 호환성 차트를 참조하십시오.
aleemb

흠 사이트 포인트 참조가이 태그를 더 이상 사용되지 않고 쓸모없는 것으로 표시했습니다. 누가 맞습니까? reference.sitepoint.com/html/wbr
크리스토프 Eblé

HTML 사양의 일부로 더 이상 사용되지 않을 수 있지만 브라우저에서는 여전히 작동합니다. 의심스러운 경우에는 QuirksMode 평결 (현재 Google에서 후원하는 호환성 표)을 따르십시오.
aleemb 06.05.09

이것이 다음 CSS 표준에 포함하기에 매우 유용한 것 같습니다!
제임스

43

많이 사용되지 않는 기능은 페이지에 보이는 콘텐츠를 제공하는 거의 모든 요소가 '제목'속성을 가질 수 있다는 사실입니다.

이러한 속성을 추가하면 마우스가 요소 위에 '마우스를 올려 놓을'때 '툴팁'이 나타나며, 페이지가 너무 복잡해지지 않는 방식으로 중요하지 않지만 유용한 정보를 제공하는 데 사용할 수 있습니다. . (또는 이미 붐비는 페이지에 정보를 추가하는 방법 일 수 있습니다)


예, "제목"속성은 특히 클릭해야하는 요소의 경우 매우 유용합니다.
Steve Harrison

6
표시되는 도구 설명은 브라우저별로 다릅니다. 모든 브라우저가 제목 속성을 동일하게 표시하는 것은 아닙니다. 하지만 제가 확실히 사용하는 멋진 기능입니다.
Travis

8
제목 속성은 유용하지만 적절하게 사용되는 경우에만 유용합니다. 대부분의 브라우저는 도구 설명이 사라지기 전에 몇 초 동안 만 렌더링합니다. 디자이너가 제목 속성을 3-4 줄의 텍스트로 채워야 할 필요성을 느끼는 것이 싫습니다. 이로 인해 마우스를 가져간 다음 다시 마우스를 올려 나머지 부분을 읽어야합니다.
priestc

이것을 jQuery와 관련하여 사용하는 것은 굉장함과 같습니다.
Levi Morrison

Levi-몇 가지 예를 들어 줄 수 있습니까?
belugabob

38

하나의 태그에 여러 html / css 클래스를 적용합니다. 여기에 같은 게시물

<p class="Foo Bar BlackBg"> Foo, Bar and BlackBg are css classes</p>

22
CSS 클래스가 아니라 HTML 클래스입니다. CSS에는 클래스가 없습니다 (클래스 선택기가 있습니다). HTML 클래스는 CSS 이외의 것에 유용합니다.
Quentin

36
와! 나는 사람들이 이것이 "숨겨진"기능이라고 생각한다는 사실을 단순히 극복 할 수 없습니다. 이런 "정말 숨겨진"기능을 게시하는 것에 대해 어리석은 생각이 듭니다. 왜냐하면 이것을 찬성 한 사람들은 아마도 DTD 확장이 의미하는 바를 이해하지 못할 것입니다.
aleemb 06.05.09

5
d03boy, p.foo, p.var는 p.foo.bar와 동일하지 않습니다. 전자는 "foo"또는 "var"클래스가있는 단락을 선택하고 후자는 두 클래스가 모두있는 단락을 선택합니다.
눈꺼풀 없음 2009-06-06

5
HTML 클래스에 관한 것은 좋은 점입니다. 왜냐하면 그것이 저를 포인트로 가져 오게하기 때문입니다. html은 CSS를 인식해서는 안됩니다. html을 생성 할 수 있어야하고, 그것을없이 디자인을 구현할 수있는 디자이너에게 전달할 수 있어야합니다. html을 변경할 필요가 있습니다 (아직은 아닙니다;)) .. 그래서 이것은 당신의 이름과 클래스를 사용하는 방법에 달려 있습니다 .. CSS 속성을 대상으로 클래스를 만들지 마십시오 .. 클래스를 사용하여 요소가 무엇인지 식별하십시오 '.
meandmycode 2009

1
기술적으로 "Foo Bar BlackBg"는 단일 클래스이고 p.foo는 p [class ~ = foo]의 구문 설탕 일뿐입니다 ( spec 참조 ). 그래도 여러 클래스가 있다고 생각하는 것이 더 쉽습니다.
Tgr

34

우리 모두는 DTD 또는 문서 유형 선언 (W3C 유효성 검사기로 페이지를 실패하게 만드는 요소)에 대해 알고 있습니다. 그러나 DTD 를 확장 할 수 있습니다. 사용자 정의 요소에 대한 속성 목록을 선언 .

예를 들어 W3C 유효성 검사기가 태그 에 추가 되었기 때문에이 페이지에 대해 실패합니다 . 그러나 다음을 수행하여 통과 할 수 있습니다.behavior="mouseover"<p>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
[
<!ATTLIST p behavior CDATA #IMPLIED>
]>

QuirksMode의 Custom DTD 에 대해 자세히 알아 보십시오 .


10
물론 이것은 "XHTML 1.0 Transitional"이 아니라 "유효 : 사용자 정의 마크 업 언어"로 만듭니다
Quentin

3
+1. 왜 이것이 -1인지 모르겠습니다. 어쨌든 브라우저 지원은 거의 없음에 유의해야합니다.
눈꺼풀 없음 2009-06-06

Opera가 이것을 지원한다고 확신합니다.
Rich Bradshaw

2
@eyelidlessness는 XHTML에서만 작동합니다. 텍스트 / HTML로 전송 된 가상 XHTML에서는 작동하지 않습니다.
Kornel

2
Eesh, 이것의 팬이 아닙니다. 나에게 HTML의 가치는 우리 모두가 동일한 태그와 속성을 사용하기 때문에 지구상의 모든 사람들이 그것이 무엇을 의미하는지 (다소) 알고 있다는 것입니다. class속성이 확장 성이 충분 하지 않은 이유를 잘 모르겠습니다 .
Paul D. Waite

28

base 64로 인코딩 된 문자열을 image, JavaScript, iframe, link의 source / href 속성으로 할당 할 수 있습니다.

예 :

<img alt="Embedded Image" width="297" height="246" 
  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASkA..." />

div.image {
  width:297px;
  height:246px;
  background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASkA...);
}

<image>
  <title>An Image</title>
  <link>http://www.your.domain</link>
  <url>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASkA...</url>
</image>

<link rel="stylesheet" type="text/css"
  href="data:text/css;base64,LyogKioqKiogVGVtcGxhdGUgKioq..." />

<script type="text/javascript"
  href="data:text/javascript;base64,dmFyIHNjT2JqMSA9IG5ldyBzY3Jv..."></script>

참고 문헌

HTML 마크 업을 사용하여 이미지를 어떻게 구성 할 수 있습니까?

바이너리 파일을 Base64 인코더 / 번역기로


4
슬프게도 IE <8은 이것을 지원하지 않습니다. 그러나 다음 브라우저 대신 MHTML을 사용할 수 있습니다. phpied.com/mhtml-when-you-need-data-uris-in-ie7-and-under
Mathias Bynens 2010

26

최근에 fieldset 및 label 태그에 대해 알게되었습니다. 위와 같이 숨겨지지는 않지만 양식에 유용합니다.

<fieldset> 설명

예:

<form>
  <fieldset>
    <legend>Personalia:</legend>
    Name: <input type="text" size="30" /><br />
    Email: <input type="text" size="30" /><br />
    Date of birth: <input type="text" size="10" />
  </fieldset>
</form>

이것을 사용하여 샘플을 제공하십시오.
Binoj 안토니


aspnet mvc 샘플 페이지에서 fieldset을 발견했습니다. ^^
Arnis Lapsa

2
이것에 대해 몰랐습니다. W3c 사양 : w3.org/TR/html401/interact/forms.html#h-17.10
MitMaro

필드 셋과 전설은 훌륭합니다. 양식을 표시하는 정말 좋은 방법입니다.
Neil Aitken

25

object대신 태그를 사용 iframe하여 페이지에 다른 문서를 포함 할 수 있습니다 .

<object data="data/test.html" type="text/html" width="300" height="200">
  alt : <a href="data/test.html">test.html</a>
</object>

57
덜 잘 지원되고 기능이 적다는 점을 제외하면 iframe과 거의 똑같이 작동합니다.
Quentin

iframe은 더 이상 사용되지 않습니다. 곧 더 나은 지원을받을 수 있기를 바랍니다.
Gordon Gustafson 2009-06-10

12
iframe은 HTML 5에서 더 이상 사용되지 않습니다.
Zach

포함 된 페이지에서 XSS 공격을 방지합니까?
익명의 겁쟁이

1
iframe과 마찬가지로 SOP를 사용한다고 생각합니다.
Zach

25

<optgroup>사람들이 세분화 된 <select>목록 을 작성할 때 종종 놓치는 훌륭한 기능 입니다.

<select>
  <optgroup label="North America">
    <option value='us'>United States</option>
    <option value='ca'>Canada</option>
  </optgroup>
  <optgroup label="Europe">
    <option value='fr'>France</option>
    <option value='ir'>Ireland</option>
  </optgroup>
</select>

대신 사용해야하는 것입니다.

<select>
  <option value=''>----North America----</option>
  <option value='us'>United States</option>
  <option value='ca'>Canada</option>
  <option value=''>----Europe----</option>
  <option value='fr'>France</option>
  <option value='ir'>Ireland</option>
</select>

25

대부분은 이름 / 값 쌍을 제공하여 눌러 진 양식 버튼을 구별 할 수 있다는 사실을 인식하지 못합니다. 예

<form action="process" method="post">
     ...
     <input type="submit" name="edit" value="Edit">
     <input type="submit" name="delete" value="Delete">
     <input type="submit" name="move_up" value="Move up">
     <input type="submit" name="move_up" value="Move down">
</form>

서버 측에서는 버튼 이름과 관련된 요청 매개 변수의 존재 여부 만 확인하면 실제로 눌러 진 버튼을 얻을 수 있습니다. 아닌 경우 null버튼을 눌렀습니다.

나는 본 적이 많은필요를 JS 핵과 / 형태의 동작을 변경하거나 숨겨진 입력 값을 미리 변경 버튼을 누를 예에 따라, 그 대한 대안. 단순히 놀랍습니다.

또한 테이블 행에서와 같이 여러 확인란 중 선택된 항목을 수집하기 위해 거의 많은 JS 해킹 / 해결 방법을 보았습니다. 테이블 행의 모든 ​​선택 / 확인에서 JS는 숨겨진 입력 요소의 일부 쉼표로 구분 된 값에 행 인덱스를 추가 한 다음 서버 측에서 추가로 분할 / 분석됩니다. 그의는 여러 입력 요소에게 줄 수있는 unawareness 결과 같은 이름이지만 다른 값을하고 당신은 여전히 서버 측에 배열로 액세스 할 수 있습니다. 예

<tr><td><input type="checkbox" name="rowid" value="1"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="2"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="3"></td><td> ... </td></tr>
...

인식하지 못하면 각 확인란에 다른 이름이 지정되고 전체 값 속성이 생략됩니다. 일부 JS 해킹 / 해결 방법이없는 상황 에서는 확인 된 항목을 구별하기 위해 서버 측 코드에서 불필요하게 압도적 인 마법 을 보았습니다 .


1
안녕하세요 .. 즉 HTML의 분명히 또 다른 숨겨진 기능입니다 : /)
BalusC

1
양식에 제출 버튼이 여러 개 있고 사용자가 하나를 클릭하면 특정 버전의 Internet Explorer는 모두 클릭되었음을 서버에 알립니다. 훌륭한.
detly

1
@detly : <button type="submit">대신 사용 하는 경우에만 <input type="submit">:)
BalusC 2010

1
... buuuuut IE6에도 문제가 <input type="submit">없습니까? (이 문제에 대한 내 기억은 흐릿합니다. 고용주가 내부 웹 앱에 대한 IE 호환성에 대해 걱정하지 말라고 설득 한 지 오래되었으므로 더 이상 내 문제가 아닙니다.하지만 IE6에서이 문제를 해결할 수있는 장벽이있는 것 같습니다. )
detly

2
그것은 i18n 친화적이지 않습니다.
zneak 2010-06-03

22

Colgroup 태그 .

<table width="100%">
    <colgroup>
        <col style="width:40%;" />
        <col style="width:60%;" />
    </colgroup>
    <thead>
        <tr>
            <td>Column 1<!--This column will have 40% width--></td>
            <td>Column 2<!--This column ill have 60% width--></td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Cell 1</td>
            <td>Cell 2</td>
        </tr>
    </tbody>
</table>

15
내 경험상 colgroup 지원은 기껏해야 불안정합니다.
eyelidlessness

놀랍게도 유사한 WPF Grid
Binoj Antony 2009-06-17

18

만약 for (A)의 속성 <label>태그가 지정되지 않은, 그것은 암시 첫 번째 자식으로 설정 <input>즉,

<label>Alias: <input name="alias" id="alias"></label>

다음과 같다

<label for="alias">Alias:</label> <input name="alias" id="alias">

4
그러나 이것은 for 속성보다 브라우저 지원이 적습니다
Quentin

4
@David — 백업 할 문서가 있습니까? 이 사용을 지원하지 않는 브라우저를 본 적이 없다고 생각합니다. IE6 / 7, FF2 / 3, Safari 3 및 Chrome 1/2에서 개인적으로 테스트했습니다. Opera에서 직접 테스트하지는 않았지만 작동하지 않으면 매우 놀랐습니다. 이 동작은 원래 HTML 4.0 사양의 일부로, 11 년 이상 전에 처음 게시되었습니다. w3.org/TR/1998/REC-html40-19980424/interact/forms.html#adef-for
Ben Blank

또한 레이블 내부에 입력을 넣는 것은 유효하지 않으며 두 예에서 입력 태그를 닫지 않았습니다.
Anthony

5
두 가지 모두 틀 렸습니다. 이것은 유효한 관행이며 끝 태그에는 입력 요소가 금지되어 있습니다.
moo

15

링크로서의 버튼, JavaScript 없음 :

양식 작업 에 모든 종류의 파일을 넣을 수 있으며 링크 역할을하는 버튼이 있습니다. onclick 이벤트 등을 사용할 필요가 없습니다. 양식에 "대상"을 붙이면 새 창에서 파일을 열 수도 있습니다. 나는 그 기술을 응용에서 많이 보지 못했습니다.

이것을 교체

<a href="myfile.pdf" target="_blank">Download file</a>

이것으로 :

<form method="get" action="myfile.pdf" target="_blank">
    <input type="submit" value="Download file">
</form>

27
버튼에는 "다른 이름으로 파일 저장"옵션이 없으며, Adobe Acrobat이 브라우저를 차지하는 것을 좋아하지 않는 사용자에게 필요할 수 있습니다.
Kornel

PDF 파일에 액세스 할 때 기본 브라우저 동작으로 작동합니다. HTML 파일, 워드 파일, zip 파일 또는 원하는 모든 것이 될 수 있습니다.
Wadih M.

어떤 상황에서 앵커 태그에 onclick 이벤트가 필요합니까? 그리고 3 줄의 html이 1보다 나은 이유는 무엇입니까? 링크 대신 버튼을 가질 수 있다는 생각은 좋으며 버튼처럼 좋습니까? 이 문제에 대해 이상하게 들리지만 실제로는 사용자가 요청할 때 파일이 동적으로 생성되기 때문에 링크 대신 버튼을 사용하는 페이지가 있으므로 blah.php? stuff = "userdata"에 대한 링크를 원하지 않았습니다. 그 길을 갈 수 있었지만 스크립트가 파일에 제공하는 파일 이름 대신 파일 생성 스크립트를 이름으로 갖는 파일 이름을 위험에 빠뜨리고 싶지 않았습니다.
Anthony

1
<a> 태그를 버튼처럼 스타일링하지 않는 이유는 무엇입니까? 이것은 마크 업에 많은 쓰레기처럼 보입니다.
UpTheCreek

2
@UpTheCreek 일부 웹 응용 프로그램은 OS와 동일하게 보이기를 원합니다. 예 : 사용자가 Windows를 사용할 때보기 흉한 버튼, 사용자가 Mac OS X를 사용할 때 아름다운 버튼.

13

X 초 안에 페이지를 새로 고치는 가장 간단한 방법 -META Refresh

<meta http-equiv="refresh" content="600">

콘텐츠의 값은 페이지를 새로 고칠 시간 (초)을 나타냅니다.
[편집하다]

<meta http-equiv="refresh" content="0; url=foobar.com/index.html">

간단한 리디렉션을 수행하려면!
(@rlb에게 감사드립니다)


13
물론 새로 고침이 필요한 요소를 파악한 다음 AJAX를 통해 업데이트하면 훨씬 더 좋은 사용자 경험을 얻을 수 있습니다.
Steve Harrison

11
META 새로 고침은 사용자의 양식 채우기를 중단하고 모든 작업을 삭제할 수 있기 때문에 사용자 양식 활동의 왕이있는 페이지에서는 실제로 좋은 일을하지 않습니다. 이런 종류의 새로 고침이 가장 좋은 경우는 거의 없다고 생각합니다. 평상시처럼 쉽게 빠져 나갈 수있는 방법입니다.
Robert Koritnik

11
/ me는 새로 고침되는 페이지를 싫어합니다 ... 금지되어야합니다 = /
Svish

3
세션 시간 초과를 사용자에게 알리기 위해 세션 시간 초과로 설정 한 경우에도 유용 할 수 있습니다.
fforw

1
짧은 시간 초과는 뒤로 단추를 끊습니다.
Kornel

12

<html>, <head>그리고 <body>태그는 선택 사항입니다. 생략하면 구문 분석기가 적절한 위치에 자동으로 삽입합니다. 그것은이다 완벽하게 유효한 암시하는 것처럼 HTML (에 이렇게<tbody> ).

이론상 HTML 은 SGML 애플리케이션입니다. 이것은 아마도 가장 짧은 유효한 HTML 4 문서 일 것입니다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<title//<p/

위의 내용은 W3C Validator를 제외하고는 작동하지 않습니다. 그러나 가장 짧은 유효한 HTML5 text/html문서는 모든 곳에서 작동합니다.

<!DOCTYPE html><title></title>

4
광고하는 내용에주의해야합니다. 위 코드는 w3c 유효성 검사기에서 4 개의 경고와 함께 유효성 검사를 통과하지만 DocType은 HTML 4.0입니다. HTML 4가 SGML의 종속물이기 때문에이 느슨한 유효성 검사 표준을 유지한다는 것은 꽤 깔끔하지만 DTD를 XHTML 1.0 STRICT로 변경하면 문자 수와 거의 동일한 15 개의 오류가 발생합니다. XHTML은 HTML이 너무 게으르고 안전하지 않기 때문에 개발 되었기 때문에 더 이상 그것을 이용하고 싶지 않습니다.
Anthony

3
HTML / SGML 문서의 DOCTYPE을 XHTML / XML로 변경하면 무의미한 혼합이 발생합니다. 그것은 아주 명백하고 왜 당신이 그것을 지적하고 있는지 잘 모르겠습니다.
Kornel

3
이 예제는 기술적으로 유효한 HTML 4 일 수 있지만 브라우저는 해당 축약 된 SGML 구문을 지원하지 않습니다. 다음은 브라우저가 실제로 지원하는 가장 짧은 유효한 HTML 5 문서입니다.<!DOCTYPE html><title></title>
Brian Campbell

유효성 검사 관점 에서뿐만 아니라 head/를 생략하는 것이 얼마나 호환되는지 body아십니까?
kibibu 2010 년

@kibibu : 브라우저는 이것에 문제가 없습니다. 이전 버전의 Opera는 <head>때때로 DOM 에서 생략 되었지만 헤드 콘텐츠는 DOM에 있었고 어쨌든 작동했습니다. 내가 발견 한 가장 큰 문제는 OpenID 클라이언트가 <head>명시 적으로 존재 해야 한다는 것입니다.
Kornel

11

그만큼 lang속성은 잘 알려져 있지만, 매우 유용하지 않습니다. 이 속성은 전체 문서 또는 단일 요소에서 컨텐츠의 언어를 식별하는 데 사용됩니다. 언어 코드는 ISO 2 글자 언어 코드로 제공됩니다 (예 : 영어는 'en', 프랑스어는 'fr').

따옴표 등의 표시를 조정할 수있는 브라우저에 유용합니다. 스크린 리더는 lang 속성과 검색 엔진의 이점도 누릴 수 있습니다 .

Sitepoint 몇 가지 좋은 설명이 의를lang 속성에 있습니다.

langDOM의 하위 수준에있는 다른 속성으로 재정의되지 않는 한 전체 문서에 대해 언어를 영어로 지정합니다 .

<html lang="en">

다음 단락의 언어를 스웨덴어로 지정하십시오.

<p lang="sv">Ät din morgongröt och bli stor och stark!</p>

10

"! DOCTYPE"선언 . 숨겨진 기능이라고 생각하지 않지만 잘 알려지지는 않았지만 매우 유용한 것 같습니다.

예 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd">

10
그리고 "대부분의 최신 마크 업 언어에 대해 필수이며 하나가 없으면 문서를 안정적으로 검증하는 것이 불가능합니다."는 말할 것도 없습니다. validator.w3.org/docs/help.html#faq-doctype
Svish

나는 이것이 더 이상 "잘 알려져 있지 않다"고 생각하지 않는다. IE 6과 IE 7 사이에 doctype 사용은 ~ 1 %에서> 50 %로 증가했습니다.
눈꺼풀 없음 2009-06-06

@eyelidlessness 대부분의 IDE에는이 태그가 포함되어 사용이 증가했습니다. 이 태그는 잘 알려지지 않은 것 같습니다.
Daniel Moura

6
엄격한 doctype을 사용하면 브라우저 불일치의 95 %가 수정됩니다.
DisgruntledGoat

3
표준의 일부이며 99 %의 개발자가 사용하는 것은 "숨겨진 기능"처럼 들리지 않습니다.
WhyNotHugo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.