작성 : 2024. 4. 18.
선택자들
- 하위선택자
div p,h1 {
color: blue;
}
div h1 {
color: blueviolet;
}
div p {
color: rgb(200, 78, 169);
}
- 자식선택자
div > p,h1 {
color: rgb(53, 152, 79);
}
- 인접선택자
/* 첫번째 동생찾기 */
h1 + p {
color: chartreuse;
}
/* 동생들 찾기 */
h1 ~ p {
color: cornflowerblue;
}
- 속성선택자
a[href] {
color: rgb(241, 72, 72);
}
a[target="_blank"] {
color: rgb(229, 142, 202);
}
[class ~= "button"] {
color: rgb(103, 150, 207);
}
/* '속성의 이름이 eng로 시작하는' 이라는 의미 */
a[title ^= "eng"] {
color: cadetblue;
}
/* '속성의 이름이 ese로 끝나는' 이라는 의미 */
a[title $= "ese"] {
color: red;
}
/* '속성의 이름에 e가 들어가는' 이라는 의미 */
a[title *= "e"] {
color: darksalmon;
}
- 가상선택자
/* 가상클래스와 가상요소 */
/* 이것을 사용하지 않으면 해결하기 쉽지않은 것들이 있어 잘 알아둬야 함. */
a:link{
text-decoration: none;
}
/* 가상선택자 hover */
a:hover{
text-decoration: underline;
}
a:active{
color: aqua;
}
a:visited{
color: darkgray;
}
p:hover{
color: rgb(61, 165, 130);
}
ul li input:checked + label{
color: gold;
}
- 구조선택자에 대해서
/* 구조선택자 */
/* 특정위치에 있는 요소(태그)를 찾는 방법 */
/* 특정위치에 자식요소 선택자를 찾는 방법 */
.contents :nth-child(3) {
color: cadetblue;
}
.contents p:nth-of-type(3) {
color: rgb(26, 215, 26);
}
ul li{
list-style-type: none;
float: left;
}
/* 예를 들어 짝수만 선택해서 디자인해야한다 했을 때 구조를 이용해 선택할 수 있는 방법 */
ul li:nth-child(2n) {
background-color: blue;
}
ul li:nth-child(2n+1) {
background-color: rgb(160, 160, 248);
}
- 구조선택자
코드 :
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>가상 요소</title>
<style>
.container {
width: 960px;
margin: 0 auto;
}
ul li {
margin: 15px;
}
li.new2::after {
content: "NEW!!";
font-size: x-small;
padding: 2px 4px;
margin: 0 10px;
border-radius: 2px;
background: #f00;
color: #fff;
}
/* li.new에 이런 내용이 있으면 after를 적용해라 */
li.new::before {
content: "NEW!!";
font-size: x-small;
padding: 2px 4px;
margin: 0 10px;
border-radius: 2px;
background: #f00;
color: #fff;
}
</style>
</head>
<body>
<div class="container">
<h1>제품 목록</h1>
<ul>
<li class="new">제품 A</li>
<li class="new2">제품 B</li>
<li class="new2">제품 C</li>
<li class="new">제품 D</li>
</ul>
</div>
</body>
</html>
폰트 속성에 대하여
CSS는 단위를 붙여주지 않으면 실행이 안됨!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>font 속성</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link
rel="preconnect"
href="https://fonts.gstatic.com"
crossorigin="crossorigin">
<link
href="https://fonts.googleapis.com/css2?family=Kirang+Haerang&display=swap"
rel="stylesheet">
<style>
body {
/* 절대크기 : px, pt */
/* 상대크기 : %, em */
font-size: 24px;
}
h1 {
/* 색 지정 방식 4가지
1. 직접 색을 넣어주기
2. 16진수 표기법
3. rgb()함수 사용법
4. rgma() rgv에 투명도 추가 */
font-family: Arial, Helvetica, sans-serif;
/* color: rgb(186, 99, 206); */
/* color:#86E57F */
color:rgb(94, 163, 107,0.4);
/* 레드, 그린, 블루, 투명도 */
}
p {
font-weight: bold;
font-style: italic;
}
.kirang-haerang-regular {
font-family: "Kirang Haerang", system-ui;
font-weight: 400;
font-style: normal;
}
h2 {
font-family: "Kirang Haerang", system-ui;
font-weight: 400;
font-style: normal;
}
</style>
</head>
<body>
<h1>폰트를 넣고, 다루는 법</h1>
<p>이걸 웹폰트라고 합니다</p>
<h2>어디에서나 동일한 글씨체로 볼 수 있어요</h2>
<h2 class="kirang-haerang-regular">클래스명을 글꼴명으로 바꾸기</h2>
</body>
</html>
<!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>
.link1 {
text-decoration: none;
}
.link2 {
text-decoration:overline;
}
.link3 {
text-decoration:line-through;
}
.link4 {
text-decoration:underline;
}
</style>
</head>
<body>
<a href="http://WWW.naver.com" class="link1">밑줄선을 없애준다</a><br>
<a href="http://WWW.naver.com" class="link2">글씨위에 선을 긋는다</a><br>
<a href="http://WWW.naver.com" class="link3">글씨에 선을 관통한다</a><br>
<a href="http://WWW.naver.com" class="link4">밑줄선을 긋는다</a><br>
</body>
</html>
- 목록의 모양 바꾸기
ul {
/* 목록의 모양을 없애는 태그 */
list-style-type:none;
}
ol {
/* 목록의 모양을 지정하는 태그 */
list-style-type:lower-roman;
}
- 테이블을 꾸미는 방법
table,td {
border: 1px solid blue;/* border: 굵기, 선종류, 선의 색깔; */
width: 250px;
height: 80px;
border-collapse: collapse;
caption-side: bottom;
}
디자인 연습에 들어가기 앞서,
디자인 할 때 큰 클을 먼저 잡아두고, 디자인에 들어가야 함.
내용 → 코드분석 → 크기 → 정렬 등 배치가 끝나는 것이 첫 번째!
- 디자인 연습문제
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>맛좋은사과팔아요</title>
<style>
#container{
width: 650px;
margin: 0 auto;
padding: 5px;
}
#check{
width: 640px;
border: 1px solid #ccc;
}
h1{
color: white;
background-color: rgba(0, 0, 0, 0.678);
font-size: 1em; /* 1em == 100% */
margin: 0;
padding: 10px;
}
h2{
color: rgb(244, 51, 51);
font-size: 1.5em;
text-align: center;
}
p{
text-align: center;
font-size: 1.2em;
line-height: 2em;
font-weight: bold;
}
.accent{
color: rgb(84, 84, 239);
}
.smalltext{
font-size: 0.7em;
color: white;
background-color: darkgray;
padding: 7px;
}
</style>
</head>
<body>
<div id="container">
<img src="images/top.jpg" alt="가정용 꿀사과 - 흠집이 있고 약간은 못생겼지만 맛과 영양은 그대로입니다. 질좋은 사과를 저렴하게 즐겨보세요">
<div id="check">
<h1>확인하세요</h1>
<h2>주문 및 배송</h2>
<p><span class="accent">오후 2시 이전</span> 주문건은 당일 발송합니다<br>
2시 이후 주문건은 다음날 발송합니다(주말 제외)</p>
<hr>
<h2>교환 및 환불</h2>
<p>불만족시 <span class="accent">100% 환불</span>해 드립니다<br>
고객센터로 전화주세요</p>
<hr>
<h2>고객센터 </h2>
<p>0000-0000<br>
<span class="smalltext">상담시간 : 오전 9시 ~ 오후 6시 (토/일, 공휴일 휴무)</span></p>
</div>
</div>
</body>
</html>
- 박스모델에 대하여
높이는 height
width 와 height → 기본 콘텐츠값
박스에 대해 알아보기 위해 여러 박스를 만들었다.
<!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>
/* div { */
/* border: 2px dashed #000; */
/* border-color:aquamarine */
/* border-top: 2px; */
/* border-style:solid; */ */
/* } */
/* .box1{
box-sizing: border-box;
width: 400px;
height: 100px;
border-top: 2px solid #b32a2a;
}
.box2{
width: 50%;
height: 100px;
border-top: 2px solid #b32a2a;
} */
/* .round {
border-radius: 200px 200px 200px 0;
} */
div {
width: 250px;
height: 150px;
}
.box1{
background-color: rgb(151, 240, 163);
margin: 20px 100px;
padding: 20px;
}
.box2{
background-color: rgb(249, 234, 246);
margin: 50px;
padding: 50px;
}
.box3{
box-sizing: border-box;
background-color: rgb(193, 235, 247);
margin: 30px;
padding: 20px 60px;
}
</style>
</head>
<body>
<div class="box1">box1</div>
<div class="box2">box1</div>
<div class="box3">box1</div>
<!-- <image src="images/cat.jpg"></image>
<br>
<image src="images/cat.jpg" class="round"></image> -->
<!-- <div class="box1"></div>
<div class="box2"></div> -->
</body>
</html>
display에 대해 알아봅니다
- display 속성과 float
아래 화면은 display 속성에서 인라인과 블록의 차이를 알기 위해 구현해본 것
<!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>
/* displsy속성
1. 요소를 화면에 숨기거나 나타냅니다
2. 요소의 성질을 변경
- inline
- inline-block
- block
*/
/* 요소(배체속성)
1. 인라인 요소 : 내용의 길이가 요소의 기본 크기
- span, img, input ...
- width, height, margin(좌우는 가능), padding(좌우는 가능) 등 속성 사용 불가
2. 블럭 요소 : 무조건 한 행을 크기로 사용한다
- p, h1, div ... */
/* 대표적인 블럭태그 */
p {
width: 200px;
height: 200px;
background-color: rgb(219, 246, 196);
display: block; /* none */
}
/* 대표적인 인라인태그 */
span {
display: inline-block; /* 블록으로 처리하면 다 바뀔 수 있음 */
width: 200px;
height: 200px;
margin: 50px 50px;
background-color: antiquewhite;
}
</style>
</head>
<body>
<p>내용1</p>
<span>내용2</span>
<span>내용3</span>
<p>내용1</p>
</body>
</html>
- float 속성
아래는 float 속성을 알기 위한 예제
/* float 속성이란
- 배치하는 속성
1. 요소를 왼쪽 또는 오른쪽으로 배치
- left, right
2. 인라인하게 만든다
*/
/* float 속성이 정의한 방향으로 딸려 올라간다. */
/* 원래 위치를 유지하려고 하면 딸려올라가는 대상에 clear 속성을 사용하자 */
img{
float: right;
}
p{
clear: both;
}
ul li {
list-style: none;
float: left;
border: 1px solid #000;
padding: 10px;
margin: 3px;
}
홈페이지 구성을 하다 끝남,,
지금 하는 방법은 옛날 방법이라 추가적으로 공부할 필요가 있을 듯,,
포지셔닝에 대해 알아보기
'2024_UIUX 국비 TIL' 카테고리의 다른 글
UIUX _국비과정 0422 (0) | 2024.05.30 |
---|---|
UIUX _국비과정 0419 (0) | 2024.05.30 |
UIUX _국비과정 0417 [HTML + CSS] (0) | 2024.05.29 |
UIUX _국비과정 0416 (1) | 2024.05.29 |
UIUX _국비과정 0415 (0) | 2024.05.29 |