wecode에서 repl.it을 통해 HTML/CSS 공부한 내용 정리
아래의 예시와 같이 하나의 태그에 id와 class 모두 가질 수 있다
<div id="profile" class="content-wrap">
이름은 영문 대문자, 숫자, 특수문자로 시작 할 수 없음
div class="2nd" 와 같은 것 불가능!
모든 태그에 css style을 적용할 때 "*" selector로 모든 태그에 적용 가능
<style>
* {
color:blue;
}
</style>
<p> p태그 파란색 됨 </p>
<span> span태그도 파란색 됨 </span>
<div> div태그도 파란색 됨 </div>
몇 가지 태그 및 클래스 등에 같은 style 적용할 때 : "," 를 이용
다음과 같이 사용한다.
태그1, 클래스, 태그2 {
style
}
예시 : class="what-is-blockquote"와 span 태그에 style 지정
<style>
.what-is-blockquote, span {
color: green;
}
</style>
style을 지정할 때 특정 요소의 하위에 있는 요소를 선택 가능
태그/클래스/id등을 스페이스로 띄워서 구분
예시) 아래의 css에서 최종적으로 적용되는 selector는 span
모든 span이 아니라 "pre" 클래스 내부에 있는 span이라는 뜻
<style>
.pre span {
background-color: yellow;
}
<style>
<div class="pre">
<span> 이건 노란색 배경적용 </span>
</div>
<div class="main">
<span> 이건 적용 안됨 </span>
</div>
<span class="pre"> 이것도 적용 안됨 </span>
<div>
<p class="pre">
<span> 여기도 노란색 배경 적용! </span>
</p>
</div>
inline styling (style 요소로 직접) >>>>> id >>> class >> tag
여기서 말하는 inline styling은 아래 예시와 같은 경우
<div style="color:blue;">우선순위1</div>
주어진 특성의 존재 여부나 그 값에 따라 요소를 선택
<style>
a[href] {
color:red;
}
</style>
<a href="http://www.naver.com">naver.com</a>
위와 같은 style을 적용하면 아래의 사진과 같이 글씨에 빨간색으로 적용이 됨
<style>
input[type="text"] {
}
</style>
위의 특성 선택자를 이용하면 input box중 type="text"인 경우에만 스타일 적용됨
inputbox의 placeholder에 style을 주는 방법
<style>
::placeholder {
css declarations;
}
</style>
아래의 예시처럼 사용
<style>
input[type="text"]::placeholder {
color: red;
}
</style>
hover : 마우스를 올렸다는 의미
<style>
button:hover {
cursor: pointer;
}
</style>
위 스타일을 적용하면 버튼에 마우스를 올렸을때 포인터 모양이 바뀜
cursor의 종류는 pointer말고도 다양 여기를 참고하여 확인
<style>
button:hover {
opacity: 0.8;
}
</style>
opacity : 해당 요소 불투명하게 만들어줌
opacity : 0 --> 0%만큼 흐려져서 화면에서 아예 안보임
opacity : 0.8 --> 80% 만큼 흐려짐
아래와 같이 cursor와 opacity를 함께 주면
<style>
button:hover {
cursor: pointer;
opacity: 0.8;
}
</style>
위의 오른쪽사진이 hover 적용 --> 포인터 바뀜 / 투명해짐
특정 순서에 있는 요소를 선택할 때 사용하는 선택자
:nth-child(an+b)
:nth-last-child(an+b)
an+b
사용 예시)
<style>
li:last-child { # list의 마지막 요소
padding-bottom: 0;
}
li:nth-child(odd) { # list의 홀수번째 요소
background: red;
}
li:nth-child(even) { # list의 짝수번째 요소
background: blue;
}
</style>
selector_ref) https://poiemaweb.com/css3-selector
hover_ref) https://www.w3schools.com/cssref/sel_hover.asp
placeholder_ref)https://www.w3schools.com/cssref/sel_placeholder.asp
nth_ref) https://www.codingfactory.net/10781
alt
src
<img alt="이미지" src="image.png">
위 예시와 같이 이미지 적용하기
아래의 예시와 같이 이용한다.
예시 )
<style>
.bg-img {
background-color: yellow;
background-image: url("https://image.png");
}
</style>
<div class="bg-img">배경이미지</div>
여기서 background-color는 범위를 보여주기 위하여 추가한 속성
위의 이미지가 txt높이 만큼으로 지정이 되어서 잘 보이지 않으므로
width와 height를 이용하여 영역을 지정해주었음
<style>
.bg-img {
background-color: yellow;
background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/6/61/HTML5_logo_and_wordmark.svg/1280px-HTML5_logo_and_wordmark.svg.png");
height : 300px;
width : 300px;
}
</style>
<div class="bg-img">배경이미지</div>
위와 같이 설정해주면 아래의 그림과 같이 나옴
이렇게 나오는 이유는 이미지의 실제 크기가 원본크기 그대로이고, 그 중 div 영역의 크기만큼만 보여지기 때문
따라서 이미지 크기를 조절하기
background-size: 100%; 를 이용하여 이미지 크기를 조절함
아래의 예시와 같이 사용
<style>
.bg-img {
background-color: yellow;
background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/6/61/HTML5_logo_and_wordmark.svg/1280px-HTML5_logo_and_wordmark.svg.png");
height : 300px;
width : 300px;
background-size: 100%;
}
</style>
<div class="bg-img">배경이미지</div>
이를 적용하면 아래의 그림과 같이 모든 이미지가 나타남
여기서 "배경이미지" 라는 글이 없어도 css에서 가로/세로를 고정하면 그 크기만큼 영역을 차지하고 있으므로 화면에서 나타남
아래의 예시와 같이 text-decoration을 줘서 밑줄을 그을 수 있음
<style>
h2 {text-decoration : underline;
}
</style>
아래의 예시와 같이 border-bottom을 주어서 밑줄을 그은 것 처럼 보이게하기
<style>
span {
border-bottom : 3px solid black;
padding : 5px;
}
</style>
<span>span 태그의 테두리</span>
위의 속성을 적용하면 아래의 그림과 같이 표현됨
text-decoration: underline;은 마음대로 customizing하기 어렵기 때문에 웹 사이트에서 대부분의 밑줄 스타일은 border-bottom 이용하여 사용
blockquote 태그는 인용구문을 넣을 때 쓰는 태그
<blockquote> blockquote 적용 </blockquote>
blockquote 적용 X
아래 이미지 처럼 blockquote 태그를 쓰면 들여쓰기 됨
css속성을 이용하여 들여쓰기 가능
<style>
.js-description {
text-indent: 50px;
}
</style>
위와 같이 text-indent를 적용하면 들여쓰기가 됨
리스트의 시작점과 같은 표시 없애고 싶을 때
리스트옆에 세로 줄 만들고 싶을 때
아래의 예시와 같이 사용
예시)
<style>
ul {
list-style: none;
border-left: 3px solid black;
}
</style>
위와 같은 스타일을 적용한 리스트는 아래의 이미지와 같이 표현됨
ul에 적용한 것 처럼 li에도 padding/ margin 등 style 적용 가능
아래의 예시 참고
예시)
<style>
li {
padding-top:5px;
}
</style>
테이블은 항상 table태그로 감싸져있음
table태그 내에 행/열을 만드는 것
tr 태그
td 태그
th 태그
rowspan
colspan
아래의 예시와 같이 위의 태그들을 이용할 수 있음
<style>
.border-table th, .border-table td {
border: 1px solid black;
}
</style>
<table class="border-table">
<tr>
<th></th>
<th>내용</th>
<th>장소</th>
</tr>
<tr>
<th>1시</th>
<td>HTML이란</td>
<td>101호</td>
</tr>
<tr>
<th>2시</th>
<td rowspan="2">HTML실습</td> # 행 병합
<td>102호</td>
</tr>
<tr>
<th>3시</th>
<td>103호</td>
</tr>
<tr>
<th>4시</th>
<td>CSS란</td>
<td>104호</td>
</tr>
<tr>
<th>5시</th>
<td>CSS실습</td>
<td>104호</td>
</tr>
<tr>
<th>6시</th>
<td colspan="2">수업 없습니다.</td> # 열 병합
</tr>
</table>
위와 같이 table을 만들면 아래의 그림과 같이 표현됨
첫 행/ 첫 열에 th 태그를 이용하여 heading을 나타냈으며
아래에 td 태그를 이용하여 데이터 입력
td 태그에 colspan/rowspan 속성을 주어서 열과 행을 병합하였음
기본 속성으로 bold체가 적용된 경우 --> 예를들어 table의 th태그
이러한 경우 bold체 없애는 방법은 font-weight: normal; 을 이용하면 됨!
예시)
<style>
.assignment th{
font-weight: normal;
text-align:left;
}
</style>
위의 예시와 같이 th태그에 font-weight: normal; 을 적용해주면 bold체가 사라짐
추가로, th태그에 tex-align을 적용해주면 기본 속성인 가운데 정렬을 왼쪽/ 오른쪽 정렬로 바꿀 수 있음
textarea 태그는 input보다는 더 긴 텍스트를 입력받고 싶을 때 사용
보통 짧은 방명록이나 댓글을 입력할 때 textarea 태그를 사용
<div width=300px>이렇게 하면 적용 안됨!!!</div>
div에서 width나 height 줄 때는 css style 이용해서 사용할 것!
<style>
div {
width:300px;}
</style>
<div> 이런식으로 사용 </div>