IT_Study/Web

HTML 기초 (3) - CSS란?

__Vivacé__ 2023. 1. 24. 19:58

UI(User Interface)와 UX(User eXperience)

UX

  • 유저 경험에 의한 디자인
  • 직접 혹은 간접적으로 이용하면서 느끼는 반응을 생각하며 설계
  • ex) 모바일화 → 오프라인 매장보다 편의성

UI

  • 사용자가 사용할 인터페이스를 보여주는 단계(시각화)

 

CSS (Cascading Style Sheets)

CSS를 가져오기 위한 세 가지 방법

  1. <style> 태그 활용
    • html 파일 내 header 태그 내에 style 태그를 정의해 활용
  2. <link>를 활용한 외부 참조
    • <link> - 외부 문서를 연결시키는 태그
    <link href=".css 경로" rel="stylesheet">
    
  3. inline 방식 - 각각의 태그마다 적용
  4. <div style="css 내용; ">

예제)

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

		<!-- 첫 번째 방법: style 태그를 header에 삽입 -->
    <style>
        div{
            color: blue;
        }
    </style>

		<!-- 두 번째 방법: link 태그 활용해서 외부 .css 파일 참고 -->
    <link href="./style.css" rel="stylesheet">
		
    // style.css 파일 내용
				p {
					color: green;
				}

</head>

<body>
    <div>
        BLUE COLOR
    </div>

    <!-- 세 번째 방법: style 속성 활용 inline 방식 -->
    <h1 style="color:red;">
        RED COLOR
    </h1>

    <p>
        GREEN COLOR
    </p>

</body>

CSS 선택자 적용 방식

<< download.png >>

  • * : 전체 선택자
    • 모든 태그에 적용
*{
	color: #000;
}
  • <태그명> : 유형 선택자
    • 특정 태그에만 적용
div{
	color: #000;
}
  • class 선택자
    • .은 class를 의미
    • 여러 태그에서 class 이름을 중복으로 써도 됨 (예시의 class name은 font-wrapper)
<head>
	<style>
        .font-wrapper{
            color: red;
        }
	</style>
</head>
<body>
	<!-- div.font-wrapper -->
	<div class="font-wrapper">
        빨강
	</div>

	<div class="font-wrapper">
        이것두 빨강
	</div>
</body>
  • id 선택자
    • #은 id를 의미
    • class와 다르게, id는 unique하게 쓰여야 함 (중복 사용 불가능)
<head>
	<style>
        .font-wrapper{
            color: blue;
        }
	</style>
</head>

<body>
    <!-- div#asdf -->
	<div id="asdf">
        빨강
	</div>
    
	<!-- 아래는 위랑 id가 중복이라서 불가능 -->
	<div id="asdf">
        이것두 빨강
	</div>

 

CSS 주요 속성

Font 관련

  • color : 폰트의 색상 변경 시 사용
  • font-size : 폰트의 크기 변경 시 사용
  • text-align : 텍스트 정렬 용도
    • left / center / right 활용
  • font-weight : 폰트의 두께를 변경할 때 사용
    • normal, bold, 100, 200, …
    {
    	color: red;
    	font-size: 30px;
    	text-align : center;
    	font-weight: bold;
    }

요소 자체 관련

  • border : 테두리를 그릴 수 있는 css
    • 문법 : 두께 종류 색상
  • background-color : 요소의 배경색을 바꿈
  • width, height : 너비, 높이 설정
{
	border: 1px dotted black; // 1px 두께의, 점선, 검은색
	width: 50% // 자신을 감싸고 있는 태그의 50%의 너비를 갖겠다
	height: 40px; // 이 요소는 40px 높이를 갖겠다
}
  • border-radius : 각 테두리 별 꼭지점 부분을 둥글게 만듦
    • 10% → 엣지 둥글게, 50% → 원형
    {
    	border-radius: 10%
    	// 위는 아래와 같다.
    	// border-top-left-radius: 10%;
    	// border-top-right-radius: 10%;
    	// border-bottom-right-radius: 10%;
    	// border-bottom-left-radius: 10%;
    }
    
  • margin : 바깥쪽 여백을 의미
    {
    	margin: 10px;
    		// 아래와 같은 의미
    		// margin-top: 10px; -> 위로부터 10px 떨어지게 배치
    		// margin-right: 10px;
    		// margin-bottom: 10px;
    		// margin-left: 10px;
    
    	margin: 10px, 20px, 10px, 20px;    ->    위, 오른쪽, 아래, 왼쪽; (시계방향)
    	margin: 10px, 20px;                ->    위/아래, 왼쪽/오른쪽;
    }
    
    
    
    <head>
    	<style>
            .box{
                border: 1px solid black;
                width: 120px;
                height: 120px;
            }
    		/* auto는 자동으로 끝까지 민다고 생각하면 됨 */
            .aa{
                margin-left: auto; 
            }
            .bb{
    		/* 위아래 0 왼쪽 오른쪽 auto -> 양쪽을 밀어 정렬한거임 */
                margin:0 auto;
            }
            .cc{
                margin-right: auto;
            }
        </style>
    </head>
    <body>
        <div class="box aa">aa</div>
        <div class="box bb">bb</div>
        <div class="box cc">cc</div>
    </body>
  • padding: 안쪽 여백을 의미
    • margin과 표현법은 같다.

  • 특정 CSS 요소들은 부모 태그로부터 상속을 받음
    • ex) text-align, font-size, color 등
    • %를 사용하면, 부모 태그의 너비와 높이에서 영향을 받음

  • background-image: 배경 이미지를 설정하기 위한 옵션
  • background-repeat: 배경이미지에 대한 반복 여부를 정하는 옵션 / default는 반복
  • background-size
    • auto(default) : 원래 크기에 맞게 배치 / h,w가 작아져도 이미지 크기 안 변함
    • cover : 이미지가 배경을 가득 채우도록 진행 / h,w에 맞게 알아서 조절
    • contain : 가장 긴 축에 맞춰서 이미지 가득 채움 / h가 크면 h에 맞게 이미지 크기 확대
<style>
.image-wrapper{
	background-image: url(”이미지경로”);
	background-repeat: no-repeat;
	background-size: auto;
}
</style>
.
	<div class="image-wrapper"></div>
  • box-shadow : 해당 요소에 그림자 효과 추가
.box{
	width: 40px;
	height: 40px;
	border: 1px solid black;
	/* box-shadow 문법 : 수평 수직 흐림반경 확산거리 색 */
	box-shadow: 12px 12px 12px 1px blue;
}