0054 CSS 내용(content)영역 설정하기-widthheight


CSS의 heightwidth 속성(property)으로 HTML 요소높이너비를 설정할 수 있다. 이 때, height와 width 속성(property)이 설정하는 것은 정확히는 박스 모델에서 내용(content) 영역의 높이와 너비를 결정하는 것이다.

    

즉, 아래의 그림처럼 박스 모델에서 내용(content) 영역의 크기를 결정한다.

    


height 속성(property)은 내용(content) 영역높이(height)를 설정한다. 

   

width 속성(property)은 내용(content) 영역너비(width)를 설정한다. 

    

보통, height와 width기본값(default)auto로 설정되어 있어, height와 width 속성을 설정하지 않으면 브라우저가 자동으로 설정한다. 

   

다음과 같이 0054.html파일을 작성하여 실행해보자. 

    

<!DOCTYPE html>

   

<html>

<head>

 <title>내용영역 너비와 높이</title>

 <style>

  div

   width: 100px;

   height: 50px;

   background-color: red;

  }

 </style>

</head>

<body>

 <div></div>

</body>

</html>


<div> 요소의 내용(content) 영역을 너비(width) 100px, 높이(height) 50px 로 설정하고 배경색(background-color)빨간색으로 설정했다.



다시 강조하지만 height와 width 속성(property)이 설정하는 것은 정확히는 박스 모델에서 내용(content) 영역의 높이와 너비따라서 요소마진(margin), 패딩(padding), 테두리(border)두께와는 전혀 상관없다. 

   

이미 앞에서 <img /> 요소의 크기를 결정할 때 style 속성으로 height와 width를 다루는 것을 0017강에서 이미 언급했다. 

    

이를 박스 모델 입장에서 본다면 <img /> 요소에서 이미지가 들어갈 내용(content) 영역의 높이와 너비를 결정한 것이다. 


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


Ankilog 파일:  0054 CSS 내용(content)영역 설정하기-width와 height.apkg




0018 이미지를 보여주는 img 요소 03 이미지 다루기


5. HTML 페이지가 이미지를 다루는 법


HTML 페이지는 순수하게 텍스트일 뿐이어서 이미지가 중간에 삽입되거나 하지 않는다. 그렇다면 웹 브라우저는 <img /> 요소를 어떻게 보여주는가?

    

웹 브라우저는 웹페이지를 위에서 아래로 차례대로 읽으면서 텍스트들은 바로바로 화면에 표시하고 <img /> 요소를 읽으면 일단, <img /> 요소가 표시될 공간을 확보해놓고 다음을 읽으면서 계속 화면을 표시한다.

    

웹 브라우저는 표시할 이미지 파일을 서버에서 가져와서 해당 이미지를 위하여 확보된 공간에 로딩하기 시작한다. 이 과정은 웹페이지 파일을 읽어서 표시하는 과정과 별도로 이루어진다. 

    

<img /> 요소로 정의된 이미지들은 기술적으로는 HTML 페이지에 삽입되는 것이 아니라 HTML 페이지에 링크로 연결되는 것이다. <img /> 요소가 하는 일은 참조하려고 하는 이미지가 배치될 공간을 준비하는 것이다.

    

이 때, <img /> 요소에 속성으로 이미지가 들어갈 공간의 크기(size)를 정하지 않았을 경우 이미지가 나중에 로드되면서 공간이 벌어져 웹 페이지가 출렁거리는 것을 볼 수 있다.



6. 이미지 형식

웹에서 일반적으로 사용되는 이미지 형식은, JPEG, PNG, GIF이다. 
    
이러한 이미지 형식을 어떤 상황에 어떻게 써야하는지 간략하게 알아보자. 

JPEG 형식

    

가장 넓은 범위의 색(1,600만개의 색)을 지원하는 이미지 형식이므로 다양한 색이 연속적으로 표현되어야 하는 사진이나 스캐너 등에서 가장 흔히 사용되는 이미지 형식이다.

    

이미지 원본을 훼손하여 파일 크기가 감소되는 ‘손실이 많은’ 압축형식이다. 

   

그래픽 품질을 떨어뜨려 압축하면 용량이 작이지므로 웹에서 효율적으로 사용 가능

   

JPEG는 투명도와 애니메이션을 지원하지 않는다


PNG 형식

   

PNG는 몇 가지 단색이나 로고, 클립아트 같은 선이 있는 이미지, 텍스트가 있는 이미에 가장 잘 맞는다.

    

PNG는 수백만 가지의 다른 색(표현하고자 하는 색의 수에 따라서 PNG-8, PNG-24, PNG-32 세 가지로 분류)을 가진 이미지를 표현할 수 있다. 

    

PNG는 파일을 압축해 크기를 줄이지만, 원본을 훼손하지 않는 무손실 압축형식이다.

   

투명 모드 설정을 할 수 있어 이미지 밑으로 모든 것을 볼 수 있다.

    

JPEG와 비교하면 파일 크기는 커지는 경향이 있지만, 사용된 색상의 수에 따라 GIF보다 작거나 커질 수 있다. 


GIF 형식

    

PNG와 마찬가지로 GIF는 몇 가지의 단색이나, 로고, 클립아트 같은 선이 있는 이미지, 텍스트가 있는 이미지에 가장 잘 맞는다. 

    

GIF는 256가지 색상을 표현할 수 있다.

    

GIF는 무손실 압축형식이다. 

    

GIF는 오직 한 가지 색상만 ‘투명’하게 설정할 수 있다.

    

애니메이션을 지원한다. 

     

JPEG와 비교해 파일 크기가 크다.


결론적으로 사진이나 복잡한 그래픽에는 JPEG를 사용하고 단색이나 로고, 기하학적 모양의 이미지에는 PNGGIF를 사용하는 것이 적절하다.


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


Ankilog 파일:  0018 이미지를 보여주는 img 요소 03 이미지 다루기.apkg





0016 이미지를 보여주는 <img /> 요소 01


1. <img /> 요소 사용법

    

HTML 페이지에 사진이나 그림 등의 이미지를 잘 사용하면 세련된 페이지를 만들 수 있다. 이런 경우 이미지를 집어넣기 위해서 사용하는 요소<img /> 요소다.

    

<img /> 요소는 이미지를 정의하는 빈요소로 보통 다음과 같은 형식으로 작성한다.

    

<img src="URL 또는 상대경로" width="픽셀수" height="픽셀수" alt="대체할 문구" />


<img /> 요소에서는 src, width, height, alt4가지 속성을 잘 알아두어야 한다. 



2. <img /> 요소의 src 속성


<img /> 요소는 내용(content)이 없이 이미지를 보여주는 것이므로 속성(attribute)을 이용하여 해당 이미지를 불러와야 한다. 이 때 필요한 것이 src 속성이다. 

    

src 속성은 이미지 파일의 위치를 명시한다. 파일의 위치는 상대적인 파일의 위치뿐만 아니라, URL을 넣을 수도 있다. 

    

사용하는 URL에 대해서는 0015 URL 간략하게 이해하고 연습하기 포스팅에서 간단하게 다루었으니 참조하기 바란다. 

    

아래는 src 속성에 속성값을 URL로 넣은 경우다.

    

<img src="http://www.ankilog.com/images/sun.jpg" />


여기서 주의할 점은 URL의 마지막은 파일명이 되고, 웹페이지의 디폴트 파일처럼 디폴트 이미지라는 것이 설정되지는 않기 때문에 파일명까지 정확하게 써야 한다는 점이다. 

    

웹에서 원하는 이미지를 보았을 때, 보통 아래와 같이 마우스 우클릭으로 이미지 주소 복사를 통해 해당 URL을 얻을 수 있다.




src의 속성값으로 URL말고 상대적인 파일 위치를 넣을 수 있다. 즉, 서버 내의 특정 디렉터리에 있는 파일을 불러오는 로컬 링크(link)의 경우 웹페이지 파일이 속한 디렉터리를 기준으로 원하는 이미지 파일의 위치에 도달하는 경로를 명시할 수 있는데 이를 상대경로(relative path)라고 말한다.

     

가령, 불러오고 싶은 sun.jpg 라는 이미지 파일이 웹 페이지 파일과 동일한 디렉터리에 있으면 아래와 같이 속성값에 파일의 이름을 그대로 기입하면 된다.

    

<img src="sun.jpg" />


sun.jpg 이미지 파일이 웹 페이지가 있는 디렉터리의 하위 디렉터리(가령, images 디렉터리)에 있을 경우 해당 디렉터리의 이름 바로 뒤에 슬래쉬(/)를 붙여 이어서 경로를 작성한다. 이건 운영체제와 상관없이 슬래쉬(/)이다. 그리고 하위 디렉터리가 있는 만큼 얼마든지 슬래쉬로 이어서 하위로 내려갈 수 있다.

     

<img src="images/sun.jpg" />

<img src="images/category/sun.jpg" />


sun.jpg 이미지 파일이 웹 페이지가 있는 디렉터리 보다 상위에 있다면 마침표 2(..)로 나타내면 된다. 이는 최상위 디렉터리인 루트까지 이어질 수 있다.

     

<img src="../sun.jpg" />

<img src="../../../../sun.jpg" />


사례를 한 번 살펴보자다음은 서버에 있는 웹사이트 관련 파일들의 디렉터리 구조다. 



각각의 웹페이지 파일의 <img /> 요소에서 src 속성의 속성값으로 sun.jpg 파일에 도달하는 상대경로를 기입한 경우다.

   

main 디렉터리의 index.html

<img src="images/sun.jpg" />

웹페이지 파일이 있는 디렉터리의 하위에 있는 images 파일로 이동하여 sun.jpg 파일을 찾음

   

about 디렉터리의 map.html

<img src="../images/sun.jpg" />

웹페이지 파일이 있는 디렉터리에서 상위 디렉터리로 이동한 후 다시 그 상위 디렉터리의 하위에 있는 images 파일로 이동하여 sun.jpg 파일을 찾음

   

etc 디렉터리의 etc.html

<img src="../../images/sun.jpg" />

웹페이지 파일이 있는 디렉터리에서 상위 디렉터리로 두 번 이동한 후 그 마지막 상위 디렉터리의 하위에 있는 images 파일로 이동하여 sun.jpg 파일을 찾음

   

images 디렉터리의 picture.html

<img src="sun.jpg" />

웹페이지 파일과 sun.jpg 파일이 같은 디렉터리에 있으므로 바로 이름으로 기입


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


Ankilog 파일:  0016 이미지를 보여주는 img 요소 01.apkg





문서는 Anki 2.0 유저 매뉴얼을 번역한 문서입니다.


기본적으로 구글 번역을 통해서 초벌을 번역하고 이를 수정하는 방식으로 번역했습니다. 


또한, 본문에 충실한 직역보다는 매뉴얼을 숙지하기 쉽도록 의역 위주로 번역하였습니다.


 


Anki 매뉴얼 전체 개요 페이지 가기




Cards and Templates

 

 

 

 Card Styling(카드 꾸미기)

 

 

YouTube에서 카드를 꾸미는 것에 대한 동영상을 볼 수 있다.  

 

 

카드창을 열어보면 앞면 템플릿과 뒷면 템플릿 사이에 카드 스타일을 설정할 수 있는 스타일 섹션이 있다.

 

여기에서 카드의 배경색, 기본 글꼴, 텍스트 정렬 등을 변경할 수 있다.

 

 

 

주의 : 위에서 언급한 스타일 섹션에서 다양한 설정이 가능하지만 답을 텍스트 박스에 입력하고 이것을 실제 답과 비교하는 과정에서 사용되는 텍스트 박스의 글꼴을 변경할 수 없다. 만일 텍스트 박스에서 글꼴을 변경하는 법을 배우고 싶다면 "답을 입력하고 확인하기" 섹션과 "필드를 입맛대로 사용하기" 섹션을 참조하면 된다.  

 

 

스타일 섹션에서 사용할 수 있는 표준 옵션은 다음과 같다.

 

 font-family

카드에 사용할 글꼴의 이름이다. 위의 카드창에는 다음과 같이 작성되어 있다. 글꼴의 이름에 "MS Unicode"와 같은 공백이 있으면 이 문장에서와 같이 큰 따옴표로 묶어주어야 한다. 하나의 카드에 여러 글꼴을 사용할 수 있다. 이에 대한 정보는 아래를 참조하라.

 

 font-size

픽셀 단위로 적는 글꼴크기이다. "px"라는 단위를 삭제하면 안된다.

 

 text-align

텍스트를 중앙(center), 왼쪽(left), 오른쪽(right)로 정렬

 

 color

텍스트의 색이다. "blue", "lightyellow"와 같이 간단하게 색상이름을 쓰거나 HTML 색상 코드를 사용하여 임의의 색상을 선택할 수 있다. 자세한 내용은 이 웹페이지를 참조하라.

 

 background-color

카드의 배경색이다.

 

 

 

이 스타일 섹션에는 CSS를 마음껏 사용할 수 있다.

 

아마도 고급 사용자라면 배경 이미지나 그래디언트를 추가하는 등의 일을 하고 싶을 것이다.  

 

만일, 특정 서식이나 형식을 얻는 방법이 궁금하다면 웹을 검색하여 CSS로 어떻게 하는지 확인해볼 수 있다.

 

아마도 정말 많은 관련 문서들을 볼 수 있을 것이다.

 

 

 

스타일은 해당 노트유형을 사용하는 모든 카드에 공유된다.

 

즉, 현재의 노트유형에서 스타일을 수정하면 해당 노트유형을 사용하는 다른 카드도 전부 수정된다.

 

가령, 노트유형이 기본(역방향 카드 포함)이라면 하나의 노트당 2개의 카드가 생긴다.

 

따라서 기본(역방향 카드 포함)의 스타일을 변경하면 2개의 카드 전부 변하게 된다.

 

아래의 카드창에서는 background-colorwhite에서 yellow로 변경한 결과, 이 노트유형에 포함된 카드1카드2 전부 배경색이 노란색으로 변경되었다.

 

 

 

물론 카드별로 스타일을 다르게 지정할 수도 있다.

 

다음 예제는 첫번째 카드는 파란색 배경을 사용하게 하는 코드이다.

 

.card1 { background-color: blue; }

 

아래의 카드창에 이 문구를 추가한 결과 <카드1>의 카드 배경색은 파란색으로 차별화됨

 

 

 

 

그리고 주의해야할 또 하나의 사실은 Anki에 이미지를 삽입하면 Anki는 이를 화면 크기에 맞추어 축소하게끔 하는 설정이 기본으로 되어 있다.

 

이를 수정하고 싶다면 스타일 섹션의 아래쪽에 다음을 추가하면 된다.

 

img { max-width: none; max-height: none; }

 

 

 

만일, 이미지의 스타일을 수정했는데 노트의 별표가 엄청나게 커진다든지 하는 영향을 받을 수 있다.

 

이런 경우에는 다음과 같이 노트의 별표 이미지만 대상으로 이를 수정할 수 있다.

 

img#star { ... }

 

 

 

 

Anki 매뉴얼 전체 개요 페이지 가기



+ Recent posts