글 작성 당시 웹, 모바일 모두 해당하는 사항이었습니다.

    

이게 정상적인 모습인데, 사파리에서만 확인이 되는 부분이었습니다.

아래와 같이 라운드처리가 된 부분이 가려지지 않고 튀어나와있습니다.

 

border-radius가 적용된 부분이 overflow:hidden이 안되는 모습입니다.

 

css 적용 사항입니다.

첫번째로 든 의심은 특정 가상 선택자의 버그인가 생각이 들어서

:before -> :after로 변경해봤습니다. (X)

하위 엘리먼트의 가상선택자로도 변경해봤습니다. (X)

 

두번째는 가상선택자 버그인가 싶어서 태그로 변경했습니다. (X)

 

세번째는 border-radius를 다른 객체들에게도 줘봤습니다. (X)

 

네번째로 position:absolute를 relative로 변경했습니다.(X)

 

결론은 모두 원인이 아니었습니다.

이유가 뭐지 한참 고민하며 만져보던 중에 position값의 문제임을 알게되었습니다.

해결책으로는 동그라미의 위치를 맞추기 위해 넣었던 position값을 제거 하고 margin 값으로 변경했습니다. (O)

 

그러던 중에 가운데로 맞추는게 쉽지않고, 해당 객체 크기가 달라지만 margin 값은 의미가 없어질 것 같아서(가운데 맞추는 데 필요했습니다)

transform으로 변경하였습니다. (X)

 

.............. 

원하는 결과를 얻기 위해서는 margin 값만이 허용되었습니다.

저만 이런 문제가 생긴것 일리도 없는데, 검색해도 안나와서 잘 모르겠습니다....

 

아시는 분은 알려주세용..

 

아이프레임은 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

+ Recent posts