CSS background를 통해서 넣는 방법 : 이미지가 의미가 없을 때
이미지 스프라이트 기법을 통해서 넣는 방법
이미지 스프라이트
이미지 스프라이트(image sprite)란 여러 개의 이미지를 하나의 이미지로 합쳐서 한번에 다운받는 시스템입니다.
- 여러번의 서버 요청을 한번으로 줄일 수 있습니다.
- 이미지 수정이나 관리가 간편합니다.
- 웹 접근성을 준수하기 위해서는 IR효과를 설정해야 합니다.
IR 기법
IR 기법은 이미지 대체텍스트 제공을 위한 CSS기법입니다.
position:relative를 사용해야 하는 경우
- position: absolute의 기준점이 필요할 때
- z-index를 사용해야 하는 경우 포지션 값이 없으면 relative를 사용하여 z-index의 값을 인식시킬 수 있습니다.
- 요소의 위치를 유지한채 left, top, right, bottom의 위치 값을 사용하고 싶을 때
절대주소와 상대주소
절대주소
- 전체 구조내에서의 위치를 표시하는 방법.
- 웹서버를 기준으로한 절대경로
상대주소
- 작업하고 있는 파일의 현재 위치를 기준으로 경로를 지정하는 방법.
- 연결하려는 파일이 현재 편집 중인 문서와 같은 폴더에 위치한 경우.(<a href="파일명">연결할 문서</a>) 또는 (<a href="./파일명">연결할 문서</a>)
- 연결하려는 파일이 현재 편집 중인 문서와 하위 폴더에 위치한 경우.(<a href="하위폴더명/파일명">연결할 문서</a>)
- 연결하려는 파일이 현재 편집 중인 문서와 상위 폴더에 위치한 경우.(<a href="../파일명">연결할 문서</a>)
- 연결하려는 파일이 현재 편집 중인 문서와 같은 레벨의 폴더에 위치한 경우.(<a href="../하위폴더명/파일명">연결할 문서</a>)
CSS Description
width
요소의 가로 값을 정의합니다.
height
요소의 세로 값을 정의합니다.
background
요소의 배경을 정의합니다.
- background-attachment : 배경이미지의 고정 여부를 설정합니다.
- background-blend-mode : 배경을 혼합했을 때의 상태를 설정합니다.
- background-clip : 배경을 혼합했을 때의 상태를 설정합니다.
- background-color : 백그라운드 색상을 설정합니다.
- background-image : 백그라운드 이미지를 설정합니다.
- background-origin : 백그라운드 이미지 영역 속성을 설정합니다.
- background-position : 백그라운드 이미지 위치를 설정합니다.
- background-repeat : 백그라운드 이미지 반복 여부를 설정합니다.
- background-size : 백그라운드 사이즈를 설정합니다.
background-color
백그라운드 색상을 정의합니다.
- background-color: #fff - 백그라운드 색을 설정합니다.
- background-color: transparent - 백그라운드 색을 투명하게 설정합니다.
background-image
백그라운드 이미지 속성을 정의합니다.
- background-image: none; 백그라운드 이미지 속성을 설정하지 않습니다.
- background-image: url("이미지 경로") : 백그라운드 이미지를 설정합니다.
background-position
백그라운드 이미지 위치를 설정합니다.
- background-position : left top
- background-position : left center
- background-position : left bottom
- background-position : right top
- background-position : right center
- background-position : right bottom
- background-position : center top
- background-position : center center
- background-position : center bottom
- background-position : 10px 40px
- background-position : 10% 5%
- background-position : 10% 5%, 10px 40px, center top
background-repeat
백그라운드 이미지 반복 여부를 설정합니다.
- background-repeat : repeat(기본값) - 이미지를 x축 y축으로 반복 설정합니다.
- background-repeat : repeat-x - 이미지를 x축으로 반복 설정합니다.
- background-repeat : repeat-y - 이미지를 y축으로 반복 설정합니다.
- background-repeat : no-repeat - 이미지를 반복하지 않고 한번만 나오게 설정합니다.
font-size
글꼴 크기를 설정합니다.
- font-size: smaller - 글자 사이즈를 smaller 사이즈로 설정합니다.
- font-size: larger - 글자 사이즈를 larger 사이즈로 설정합니다.
- font-size: length - 글자 사이즈를 length 사이즈로 설정합니다.
- font-size: % - 글자 사이즈를 상위(부모) 요소 폰트 크기에서 %로 계산하여 지정합니다.
- font-size: medium - 12pt 사이즈
- font-size: xx-large - medium보다 4.5배 확대
- font-size: x-large - medium보다 3배 확대
- font-size: large - medium보다 1.5배 확대
- font-size: small - medium보다 1.5배 축소
- font-size: x-small - medium보다 3배 축소
- font-size: xx-small - medium보다 3.5배 축소
- font-size: 14px;(length)
line-height
문장과 문장 간격을 설정하는 속성입니다.
- line-height : normal - 기본값으로 보통 1.0 ~ 1.2 입니다.
- line-height : length - 길이로 줄 높이를 정합니다.
- line-height : number - 글자 크기를 몇 배로 줄 높이를 정합니다.
- line-height : percentage - 글자 크기를 몇 %로 줄 높이를 정합니다.
- line-height = hieght : 한 줄일 때 중간으로 오는 효과
position
요소의 위치를 설정합니다.
- position : static(기본값)
- position : absolute - 요소의 위치를 절대값을 설정합니다.
- position : relative
- position : absolute의 기준점이 필요할 때 사용합니다.
- 요소의 위치를 유지한채로 left, top, rightm bottom의 위치 값을 사용하고 싶을 때.
- z-index를 사용하고 싶은데 포지션이 없으면 relative를 사용하여 z-index값을 인식시킬 수 있습니다.
- position : fixed - 요소의 위치를 고정으로 설정합니다.
border
테두리 속성을 설정합니다.
- border-width: 테두리 두께 속성을 설정합니다.
- border-style: 테두리 스타일 속성을 설정합니다.
- border-color: 테두리 색 속성을 설정합니다.
- border-image: 테두리 이미지 속성을 설정합니다.
- border-radius: 테두리 굴곡 속성을 설정합니다.
border-width
테두리 두께 속성을 설정합니다.
- border-top-width
- border-right-width
- border-bottom-width
- border-left-width
- border-width : thin(1px)
- border-width : medium(3px)
- border-width : thick(5px)
- border-width : 10px 11px 12px 13px
- border-width : 10px 11px 12px
- border-width : 10px 11px
- border-width : 10px
border-style
테두리 스타일 속성을 설정합니다.
- none : 테두리 없음으로 지정합니다. border-style이 none으로 지정된경우 border-width에서 설정된 값을 0으로 만듭니다.
- hidden : 테두리를 숨깁니다. none과 같으나 테이블의 셀 요소라면 테두리를 통합합니다.
- dotted : 점선의 테두리로 지정합니다.
- dashed : 짧은 선들의 연속으로 지정합니다.
- solid : 실선으로 지정합니다.
- double : 두개의 실선으로 지정합니다.
- groove : 테두리가 안으로 파진것처럼 보입니다.
- ridge : 테두리가 밖으로 튀어나온것처럼 보입니다.
- inset : 테두리를 포함한 컨텐츠 영역이 안으로 들어간것처럼 보입니다.
- outset : 테두리를 포함한 컨텐츠 영역이 밖으로 튀어나온것처럼 보입니다.
border-color
테두리 색상을 설정합니다.
- border-color : 색상코드
- transparent : 투명을 지정한다.
border-image
테두리 이미지 속성을 설정합니다.
- border-image-source : 테두리로 사용할 이미지를 지정한다.
- border-image-slice : 테두리로 사용될 이미지의 위치를 지정한다.
- border-image-width : 테두리로 사용될 이미지의 너비를 지정한다.
- border-image-outset : border box를 넘어서 확장되는 테두리 이미지 영역의 양을 지정한다.
- border-image-repeat : 테두리 이미지의 스케일을 조정하는 방법을 지정한다.
border-radius
테두리 굴곡 속성을 설정합니다.
- border-top-radius
- border-right-radius
- border-bottom-radius
- border-left-radius
box-sizing
크기 및 높이 여부의 포함을 설정합니다.
- content-box : 요소에 border, padding 값이 포함되어 있지 않습니다.
- border-box : 요소에 border, padding 값이 포함됩니다.
- inherit : box-sizing의 속성 값을 상위요소한테 상속받습니다.
display
요소의 성질을 정의합니다.
- inline : 인라인 요소의 성질로 설정합니다.
- block : 블록 요소로 성질로 설정합니다.
- flex : 플렉스 요소의 성질로 설정합니다.
- inline-block : 인라인 성질을 가지면서 블록 요소의 성질을 설정합니다.
- inline-flex : 인라인 성질을 가지면서 플렉스 요소의 성질을 설정합니다.
- inline-table : 인라인 성질을 가지면서 테이블 요소의 성질을 설정합니다.
- list-item : 리스트 스타일 성질로 설정합니다.
- run-in : 인라인 및 블록 요소의 성질을 하나만 선택하도록 설정합니다.
- table : 테이블 요소의 성질로 설정합니다.
- table-caption : 테이블 요소의 caption 성질로 설정합니다.
- table-column-group : 테이블 요소의 컬럼 그룹 성질로 설정합니다.
- table-header-group : 테이블 요소의 헤더 그룹화 성질로 설정합니다.
- table-footer-group :테이블 요소의 푸터 그룹화 성질로 설정합니다.
- table-row-group : 테이블 요소의 row 그룹화 성질로 설정합니다.
- table-cell : 테이블 요소의 셀 성질로 설정합니다.
- table-column : 테이블 요소의 컬럼 성질로 설정합니다.
- table-row : 테이블 요소의 row 성질로 설정합니다.
- none : display 효과를 적용하지 않습니다.
- inherit : z-index의 속성 값을 상위요소한테 상속받습니다.
Font Awesome 자동접근성 설정하는 법
IR(Image Replacement)기법 정리
- Text-indent를 활용한 IR기법
- Text-indent를 활용한 IR 기법은 가장 손쉽게 사용할 수 있는 방법입니다. 간단한 사용 방법은 text-indent 속성 값에 현재 사용되고 있는 디스플레이의 해상도보다 작은 음의 정수 값을 주는 것입니다. 이를테면 ‘span{text-indent: -9999’}와 같이 사용할 수 있습니다.
- Text-indent 속성은 사용하기 간편하지만 단점이 있습니다. 만약 사용자의 단말기에 따라 이미지가 제대로 로드되지 않을 때 스크린리더 사용자가 아니라 하더라도 이미지를 설명하는 텍스트를 보고 콘텐츠의 내용을 확인해야 하지만 할 수 없다는 것입니다. 또한, 웹페이지에 text-indent 스타일 속성이 적용된 요소가 많을 때 컴퓨터가 웹페이지 로드 시 위치값을 그만큼 많이 계산해 하므로 성능에 저하를 불러올 수 있습니다.
- CSS의 위치 속성과 overflow: hidden을 사용하는 방법
- CSS의 위치를 지정하는 left/right와 position, 그리고 overflow: hidden을 사용하는 IR 기법은 원리상 text-indent와 유사합니다. 사용 방법은 텍스트가 있는 <span> 또는 <div> 등의 요소에 디스플레이 해상도 보다 훨씬 작은 음의 정수 값으로 위치를 부여한 다음, 높이와 너비를 1px 정도로 작게 설정합니다. 그다음 overflow: hidden과 position: absolute로 대체 텍스트를 화면에서 완전히 숨깁니다. 자세한 방법은 아래의 샘플을 참조하세요.
- 높이와 넓이를 0으로 설정하는 IR기법
- 이 방법은 대체 텍스트 글자가 들어가는 등의 요소의 높이와 너비를 0으로 지정하는 방법입니다. 먼저, 대체할 텍스트 요소에 BackGround 이미지를 설정한 다음 대체 텍스트가 포함되는 요소의 높이와 너비를 0으로 지정합니다.
- z-index를 활용한 IR기법
- z-index를 이용한 IR 기법 역시 크게 어렵지 않습니다. 이미지의 대체 텍스트에 z-index 속성 값을 음의 정수로 부여하는 방식입니다. 먼저 아래의 샘플을 확인해 보세요.
- z-index로 IR 기법을 사용했을 때의 특징은 만약 브라우저에서 CSS를 끄거나, 어떠한 이유로 웹 페이지에 적용된 CSS가 정상적으로 로드되지 않을 때 숨겨진 텍스트가 화면에 출력됩니다. 또한, position 속성을 사용하기 때문에 디바이스의 사양에 따라 성능에 영향을 줄 수 있습니다.
참고
- Bootstrap 프레임워크를 사용하여 웹페이지를 개발할 경우 Bootstrap에는 sr-only라는 클래스가 정의되어 있습니다. 해당 프레임워크에서 IR 기법을 사용할 때 이 클래스를 유용하게 사용할 수 있습니다.
- Title 무엇이 문제인가?
- Title 속성으로 스크린리더 사용자에게 추가 설명을 제공하는 것의 문제는 스크린리더 대부분이 폼 요소를 제외한 링크 등의 컨트롤에 적용된 title 속성을 무시한다는 것입니다. 아울러 title 속성은 국내 웹 접근성 지침과는 달리 WEBAIM은 폼 요소 등으로 제한하여 사용할 것을 권고하고 있습니다.
- 현재 요소와 관계없이 기본적으로 적용된 title 속성을 출력하는 스크린리더는 국내의 센스리더가 거의 유일하다고 할 수 있습니다. 물론 JAWS는 사용자의 설정에 따라 title을 출력하도록 설정할 수 있습니다. 그러나 JAWS 역시 기본적으로 title을 출력하지 않는 것은 NVDA 등의 스크린리더와 같습니다.
- Title의 대안, ARIA-label
- 만약 title 속성을 대체하려면 현재 가장 적합한 방식은 ARIA-label 이라 할 수 있습니다. 다만 ARIA-label을 사용할 때는 title 처럼 추가 설명만을 속성 값에 넣으면 안 됩니다. 링크 또는 버튼 등의 컨트롤 텍스트와 함께 기입해야 합니다. 이를테면 ‘ARIA-label=”네이버 – 새 창이 열립니다”’와 같이 해야 합니다. 아래 샘플에서 title 속성과 ARIA-label의 예를 살펴볼 수 있습니다.
- 샘플에서 확인하셨듯이 링크에 적용된 title 속성값은 센스리더를 제외한 다른 스크린리더들은 읽지 못 합니다. 따라서 스크린리더 사용자에게 별도의 추가 설명이 제공되는 컨트롤을 사용할 때는 ARIA-label을 사용해야만 모든 스크린리더에서 컨트롤명과 추가 정보를 읽을 수 있습니다.
list-style
목록 스타일 속성을 설정합니다.
- list-style-image : 목록 마커의 이미지를 설정합니다.
- list-style-position : 목록 마커의 위치를 설정합니다.
- list-style-type : 목록 마커의 유형을 설정합니다.
- list-style-type : disc;
- list-style-type : circle;
- list-style-type : square;
- list-style-type : upper-alpha;
- list-style-type : upper-latin;
- list-style-type : upper-roman;
- list-style-type : lower-alpha;
- list-style-type : lower-latin;
- list-style-type : lower-roman;
- list-style-type : decimal-leading-zero;
letter-spacing
글자 사이의 간격을 지정하는 속성
- normal : 기본값으로 문자에 공백이 들어가지 않음. 0px와 같음
- lenth : px,em,% 등으로 지정(음수값 가능)
word-spacing
단어와 단어 간의 공간을 지정한다.
- normal : 기본값(default), 브라우저 기본 스타일로 나타냄
- length : px, cm, em 단위로 단어 간격을 직접 지정하며 음수도 허용
text-align
텍스트의 정렬 방식을 정의합니다.
- text-align : left - 텍스트의 정렬을 왼쪽으로 설정합니다.
- text-align : right - 텍스트의 정렬을 오른쪽으로 설정합니다.
- text-align : center - 텍스트의 정렬을 가운데로 설정합니다.
- text-align : justify - 텍스트의 정렬을 양쪽으로 설정합니다.
text-transform
문자를 대문자 또는 소문자로 전환하는 속성입니다.
- text-transform : none - 기본값으로, 테스트를 html 코드에 있는 그대로 읽음.
- text-transform : capitalize - 각 단어의 첫번째 문자를 대문자로 만듦.
- text-transform : uppercase - 모든 문자를 대문자로 바꿈.
- text-transform : lowercase - 모든 문자를 소문자로 바꿈.
margin
박스 요소의 바깥쪽 여백을 설정합니다.
- margin-top: 10px - 요소의 위쪽 여백을 설정합니다.
- margin-right: 11px - 요소의 오른쪽 바깥쪽 여백을 설정합니다.
- margin-bottom: 12px - 요소의 아래쪽 바깥쪽 여백을 설정합니다.
- margin-left: 13px - 요소의 왼쪽 바깥쪽 여백을 설정합니다.
- margin: 10px 11px 12px - 위쪽10px/왼쪽,오른쪽11px/아래쪽12px
- margin: 10px 11px - 위쪽,아래쪽10px/왼쪽,오른쪽11px
- margin: 10px - 위쪽,오른쪽,아래쪽,왼쪽10px
- margin: auto - 기본값, 자동값
- margin: 0 auto - 블록구조를 가운데 정렬
padding
박스 요소의 안쪽 여백을 설정합니다.
- padding-top: 10px - 요소의 위쪽 안쪽 여백을 설정합니다.
- padding-right: 11px - 요소의 오른쪽 안쪽 여백을 설정합니다.
- padding-bottom: 12px - 요소의 아래쪽 안쪽 여백을 설정합니다.
- padding-left: 13px - 요소의 왼쪽 안쪽 여백을 설정합니다.
- padding: 10px 11px 12px - 위쪽10px/왼쪽,오른쪽11px/아래쪽12px
- padding: 10px 11px - 위쪽,아래쪽10px/왼쪽,오른쪽11px
- padding: 10px - 위쪽,오른쪽,아래쪽,왼쪽10px
overflow
내용이 박스보다 큰 경우 밖으로 넘친 부분을 어떻게 표시할지를 지정한다.
- 값 - visible / hidden / scroll / auto / inherit
- 기본값 - visible
- 적용대상 - 블럭레벨요소와 치환된 요소
- 상속 - 상속안됨
- 퍼센테이지 - 지정불가
- 미디어 - Visual
- visible : 박스보다 넘쳐난 내용을 그대로 보여준다.
- hidden : 박스보다 넘쳐난 내용을 표시하지 않도록 지정하며 스크롤을 제공하지 않는다.
- scroll : 박스보다 넘쳐난 내용을 위해 스크롤을 제공한다. 잘려서 보이지 않는 부분을 스크롤해서 볼수있도록 한다. 내용이 박스보다 넘쳐나지 않아도 무조건 스크롤을 제공한다.
- auto : 브라우저에 의존하며 해당영역이 박스보다 큰 경우 스크롤을 자동으로 제공한다.
cursor
마우스 커서의 모양을 지정한다.
- 값 - [ [<uri>,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help ] ] | inherit
- 기본값 - auto
- 적용대상 - 모든요소
- 상속 - 상속됨
- 퍼센테이지 - 지정불가
- 미디어 - Visual
- auto : 현재의 문맥에 맞게 커서를 자동으로 지정
- crosshair : 십자 형태로 지정
- default : 기본 형태로 지정. 대부분 화살표 형태로 표현
- pointer : 링크를 지시하는 형태. 일반적으로 손가락 형태로 표현
- move : 이동을 지시하는 형태로 지정
- e-resize : 오른쪽 모서리를 조절하는 모양
- ne-resize : 상단, 오른쪽 모서리를 조절하는 모양
- nw-resize : 상단, 왼쪽모서리를 조절하는 모양
- n-resize : 상단 모서리모서리를 조절하는 모양
- se-resize : 하단 오른쪽 모서리를 조절하는 모양
- sw-resize : 하단 왼쪽 모서리를 조절하는 모양
- s-resize : 하단 모서리를 조절하는 모양
- w-resize : 왼쪽 모서리를 조절하는 모양
- text : 글자를 선택하는 형태롤 지정. 보통 I-bar형태로 표현
- wait : 프로그램이 작동중이여서 사용자가 기다려야 하는 형태. 보통 모래시계로 표현
- help : 보통 물음표 모양으로 표현된다.
- inherit
text-overflow
박스 안에 내용이 넘칠 때 텍스트를 어떻게 처리할지 지정하는 속성입니다.
- overflow 속성값이 hidden, scroll, auto 일 때 (visible 제외)
- white-space:nowrap (텍스트 길어도 줄바꿈 되지 않음) 또는 텍스트가 다음 줄로 이동하지 않는 비슷한 경우
- clip - 기본값, 텍스트를 자름.
- ellipsis - 잘린 텍스트를 생략 부호(...)로 표시함.
- string - 잘린 텍스트를 지정한 문자열로 포시 예:div{ text- overflow:"---";}
white-space
공백문자를 어떻게 다룰것인가를 정의 한다.
- 값 - normal | pre | nowrap | inherit
- 기본값 -
- 적용대상 - 모든요소
- 상속 - 상속됨
- 퍼센테이지 - 지정불가
- 미디어 - Visual
- normal : 정상적으로 출력하도록 지정. 연속된 공백 문자나 줄바꿈을 통합한다.
- pre : 연속된 공백 문자나 줄바꿈을 통합하지 않고, 원문그대로 출력한다.
- nowrap : 연속된 공백 문자는 통합하지만, 줄바꿈은 통합하지 않는다.
- inherit
after
엘리먼트 뒤에 페이지 넘김을 지정합니다.
- 값 - auto | always | avoid | left | right | inherit
- 기본값 - auto
- 적용대상 - 블럭레벨 요소
- 상속 - 상속안됨
- 퍼센테이지 - 지정불가
- 미디어 - Visual, paged
- auto : 페이지 넘김을 해당 엘리먼트의 앞에 강제적으로 하거나 금지하지 않습니다.
- always : 해당 엘리먼트의 앞에 페이지 넘김을 항상 하도록 지정합니다.
- avoid : 해당 엘리먼트의 앞에 페이지 넘김을 금지하도록 지정합니다.
- left : 엘리먼트 앞에서 분리된 페이지가 왼쪽 면에 위치하도록 지정합니다.
- right : 엘리먼트 앞에 분리된 페이지가 오른쪽 면에 위치하도록 지정합니다.
before
엘리먼트 앞에 페이지 넘김을 지정합니다.
- 값 - auto | always | avoid | left | right | inherit
- 기본값 - auto
- 적용대상 - 블럭레벨 요소
- 상속 - 상속안됨
- 퍼센테이지 - 지정불가
- 미디어 - Visual, paged
- auto : 페이지 넘김을 해당 엘리먼트의 앞에 강제적으로 하거나 금지하지 않습니다.
- always : 해당 엘리먼트의 앞에 페이지 넘김을 항상 하도록 지정합니다.
- avoid : 해당 엘리먼트의 앞에 페이지 넘김을 금지하도록 지정합니다.
- left : 엘리먼트 앞에서 분리된 페이지가 왼쪽 면에 위치하도록 지정합니다.
- right : 엘리먼트 앞에 분리된 페이지가 오른쪽 면에 위치하도록 지정합니다.
컨텐츠 요소를 가운데 오게 하는 방법
반응형 사이트를 만들 때 제일 많이 쓰는 기법이 컨텐츠 요소를 정 가운데 오게 하는 방법입니다. 이 방법에는 여러가지 방법이 있으며 각각의 장단점이 있습니다. 컨텐츠 요소를 가운데 오게 하는 방법에 대해서 정리해보겠습니다.
- 1. 인라인구조 가운데 정렬 : 가장 기본적인 방법이지만 이 방법은 한 줄(요소)일 경우에서만 해당이 됩니다.
- 부모요소(인라인구조) : text-align : center; line-height: (height값과 동일하게)
- 2. 블록구조 가운데 정렬 : 가장 기본적인 방법이지만 이 방법은 한 줄(요소)일 경우에서만 해당이 됩니다.
- 요소(블록구조) : margin:0 auto; width값 설정, line-height: (height값과 동일하게)
- 3. 요소의 성질을 table로 변환시켜서 가운데 정렬을 하는 방법이지만 table자체를 레이아웃에 많이 사용하지 않기 때문에 잘 쓰지 않는 방법입니다.
- 부모요소 : display:table;
- 자식요소 : display:table-cell, text-align:center; vertical-align:middle;
- 4. 절대 요소를 이용한 가운데 정렬방법이며, 제일 흔하게 쓰이지만 단점은 영역이 없어지는 것이 단점이어서 반응형을 할 때 사용하기 불편한 점이 있습니다.
- 부모요소 : position:relative;
- 자식요소 : position:absolute; top:50%; left: 50%; margin-top:-(자식 요소 높이값의 반); margin-left:-(자식 요소 가로값의 반);
- 5. 만약 자식요소의 가로값과 세로 값을 모르고 유동적인 경우에 절대 요소를 사용하여 가운데로 오는 정렬방법입니다.
- 부모요소 : position:relative;
- 자식요소 : position:absolute; top:50%; left: 50%; transform:translate(-50%, -50%);
- 6. 절대 요소를 이용한 가운데 정렬 방법이지만 흔하게 쓰이지는 않습니다.
- 부모요소 : position:relative;
- 자식요소 : position:absolute; top:0; left:0; top:0; right:0; margin: auto;
- 7. CSS3를 이용한 방법이지만 최신 브라우저 이외에서는 작동하지 않는 단점이 있지만 표준화 된다면 앞으로 많이 쓰일 방법입니다.
- 부모요소 : height 값 설정
- 자식요소 : display: flex; justify-content: center; align-items: center;