아이프레임은 HTML Inline Frame 요소이며 inline frame의 약자이다. 

 

"

효과적으로 다른 HTML 페이지를 현재 페이지에 포함시키는 중첩된 브라우저로

iframe 요소를 이용하면 해당 웹 페이지 안에 어떠한 제한 없이 다른 페이지를 불러와서 삽입 할 수 있다.

"

 

 

HTML

// 문법
<iframe src="삽입할페이지주소" width="너비" height="높이"></iframe>

// 예시
<iframe src="./intro.html" width="300" height="300"></iframe>

 

유튜브 iframe API 사용 예제

<body>
  <script>

      var player;

      function onYoutubeIframeApiReady(){
          player = new YT.Player('player', {
              width : '640',
              height : '360',
              videoId : 'M7Ic1UVf-VE',
              events : {
                  'onReady' : onPlayerReady,
                  'onStateChange' : onPlayerStateChange
              }
          });
      }
  </script>

  <iframe src="page.html" width="300" height="300">
      iframe을 지원하지 않는 브라우저입니다.
  </iframe>
</body>

noframes 요소는 해당 브라우저가 iframe 요소를 지원하지 않을 때 보여지는 문자열을 저장합니다.

 

 

iframe 속성

- src : 삽입 할 홈페이지 url

- name : 프레임 이름

- width : 프레임 가로 너비

- height : 프레임 세로 길이

- frameborder : 프레임 테두리 선 (0으로 설정하면 프레임의 테두리선 x, 1로 설정하면 프레임의 테두리선 o)

- scrolling : 스크롤바의 표시 여부를 나타냅니다. (yes로 설정하면 스크롤 바 무조건 표시, auto는 자동 표시)

- align : 정렬, left 왼쪽, right 오른쪽, middle 중앙, absmiddle 줄 중간 정렬이 있다.

- seamless : 경계선 없이 문서의 일부인 것처럼 화면에 렌더한다.

- srcdoc : 직접 태그소스를 iframe으로 표시할 수 있다.

<iframe srcdoc="<p>하이?</p>"></iframe>

- sandbox : 보안을 위해 iframe에서 폼이나 자바스크립트 실행이 되지 못하게 함.(해킹 문제고 생긴 속성)

  ㄴ allow-forms - 폼실행 허용

  ㄴ allow-same-origin 같은 도메인의 리소스 이용가능

  ㄴ allow-scripts 스크립트 실행 허용

<iframe sandbox="" src="주소"></iframe>

// 스크립트 실행 가능
<iframe sandbox="allow-script" src="주소"></iframe>

 

 

iframe의 target 속성

a 태그 속성 중 target 속성은 링크가 걸린 문서가 나타날 프레임을 설정하는 것으로 새로운 창으로 링크를 호출 할 수도 있고 현재창에 보여줄 수 도 있다.

그리고 부모 프레임 영역에 나타날 수 도 있고 프레임을 지정하여 원하는 프레임에 링크를 실행할 수 도 있다.

_blank  새창에서 열기
_self  내용을 현재 프레임 영역에서 열기(포커스가 있는 프레임 / 기본값)
_parent 내용을 부모 프레임 영역에 열기
_top  내용을 무조건 전체 영역에 열기
프레임명
해당 이름을 가진 프레임 영역에 열기
// 새창에서 열기
<iframe target="_blank" src="주소"></iframe>

// 내용을 현재 프레임 영역에서 열기(포커스가 있는 프레임 / 기본값)
<iframe target="_self" src="주소"></iframe>

// 내용을 부모 프레임 영역에 열기
<iframe target="_parent" src="주소"></iframe>

// 내용을 무조건 전체 영역에 열기
<iframe target="_top" src="주소"></iframe>

// 해당 이름을 가진 프레임 영역에 열기
<iframe target="프레임명" src="주소"></iframe>

 

 

프레임 예제

수직(세로) 프레임 

<frameset cols="25%,*,25%">
	<frame name="left" src="/html/left.html"/>
	<frame name="center" src="/html/center.html"/>    
	<frame name="right" src="/html/right.html"/>    
</frameset>

 

수평(가로) 프레임

<frameset rows="20%,60%,20%">

	// noresize="noresize"속성은 사용자가 창의 크기를 조절할 수 없게 한다.
	<frame name="top" src="/html/top.html" noresize="noresize"/>
	<frame name="center" src="/html/center.html" noresize="noresize"/>    
	<frame name="bottom" src="/html/bottom.html" noresize="noresize"/>    
    
</frameset>

 

구글 지도

구글 지도 > 주소 검색 > 공유 > 지도 퍼가기 > HTML 복사

<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3161.6604808673546!2d126.97262231608447!3d37.586611830734384!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x357ca2b7ef94a16b%3A0xb16d5f135eaaddc!2z7LKt7JmA64yA!5e0!3m2!1sko!2skr!4v1588826305729!5m2!1sko!2skr" width="600" height="450" frameborder="0" style="border:0;" allowfullscreen="" aria-hidden="false" tabindex="0"></iframe>

 

 

유튜브

해당 동영상 > 공유 > 퍼가기 > 동영상 퍼가기

* 해당 동영상은 인기동영상에서 가져왔습니다. 장삐쭈님 동영상입니다.

유튜브 사용 시 src뒤에 물음표를 붙이고 옵션을 넣을 수 있다.

이어서 옵션을 추가할때에는 &를 사용한다.

 

?autoplay=1 (자동재생) 

&loop=1 (반복)

 

 

주의할 사항

HTML5 이전에도 이후에도 <iframe>을 사용하지 않는 것을 권고한다.
- 반응형 웹 사이트가 대세인 오늘날의 트렌드와 상극이다.
- 페이지의 파편화 문제가 생긴다.

  ㄴ 검색 엔진 등록 시 frameset 뿐만 아니라 메뉴용 페이지, 콘텐츠용 페이지 까지 함께 크롤링 할 수 있다.
- 웹접근성 저해의 요인이 될 수 있음으로 남용에 주의해야한다.
- 프레임 구조가 가지고 있던 장점을 CSS와 jQuery로 해결 할 수 있다.

 

조건부 주석이란?

HTML을 이용해 웹 사이트를 마크업할 때에 크로스 브라우징을 할 경우에 HTML의 주석 태그를 이용하여서 인터넷 익스플로러에 대해 적용하기 위한 특수한 형식의 주석이다.
IE5 에서 처음으로 지원하기 시작하였으며 IE10이상에서는 조건부 주석이 작동하지 않는다.

 

문법

구문 예시

예시

IE8이 아닐 때

DOM 렌더링

 

IE8 일 때

DOM 렌더링

 

CSS3 란 (Cascading Style Sheets)

  • 차세대 HTML5 제안과 함께 CSS3라는 이름의 새로운 스타일이 나왔다.
  • 차세대 웹 개발을 위한 새로운 표준이다.
  • 최신버전의 CSS 이며 기존 CSS2.1에서 부족한 부분을 보완하고 개선한 버전이다.

[ 예시 ]

css3 장점 - 이미지를 사용하지 않아도 되기 때문에 웹 페이지의 데이터량을 절약할 수 있다.

  • 다중 컬럼 레이아웃(Multiple column layout) 컬럼 갯수 정의하여 다수의 컬럼(세로단)에 텍스트를 배치할 수 있다.
    • column-count 컬럼의 갯수를 직접 지정. 컬럼의 너비는 컬럼 갯수 기반으로 자동으로 결정(table)
    • column-width 각 컬럼의 너비를 지정함으로써 컬럼의 갯수는 자동으로 결정되도록한다.
    • column-gap 컬럼 간 띄어질 공간 지정한다.
    • column-rule 컬럼 구분 막대의 border style을 지정한다.
  • 텍스트효과 및 블럭효과
    • text-stroke: 이미지로 텍스트 효과를 줬어야 했던 부분을 스타일로 지정할 수 있다.
    • text-shadow: 그림자 효과를 줄 수 있다.
    • border-radius: 테두리 효과를 줄 수 있다.
    • line-gradient , gradient: 그라디언트를 줄 수 있다.
    • JavaScript를 사용하지않고도 애니메이션을 만들거나 변형할 수 있다.
    • translate: 단락이나 배치를 세세하게 정의할 수도 있다.

새로운 기능 추가를 시범 적용하기 위해 접두어(Vendor prefix)를 사용하였다

safari, chrome -webkit-
opera -o-
internet explorer -ms-

 

예시

-webkit-transform:translateY(50px);

참고

https://developer.mozilla.org/ko/docs/Web/CSS/CSS3

http://tcpschool.com/css/css3_module_intro

HTML5 (Hyper Text Markup Language)이란?

월드와이드웹(World Wide Web)을 통해 제공되는 정보를 나타낼 목적으로 사용되는 마크업 언어이며 차세대 웹 표준으로 확정된 HTML의 5번째 버전을 의미한다.
기존의 웹 문서에서는 HTML 만으로 웹 서비스를 구성하는 것이 불가능했지만 HTML5로 넘어오면서 클라이언트와 서버와의 통신이 가능하며
이에 대한 부가 기능을 제공함으로써 다른 외부 Active-x와 같은 플러그인을 사용하지 않고도 웹 서비스를 제공할 수 있을 정도로 많은 기능이 추가되었다.

[ HTML 발전의 순서? ]

[ HTML5의 등장? ] : HTML은 왜 각광받기 시작했는가

과거 HTML은 순수한 HTML만으로 표현이 불가능하였기 때문에 플래쉬, Active-x등의 플러그인(외부 기술)에 의존하였다.
따라서 웹의 접근성은 현저히 떨어졌고, 플러그인 기술에서 웹을 해방시키고 접근성과 상호운영성을 높이기 위하여 HTML이 등장하였다.
발전 된 HTML5는 CSS3, Javascript API를 통한 기능의 확장, 결합을 통해 기존의 Markup language이상의 의미를 가지게 되었다.

폭발적인 관심을 불러일으킨 사건은 플래시(Flach)와 관련된 스티브 잡스의 발언이 출발이었다. (= 폐쇄성, 보안, 배터리 수명, 터치 인터페이스의 고려, 혁신 기술을 사용.. 등)

 

[ HTML5 디자인 원칙 ]

  1. 호환성

    1. 콘텐츠의 호환성 HTML5 이전 버전으로 제작한 콘텐츠가 완벽히 정상 작동은 아니지만 문제 없이 이용 가능 해야한다.
    2. 이전 브라우저와의 호환성 HTML5가 지원되지 않는 이전 브라우저에서도 이용 가능 해야한다.
    3. 기능의 재사용 서로 다른 브라우저에서 구현해 놓은 기능들을 HTML5 아래 공통의 사양으로 책정하여 이용 가능 해야 한다.
    4. 이용 방법의 호환성 HTML Tag 사용법을 그대로 사용할 수 있게 한다.
    5. 혁신보다는 발전을 우선함 새로운 Markup language를 구현하기 보다 기존의 존재하던 HTML을 개량해야 한다.
  2. 실용성

    W3C에서 말하는 이상적인 마크업보다 현장에서 필요로 하는 것들을 중점적으로 진행해야 한다.

  3. 상호 운영성

    HTML5를 적용한 브라우저라면 동일하게 동작해야 한다.

  4. 보편적 접근성

    콘텐츠 소비하는 기계(Divice, Search Engine), 모든 사람(장애인 포함)이 접근할 수 있어야 한다.

[ HTML4 VS HTML5 ]

  • HTML5 이전에는 p, div, h (Block Level Element) 와 img, input (Inline Element) 두 종류의 태그를 사용하여 레이아웃을 표현하였다.
    Tree 형태의 계층 구조로 구성되었으며 그 구조에 따라 콘텐츠에 접근할 수 있었다.
  • HTML5은 다양한 Element들이 추가 되었고, Sementic한 웹이 되었으며 header, footer, aside등.. 구성에 따라 접근이 가능한 구조로 변형 되었다.

HTML5 시맨틱태그

컴퓨터가 정보를 이해하고, 논리적인 추론까지 가능한 구조를 만들기 위해 추가된 태그.
기존에는 Block Level Element에 네이밍을 하여 레이아웃을 구현하였는데 HTML5는 태그 자체로 구현 할 수 있다.

 

구문차이

  • Tag 이름 대 소문자를 가리지 않는다.
  • DOCTYPE이 간결해졌다.

    HTML4.01 Strict http://www.w3.org/TR/html4/strict.dtd">
    HTML5 <!DOCTYPE html>
  • Encoding이 간결해졌다.

    HTML <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    HTML5 <meta charset="UTF-8">
  • SVG, MathML

    그래픽 구현이 가능하다. 2차원 벡터 그래픽 = SVG태그 2차원 래스터 그래픽 = 자바 스크립트 캔버스 3차원 그래픽 = CSS3, WebGL

다양한 Element, Attribute의 변화

  • 시맨틱 태그 추가

  •  

    heager, footer, nav, section, article, aside, hgroup, figure, figcaptio…..

     

     

 

  • Header 문서의 Header 를 나타낼 때
    Footer 문서의 Footer 를 나타낼 때
    Nav 문서내에 Navigation 요소가 있을 때
    Section 문서의 영역을 구성, 문서 구조를 구성하는 H1~H6 와 함께 사용
    Article 뉴스기사나 블로그 article 과 같은 독립된 Contents 를 표시할 때 사용
    Aside 주요 컨텐츠 이외의 참고가 될 수 있는 컨텐츠를 구성할때 사용
    Figure 그림, 비디오와 같은 포함된 컨텐츠의 Caption 을 표시할때 사용
    Figcaption 캡션에 사용

    그 밖에 Audio, Video, Embed, Mark, Progress, Meter, Time,... 등등의 Element 그 밖에 data-*, role, area-* 등등의 Attribute....

API

  • Video, Autio API 비디오 오디오 재생 시 사용
  • Offline Web Application offline을 지원하는 api
  • Drag & Drop API draggable 속성과 함께 사용하는 API

그 외에도 많다.

 

[ HTML5 이전 브라우저에서 시맨틱 태그 사용 방법 ]

Script

document.createElement('header');
document.createElement('footer');
document.createElement('nav');
document.createElement('section');
document.createElement('article');

Style


header, footer, nav, section, article{ display:block; }

하위 브라우저에서 HTML5 사용하기

 

참고

http://www.jopenbusiness.com/mediawiki/index.php/HTML5#HTML5_.ED.91.9C.EC.A4.80.ED.99.94_.EC.9D.BC.EC.A0.95

+ Recent posts