태그는 HTML에서 텍스트를 표현하는데 사용되는 기본적인 태그로 여기서 p는 문단을 뜻하는 paragraph의 약자입니다. 하지만 이 태그는 기본적으로는 개행을 처리하지 못해 텍스트들이 기본적으로 일렬로 쭉 나열되는 형태로 표현이 되는데요. 이러면 문단의 가독성이 떨어지겠죠. 이번 포스팅에서 해결방법에 대해 알아보겠습니다. 문제) 태그에서 개행이 표현이 안됨 See the Pen P Tage1 by wjdxo513 (@wjdxo513) on CodePen. 위의 예제를 보시면 태그 안에서 애국가의 1절의 가사가 줄바꿈이 4번 이루어졌음에도 불구하고 줄바꿈이 표현되지 않고 일렬로 쭉 나열된 것을 보실 수 있습니다. 태그는 기본적으로 white-space 속성값이 normal으로 되어 있어 개행이 무시되기에..
sticky는 영어로 '끈적끈적하다'라는 형용사입니다. position : sticky로 설정하면 끈적끈적하다는 말처럼 스크롤을 계속해서 따라오는 html요소를 생성할 수 있는데요. sticy position으로 설정되어 있는 요소는 스크롤하지 않을 때는 static position처럼 동작하다가 스크롤할 때는 이전 포스팅에서 배웠던 fixed position처럼 작동합니다. 아래 예시를 보시면 이해가 빠르실 겁니다. position : sticky 사용법 See the Pen position : sticky by wjdxo513 (@wjdxo513) on CodePen. top : 상단에서 픽셀만큼 요소를 아래에 고정시킵니다. right : 우측에서 픽셀만큼 요소를 왼쪽에 고정시킵니다. left : 좌..
position : fixed는 문서의 흐름과 상관없이 위치로 좌표로 결정합니다. 브라우저 창(뷰포트)이 기준이 되며 브라우저 창의 왼쪽 위 꼭짓점을 원점으로 두고 좌표가 계산됩니다. 이 position : fixed 속성을 사용하면 이름처럼 브라우저 창을 스크롤하더라도 한 곳에 계속 고정되어 표시됩니다. 이를 활용하여 헤더, 사이드바, 모달 창 등을 구현할 수 있습니다. position : fixed 사용법 See the Pen position : fixed by wjdxo513 (@wjdxo513) on CodePen. top : 상단에서 픽셀만큼 요소를 아래에 고정시킵니다. right : 우측에서 픽셀만큼 요소를 왼쪽에 고정시킵니다. left : 좌측에서 픽셀만큼 요소를 오른쪽에 고정시킵니다. bo..
CSS의 position 속성은 요소의 위치를 배치하는데 사용되는 속성입니다. position 속성을 이용하면 텍스트나 이미지와 같은 특정 html 요소를 나란히 배치할 수도 있고 가로나 세로로 원하는 위치에 배치할 수도 있으며 경우에 따라서는 스크롤을 따라다니거나 화면 한 곳에 고정도 시킬 수 있습니다. CSS position 속성 사용법 CSS position 속성값 static : 기본적으로 설정되는 값으로, 요소를 문서의 흐름에 맞추어 배치합니다. 다른 위치 속성들과 달리 추가 속성을 사용하지 않습니다. relative : 이전 요소에 자연스럽게 연결하여 배치하되 상대적인 위치를 지정할 수 있습니다. top, right, bottom, left 속성을 사용하여 요소를 이동시킬 수 있습니다. abs..
일반적으로 웹에서 테이블을 만드려면 태그를 사용하지만 display : table 속성을 사용해서 HTML 요소를 테이블 형태로 표시할 수도 있습니다. 이번 포스팅에서는 display: table을 사용하여 테이블 형태의 레이아웃을 만드는 방법에 대해 알아보겠습니다. display : table 사용법 See the Pen css display:table by wjdxo513 (@wjdxo513) on CodePen. display: table = 해당 요소를 테이블 컨테이너로 만듭니다. display: table-row = 해당 요소를 테이블 행으로 만듭니다. display: table-cell = 해당 요소를 테이블 열로 만듭니다. 위와 같이 display:table을 사용하여 요소를 테이블 컨테이너..
※ "display: none"은 요소를 화면에서 숨기고 레이아웃에 공간을 차지하지 않게 만드는 데 사용됩니다. 화면에서 특정 요소를 감추고 싶다면 어떻게 해야 할까요? 이럴 때는 주로 CSS의 display속성을 none로 바꿔주면서 요소를 화면에서 감추게 됩니다. "display:none"을 적용한 요소는 브라우저에서 렌더링 되지 않으며, 화면에도 표시되지도 공간을 차지하지도 않습니다. 접근성, 동적 상태 관리, 성능 개선, 애니메이션 등 다양한 목적으로 사용될 수 있으나, 남용에 주의해야 하며, 접근성과 검색 엔진 최적화를 고려해야 합니다. display : none를 사용하는 이유 웹 접근성: 일부 웹 요소는 시각적으로는 표시되지 않지만 스크린 리더와 같은 보조 기술을 사용하는 사용자에게는 필요할..
그리드(grid)는 이전 포스팅에서 배웠던 플렉스(flex)와 같이 모던 CSS에서 레이아웃을 다루기 위해 사용되는 기능으로 반응형 웹 페이지 레이아웃을 효과적으로 만들기 위한 레이아웃 시스템입니다. 플렉스(flex)가 가로 또는 새로 단일 방향 레이아웃을 배치하는 데 적합하다면 그리드는 마치 표처럼 행과 열로 구성된 레이아웃을 배치하는데 더 적합한 기능이라고 할 수 있습니다. CSS 그리드는 행(row)과 열(column)로 구성된 2차원 그리드로 웹 요소를 배치하는 방법을 제공하며 그리드 아이템의 위치와 크기를 유연하게 조정할 수 있습니다. 이를 통해 반응형 레이아웃을 구현하는데 매우 유용합니다. ※ CSS Flexbox에 궁금하시다면 아래 글을 참고해 주세요. [CSS] display : flex에..
반응형 웹을 구현하는 가장 대중적인 방법은 flex box를 활용한 플렉스 박스 레이아웃으로 화면을 구성하는 것입니다. 플렉스 박스 레이아웃이란? 플렉스 박스(Flexbox) 레이아웃은 CSS의 display 속성 중 하나인 display: flex를 사용하여 요소들을 가로 또는 세로축을 따라 정렬하고 유연하게 배치하는 레이아웃 모델입니다. 이 플렉스 박스를 사용하면 여유 공간에 따라 너비나 높이, 위치 등을 자유롭게 변형할 수 있고 손쉽게 화면을 분할하여 필요한 HTML요소들을 배치할 수 있기 때문에 웹 페이지의 레이아웃을 쉽게 조정하고 정렬할 수 있습니다. 플렉스 박스의 구성요소 flex container : 웹 문서에 텍스트나 이미지, 표 등 웹 요소들을 플렉스 하게 사용하려면 플렉스 컨테이너로 묶..
블록 레벨 요소와 인라인 레벨 요소 HTML 태그들은 블록 레벨 요소인지 인라인 레벨 요소인지에 따라 나열 방법이 달라집니다. 위의 이미지를 보시면 블록 레벨 요소는 세로로 하나씩 배치되어 있는 반면 인라인 레벨 요소는 가로로 하나씩 배치되어 있는 모습을 보실 수 있습니다. 블록 레벨 요소에 대하여 태그를 사용하여 요소를 삽입했을 경우 혼자서 한 줄을 차지하는 요소입니다. 해당 요소의 왼쪽이나 오른쪽에 다른 요소가 올 수 없습니다. 먼저 블록 레벨 요소는 좌측의 사진처럼 요소를 삽입 했을 때 혼자 한 줄을 차지합니다. 한 줄을 차지한다는 것은 해당 요소의 너비가 100%라는 의미입니다. 따라서 그 요소의 왼쪽이나 오른쪽에 다른 요소들이 올 수 없습니다. 대표적인 블록 레벨 HTML 태그들 , , , , ..
웹 사이트에 접속할 수 있는 다양한 디바이스들이 있습니다. 그리고 디바이스마다 화면의 크기가 다르죠. 이렇게 다양한 크기를 가진 모든 디바이스를 모두 같은 UI로 웹 사이트를 표현한다면 굉장히 비효율적일 것입니다. 그래서 반응형 웹 디자인은 사이트에 접근하는 기기의 해상도에 따라 서로 다른 스타일을 적용해주어야 하며 이는 CSS의 미디어 쿼리를 활용해서 각각의 디바이스의 크기에 맞는 최적의 UI들을 따로 설정해 줄 수 있습니다. 미디어 쿼리란? @media [only | not] 미디어 유형 [and 조건] * [and 조건] 미디어 쿼리(Media Query)는 웹 개발에서 사용되는 CSS 기술로써 반응형 웹 디자인(Responsive Web Design)의 핵심 요소로 사용됩니다. 미디어 쿼리는 미디..
웹 사이트의 레이아웃을 구성하는 방법이 여러 가지가 있겠지만 최근에는 그리드 시스템을 많이 사용합니다. 그리드 시스템은 웹 페이지의 레이아웃과 구성 요소를 조정하기 위한 구조적인 시스템으로 그리드를 사용하면 웹 페이지의 구성 요소를 일관되고 조화롭게 배치할 수 있습니다. 일반적으로 웹 사이트의 그리드 시스템은 열(column)과 행(row)으로 구성됩니다. 각 열은 일정한 너비를 가지고 있고, 이를 기준으로 콘텐츠를 배치합니다. 웹 그리드 시스템 웹 그리드 시스템은 주로 Column, Margin, Gutter로 구성되며 이 세 가지 요소의 비율을 조절하여 원하는 그리드를 구성할 수 있습니다. Margins 여백(Margins)은 콘텐츠 영역의 양 끝에 있는 공간으로, 여백의 넓이는 일정한 값으로 설정되..
웹 화면에 일반적인 버튼을 넣으면 밋밋할 수 있습니다. 버튼을 CSS로 꾸며서 조금 더 멋진 웹 사이트를 만들 수도 있지만 이미지 버튼을 만들 수도 있습니다. 이미지 버튼이란 버튼 모양을 가진 이미지를 의미합니다. 이미지 버튼을 만들기 위해서 단순히 이미지 태그에 onclick 메서드를 걸면 되는 거 아니야?라고 생각할 수 있지만 이미지에는 onclick 메서드가 정상 작동하지 않기 때문에 태그를 활용해서 코드를 작성해야 합니다. 이미지 버튼(image button)을 만드는 두가지 방법 만들기 버튼 태그 안에 이미지 버튼을 포함하는 방법 일반적으로 이미지 버튼을 만들기 위해 정보를 찾으면 위와 같은 코드가 나옵니다. 과거에 이미지 버튼을 만들었을 때 주로 사용하던 방식으로 버튼 태그 안에 이미지를 삽입..
HTML 버튼은 웹 페이지에서 사용자가 클릭할 수 있는 클릭 가능한 요소를 말합니다. 사용자가 버튼을 클릭하면 개발자가 미리 지정해 놓은 특정 작업이 실행됩니다. HTML 버튼 만들기 버튼의 종류(button type) 버튼 타입 설명 button 버튼 형태를 만들며 자체기능은 없습니다. onClick 메서드를 활용하여 특정 액션을 취하는 기능을 넣을 수 있습니다. submit 폼(form)에서 입력받은 데이터들을 서버로 전송합니다. reset 폼(form)에서 입력받은 데이터들을 초기화 시킵니다. 버튼을 만드는 두 가지 방법 HTML에서 버튼을 만들 수 있는 방법은 두 가지가 있는데 처럼 input type을 사용해서 만들 수도 있고 간단히 태그를 사용해서 삽입할 수도 있습니다. 첫 번째 방법 (inp..