BackEnd/WEB

국비_DAY44

Leo.K 2022. 5. 2. 16:32

수직메뉴 만들기 

[1. 기본 골격]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<body>
<hr>
    수직메뉴
<hr>
 
<ul class="submeuu_type">
    <li><a href="#">인사말</a></li>
    <li><a href="#">연혁</a></li>
    <li><a href="#">오시는길</a></li>
</ul>    
 
<hr>
 
<ul class="submeuu_type">
    <li><a href="#">신상품소개</a></li>
    <li><a href="#">견적내기</a></li>
    <li><a href="#">상품QnA</a></li>
</ul>    
 
 
</body>
cs

 

[2. CSS적용하기]

주석으로 설명을 달아두었으니 설명은 마지막에 정리에서 요약하도록 하겠습니다.

  • 외부 CSS파일 연결하기 
  • <link rel="stylesheet" href="../css/submenu.css">

 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@charset "UTF-8";
 
/* class selector : .class_name */
 
/* 클래스가 submenu_type인 태그 선택 */
ul.submenu_type {
    list-style: none;
}
 
/* 클래스가 submenu_type인 태그의 자식 선택 */
ul.submenu_type > li {
    margin-top: 30px;
}
 
/* 클래스가 submenu_type인 태그의 자식인 li의 자식 a 선택 */
ul.submenu_type > li > a {
    display: block;    /* inline -> block */
    width: 120px;
    border: 1px solid #8888ff;
    text-decoration: none;
    text-align: center;
    color: #8888ff;
    
    font-weight: bold;
}
 
/* 클래스가 submenu_type인 태그의 자식인 li의 자식 a에 마우스를 올린 경우 */
ul.submenu_type > li > a:hover {
    color: blue;
    border-color: blue;
}
 
cs

 

[1단 레이아웃] -> header, content, footer

<div> 블록요소의 활용

[2단 레이아웃] -> header, aside, content, footer

[3단 레이아웃] -> header, content, aside, footer

[float 속성 응용하기]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
@charset "UTF-8";
 
{
    margin: 0; /*웹 표준을 준수하기 위해 동일한 조건을 위해서*/
    /* border: 1px solid red; */
}
 
#main_box{
    width: 800px;
    height: 600px;
    
    margin: auto; /* 중앙정렬 */
    
    background: #cccccc;
}
 
#header {
    /*width 생략시 부모의 100%를 물려받는다. */
    /* width: 50%; */ /*부모의 50%*/
    height: 200px;
    background: #ffcccc;
}
 
#aside{
    float: left;
    width: 30%;
    height: 400px;
    background-color: #ffffcc;
}
 
#main_content{
    float: left;
    width: 70%;
    min-height: 400px; /* 최소크기 */
    height:auto;        /* 내용이 많아지면 자동증가 */
    background: #ccffcc;
}
.content{
    /* %로 너비를 지정해줄때, margin과 border등을 설정하면 전체 박스의 크기가 증가하기 때문에 고려해야 한다. */
    /* box-sizing을 borderbox로 하덩가 */
    width: 44%;
    height: 176px;
    border: 1px solid green;
    margin: 10px;
    float: left;
    
    box-shadow: 1px 1px 3px black;
    background: #006393;
    
    /* height: auto;
    min-height: 200px;
    box-sizing:border-box;
    text-align: center;
    line-height: 170px; */
}
 
 
#footer {
    height: 200px;
    background-color: #ccccff;
    
    /* 부유속성해지 */
    clear: left;
    /* 두개 다 해지하기 */
    
    
}
cs

[정리]

  • margin : auto; -> div태그 가운데 정렬하기
  • width속성을 생략할 경우 부모의 width의 100%를 물려받는다.
  • 너비의 값을 설정할 때, border와 margin, padding값을 함께 고려해야 내가 원하는 위치에 배치시킬 수 있습니다. 그렇지 않으면 위의 세가지 요소가 태그의 크기에 포함되면서 태그의 크기가 변하기 때문입니다.
  • header, content, aside순서로 배치를 시키는데, 두 개 이상의 div태그를 한 줄에 정렬시키기 위해 float속성을 사용했습니다. 이는 말 그대로 태그들을 위로 붕 뛰어 놓은 것이라고 생각하면 됩니다. 그로 인해 footer는 붕 뜬 content와 aside밑에 있어서 보이지 않으므로, footer에서는 clear속성을 적용해주어야 합니다.
  • Bootstrap (다운로드 or CDN(Content Delivery Network))
  • class는 공백으로 구분하여 여러 개 지정할 수 있다.

'BackEnd > WEB' 카테고리의 다른 글

JSP_국비_DAY46  (0) 2022.05.04
국비_DAY45  (0) 2022.05.03
CSS_국비_DAY43  (0) 2022.04.29
HTML_FORM_TAG_국비_DAY42  (0) 2022.04.28
HTML_국비_DAY41  (0) 2022.04.27