안녕하세요, 여행벌입니다.

오늘은 웹 문서의 레이아웃을 짤 때 사용하는 div 태그에 대해서 포스팅해보겠습니다.


<div> 태그

 div 태그는 division 의 약자로 말 그대로 영역을 나누는 데 사용되는 태그입니다. 웹 페이지에서 논리적인 공간 구분을 정의하는 태그로 웹 사이트의 레이아웃을 만들 때 주로 사용합니다. 블록 라인 레벨 태그로 혼자 한 줄을 차지합니다.

예시 1) Header / Body / Footer

 div 태그를 이용해서 여러 가지 웹 사이트의 구조를 만들어보겠습니다.

 가장 심플한 웹 문서 구조는 Header / Body / Footer 3개의 영역으로 나눈 구조입니다. div 태그를 이용해서 나눠보도록 하겠습니다. 정확한 예시를 위해 CSS를 적용해서 예시를 다뤄보겠습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            width : 100%;
            height : 500px;
            font-size : 3.5em;
            text-align : center;
        }
        .header{
            width : 100%;
            height : 20%;
            background-color : #C55A11;
        }
        .body{
            width : 100%;
            height : 60%;
            background-color : #F4B183;
        }
        .footer{
            width : 100%;
            height : 20%;
            background-color : #F8CBAD;
        }
    </style>
</head>
<body>
    <div class="header">Header영역</div>
    <div class="body">Body영역</div>
    <div class="footer">Footer영역</div>
</body>
</html>

 div 태그를 이용해서 Header, Body, Footer 영역을 설정하고 블록 레벨 태그이므로 width, height 속성을 적용해서 위의 예시와 같이 영역을 나눌 수 있습니다. 

예시 2)  Header / Body / LeftSideBar / RightSideBar / Footer 

 다음으로는 웹 문서 구조로 자주 쓰이는 Header / Body / LeftSideBar / RightSideBar / Footer 구조를 div 태그를 이용해서 나눠보겠습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            width : 100%;
            height : 500px;
            font-size : 3.5em;
            text-align : center;
        }
        .header{
            width : 100%;
            height : 20%;
            background-color : #C55A11;
        }
        .body{
            display : flex;
            height : 60%;
        }
        .content{
            width : 60%;
            background-color: #F4B183;
        }
        .leftSideBar, .rightSideBar{
            width : 20%;
            background-color: #ED7D31;
        }
        .footer{
            width : 100%;
            height : 20%;
            background-color : #F8CBAD;
        }
    </style>
</head>
<body>
    <div class="header">Header영역</div>
    <div class="body">
        <div class="leftSideBar">LeftSideBar영역</div>
        <div class="content">Body영역</div>
        <div class="rightSideBar">RightSideBar영역</div>
    </div>
    <div class="footer">Footer영역</div>
</body>
</html>


이상으로 div 태그 포스팅을 마치도록 하겠습니다.

안녕하세요, 여행벌입니다.

오늘은 드롭다운 목록을 만들 때 사용하는 select, optgroup, option 태그에 대해서 포스팅해보겠습니다.


<select> <option> 태그

 사용자가 내용을 입력하는 것이 아니라 여러 옵션 중에서 선택하도록 하고 싶을 때 드롭다운 목록을 사용합니다. 드롭다운 목록이란 클릭했을 때 옵션들이 요소 아래쪽으로 펼쳐지므로, 공간을 최소한으로 사용하면서 여러 옵션을 표시할 때 이용합니다.

 드롭다운 목록은 <select> 태그와 <option> 태그를 이용해 표시합니다. <select> 태그로 드롭다운 모곩의 시작과 끝을 표시하고 그 안에 <option> 태그를 사용해 원하는 항목들을 추가합니다.

<!-- 기본형 -->
<select 속성="속성값">
  <option value=""></option>
  <option value=""></option>
  <option value=""></option>
</select>

size 속성 ( <select> 태그 )

 화면에 표시될 드롭다운 메뉴의 항목 개수를 지정합니다.

<select size="5"> </select>

multiple 속성 ( <select> 태그 )

 브라우저 화면에 여러 개의 옵션이 함께 표시되면서 ctrl 키를 누른 상태로 드롭다운 메뉴에 있는 여러 항목을 선택할 수 있습니다.

<select multiple> </select>

value 속성 ( <option> 태그 )

 옵션을 선택했을 때 서버로 넘겨질 값을 지정합니다.

<option value="이값을서버로넘깁니다."></option>

selected 속성 ( <option> 태그 )

 화면에 표시될 때 기본으로 선택되어 있는 옵션을 지정합니다.

<option selected></option>

<optgroup> 태그 - 옵션끼리 묶기

 드롭다운 목록에서 여러 항목들을 몇 가지 그룹으로 묶어야 할 경우, <optgroup> 태그를 사용할 수 있습니다.

예시1) size와 selected 속성 사용

<!doctype html>
<html lang="ko">
<head>
	<meta charset="utf-8">
	<title> 웹 폼</title>
	<style>
		body {
			background-color: #fff;
		}

		form fieldset {
			margin-bottom: 25px;
		}

		form legend {
			font-size: 15px;
			font-weight: 600;
		}

		.reg {
			font-size: 14px;
			width: 110px;
			color: #390;
			font-weight: bold;
			float: left;
			text-align: right;
			margin-right: 10px;
		}

		form ul li {
			list-style: none;
			margin: 15px 0;
			font-size: 14px;
		}
	</style>
</head>

<body>
	<h1> 멋사 특강 신청</h1>
	<form>
		<fieldset>
			<legend>수강 신청인</legend>
			<ul>
				<li>
					<label class="reg" for="id">대학교</label>
					<input type="text" id="id" autofocus>
				</li>
				<li>
					<label class="reg" for="name">이름</label>
					<input type="text" id="name">
				</li>
				<li>
					<label class="reg" for="class">학과</label>
					<select size="3" id="class" multiple>
						<option value="math" selected>수학과</option>
						<option value="mechanic">기계공학과</option>
						<option value="indust">산업공학과</option>
						<option value="elec">전기전자공학과</option>
						<option value="computer">컴퓨터공학과</option>
						<option value="chemical">화학공학과</option>
					</select>
				</li>
			</ul>
		</fieldset>
	</form>
</body>

</html>

예시2) optgroup 사용

<!doctype html>
<html lang="ko">
<head>
	<meta charset="utf-8">
	<title> 웹 폼</title>
	<style>
		body {
			background-color: #fff;
		}

		form fieldset {
			margin-bottom: 25px;
		}

		form legend {
			font-size: 15px;
			font-weight: 600;
		}

		.reg {
			font-size: 14px;
			width: 110px;
			color: #390;
			font-weight: bold;
			float: left;
			text-align: right;
			margin-right: 10px;
		}

		form ul li {
			list-style: none;
			margin: 15px 0;
			font-size: 14px;
		}
	</style>
</head>

<body>
	<h1> 멋사 특강 신청</h1>
	<form>
		<fieldset>
			<legend>수강 신청인</legend>
			<ul>
				<li>
					<label class="reg" for="id">대학교</label>
					<input type="text" id="id" autofocus>
				</li>
				<li>
					<label class="reg" for="name">이름</label>
					<input type="text" id="name">
				</li>
				<li>
					<label class="reg" for="class">학과</label>
					<select id="class">
						<optgroup label="공과대학">
							<option value="archi">건축공학과</option>
							<option value="mechanic">기계공학과</option>
							<option value="indust">산업공학과</option>
							<option value="elec">전기전자공학과</option>
							<option value="computer">컴퓨터공학과</option>
							<option value="chemical">화학공학과</option>
						</optgroup>
						<optgroup label="인문대학">
							<option value="history">사학과</option>
							<option value="lang">어문학부</option>
							<option value="philo">철학</option>
						</optgroup>
					</select>
				</li>
			</ul>
		</fieldset>
	</form>
</body>
</html>


드롭다운 목록을 프론트 개발 시 자주 사용되므로 꼭 잘 익혀두세요!

이상으로 포스팅을 마치도록 하겠습니다 :)

안녕하세요, 여행벌입니다.

이번 포스팅에서는 사용자 입력을 받는 <input> 태그에 대해서 다뤄보겠습니다.


input 태그

 웹에서의 폼은 크게 사용자가 입력하는 부분과 입력한 내용을 서버로 보내는 버튼 부분으로 나눌 수 있습니다. 이때, 사용자가 내용을 입력하는 부분은 한 줄짜리 텍스트나 비밀번호 같은 부분으로 <input> 태그를 이용해 만들 수 있습니다. 또, 체크 박스나 로그인 버튼처럼 사용자가 클릭하는 버튼도 <input> 태그를 이용합니다.

<input type="type속성값"> </input>

 기본 형태는 위와 같습니다. type에 따라 사용자가 입력할 수 있는 형태가 달라지고 input 태그는 굉장히 많은 type 유형이 있습니다.

type 속성

 input 태그의 type 유형은 굉장히 많습니다. 상황에 맞춰 적절한 type 속성 값을 적용해줘야합니다. 물론, 이 모든 type 유형을 외우는 건 불가능합니다! 이러이러한 유형들이 존재한다는 것만 알아두시고 필요할 때마다 구글링 할 수 있는 정도만 알아두시면 될 것 같습니다.

id 속성

 폼을 만들다 보면 똑같은 폼 요소가 여러 번 사용됩니다. 예를 들어 회원가입 폼을 만들 경우, 이름 입력 항목이나 주소 입력 항목 모두 <input type="text"> 를 이용하게 됩니다. 이렇게 여러 번 사용된 폼 요소를 구분하기 위해 사용하는 것이 id 속성입니다. id를 지정해 놓으면 <label> 태그를 이용해 캡션을 붙일 수도 있고 나중에 배울 CSS를 이용해 각 요소마다 다른 형태로 꾸밀 수도 있습니다.

<input type="type속성값" id="id값"> </input>

autofocus 속성 - 입력 커서 표시하기

 autofocus 속성을 이용하면 페이지를 불러오자마자 폼의 요소 중에서 원하는 요소에 마우스 커서를 표시할 수 있습니다. 아래 그림처럼 웹 페이지를 불러오자마자 입력할 수 있게 마우스 커서가 표시됩니다.

<input type="text" autofocus></input>

placeholder 속성 - 힌트 표시하기

 사용자가 텍스트를 입력할 때 도움이 되도록 입력란에 힌트를 표시할 때 사용하는 속성입니다.

<input type="text" placeholder="ex)010-****-****"></input>

readonly 속성 - 읽기 전용 필드 만들기

 readonly 속성은 해당 필드를 읽기 전용으로 바꿉니다. 필드 안에 내용은 있지만 사용자에게 내용을 보여주기만 하고 입력은 할 수 없게 합니다.

<input type="text" value="읽기만 가능합니다." readonly></input>

required 속성 - 필수 필드 지정하기

 내용을 폼에 입력한 후 submit 버튼을 클릭하면 폼을 서버로 넘겨주는데, 이때 꼭 입력받아야 하는 필드들이 모두 채워졌는지 검사해야 합니다. required 속성은 해당 필드를 입력해야만 제출이 가능하게 해줍니다.

<input type="text" required></input>

min, max, step 속성

 min 속성과 max 속성은 각각 해당 필드의 최솟값과 최댓값을 지정합니다. step 속성은 허용된 범위 내의 숫자의 일정한 간격을 가리킵니다.

● type이 date / datetime / datetime-local / month / week / time / number / range 인 경우 사용 가능.

<input type="number" min="10" max="100" step="10">

size, minlength, maxlength 속성 - 길이, 최소 길이, 최대 길이 속성

 min, max, step 속성과 다르게 size, minlength, maxlength 속성은 텍스트 길이에 조건을 걸어줍니다. size 속성은 텍스트 필드와 비밀번호 필드, 검색 필드 등 한 줄짜리 텍스트와 관련된 필드에서 화면에 몇 글자까지 보이게 할지 지정하고, minlength, maxlength 속성은 사용자가 최소, 최대 몇 글자까지 입력할 수 있는지 지정합니다.

<input type="text" size="10" minlength="4" maxlength="15">

value 속성 - 초기값 설정

 value 속성은 필드에 초기값을 설정해줍니다. 그리고 사용자에게는 보이지 않지만 서버로 정보를 넘길 때도 사용합니다. 하지만 placeholder 속성과 다르게 사용자가 지우고 입력을 해야 한다는 불편함이 있습니다.

<input type="" value="서버로넘기고싶은정보 혹은 초기값"></input>


이상으로 input 태그에 대한 포스팅을 마치겠습니다.

다양한 type과 다양한 속성들이 있는데 input 태그는 자주 쓰이니 익혀두시는 게 좋을 것 같습니다 :))

 안녕하세요, 여행벌입니다.

 오늘은 블록 레벨 태그와 인라인 레벨 태그는 어떤 특징을 가지고, 블록 레벨 태그에는 어떤 태그들이 있고 인라인 레벨 태그에는 어떤 태그들이 있는지 알아보겠습니다.


블록 레벨 요소(block-level element)

 블록 레벨 요소는 태그를 사용해 삽입했을 때, 혼자 한 줄을 차지하는 요소입니다. 한 줄을 차지한다는 것을 해당 요소의 너비가 100%라는 의미입니다. 따라서 그 요소의 왼쪽이라 오른쪽에 다른 요소가 올 수 없습니다. 너비나 마진, 패딩 등을 이용해 크기나 위치를 지정하려면 블록 레벨 요소여야 합니다.

● width, margin, height 속성을 정의하면 블록 레벨 요소는 모두 적용됩니다.

→ 화면 구성이나 레이아웃을 짤 때는 블록 레벨 요소를 사용.


인라인 레벨 요소(inline-level element)

 인라인 레벨 요소는 줄을 차지하지 않는 요소입니다. 즉 화면에 표시되는 콘텐츠만큼만 영역을 차지하고 나머지 공간에는 다른 요소가 올 수 있습니다. 따라서, 한 줄에 여러 개의 인라인 레벨 요소를 표시할 수 있습니다.

● margin은 상 / 하에 적용되지 않습니다. line-height 속성 이용.

● width, height 속성이 적용되지 않습니다.

● 인라인 속성을 가진 태그끼리 연속으로 사용되는 경우 최소한의 간격을 유지하기 위해 자동으로 외부 여백이 발생합니다.


블록 레벨 태그 / 인라인 레벨 태그

블록 레벨

<p> <h1>~<h6> <ul> <ol> <div> <blockquote> <form> <hr> <table> <filedset> 등

인라인 레벨

<img> <object> <br> <sub> <sup> <span> <input> <textarea> <label> <button>


예시

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>으갸갸갸갸갹</title>
    <style>
        .block{
            display : block;
            border : 1px solid red;
            margin : 10px;
            height : 50px;
            width : 200px;
            font-size : 2.5em;
        }
        .inline{
            display : inline;
            border : 1px solid blue;
            height : 50px; /* 속성 적용 x */
            width : 200px; /* 속성 적용 x */
        }
    </style>
</head>
<body>
    <div class="block">블록1</div>
    <div class="inline">인라인1</div>
    <div class="inline">인라인2</div>
    <div class="inline">인라인3</div>
    <a href="">인라인 옆에 a태그 추가하기.</a>
    <div class="block">블록2</div>
    <div class="inline">인라인4</div>
    <div class="block">블록3</div>
</body>

</html>

 블록 태그는 혼자 한 줄을 다 차지하기 때문에 블록1 다음에 오는 인라인1, 인라인2, 인라인3 태그가 블록1 옆이 아닌 아래에 한 줄로 나타나는 것을 볼 수 있습니다. 또, 인라인3 옆에 인라인 레벨 태그인 a 태그를 추가해도 다 같이 인라인 레벨이라 줄 바꿈이 없는 것을 확인할 수 있습니다. 


 

+ Recent posts