개발자 끄적끄적

Inline block mode, 배경화면 이미지 속성 본문

HTML, CSS

Inline block mode, 배경화면 이미지 속성

햏치 2023. 3. 4. 00:59

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>background-image</title>
<style>
div{
   border:4px solid #666;
   margin:10px;
}

div.c1{
   width:600px;
   height:300px;
   background-image:url(../images/pink.jpg);
   background-repeat:no-repeat;
}

div.c{
   width:300px;
   height:300px;
}

/*.c2에 바탕 이미지를 반복되지 않도록 추가*/
div.c2{
   background-image:url(../images/gabi.jpg);
   background-repeat:no-repeat;
   background-position:center;
}

div.c3{
   background-image:url(../images/flower.jpg);
   background-repeat:no-repeat;
   background-size:100% 100%;
}
h2{
   color:#00f;
   font-size:30pt;
   font-weight:bold;
   text-align:center;
   background-color:#fff6;
}

div.c4{
    background-image:url(../images/flower.jpg);
    background-size:100%;
}
</style>
</head>
<body>
<h1>background-image</h1>
<div class='c1'></div>
<div class='c2 c'></div>
<div class='c3 c'></div>
<div class='c4 c'>
   <h2>고양이</h2></div>
</body>
</html>
-------------------
- background-image:url(../images/pink.jpg);->이미지가 반복된다(이게 기본속성)
- background-repeat:no-repeat;->이미지가 반복되지 않고 1개반 이미지 삽입(position은 (0,0)에 위치한다)
- background-position:right(bottom/left/top/center);->이미지 위치시키기
- backgorund-position: right(or left);->중앙의 right, left로 위치한다
- background-postion:50px 100px;->x축으로 50px만큼, y축으로 100px만큼 이동해서 위치시킨다
- background-size:100% 100%;->이미지 사이즈 설정
- text-align:center;->text를 가운데 정렬
- .c4안에 h2제목 "고양이" 삽입->설정된 background 위에 "고양이" text가 쓰여진다
---------------------------------------------------------------------------------------------------
*#RRGGBBAA : A는 투명도를 조절(=#RGBA라고도 한다 반복생략 ex)#fff6)

*#RR/GG/BB
- 16진수로 표현
- R : 빨강 / G : 초록 / B : 파랑
- RR이라는 것은 빨강을 나타내는 16진수 숫자를 말하며 00~FF까지의 값이 된다(GG, BB도 마찬가지)

*ctrl키+space키 : 기본 속성을 모를 때(또는 까먹을 때)찾을 수 있다

*background-repeat : repeat-x->x축으로 반복(가로로 반복)
*background-repeat : repeat-y->y축으로 반복 (세로로 반복)

*브라우저 창을 열고 키"F12" 또는 / 속성->기타속성->개발자모드에서/ 'elements'->화면에 나타난 css가 어떻게 적용됐는지 확인 할 수 있다
'console' : javascript모드 때 많이 활용 할 예정

*단위
a. 절대단위 : in, cm, mm, pt, pc가 있으며 출력장치(모니터)의 물리적 속성을 아는 경우 효율적
- pt  : point, 일반 문서(워드 등)에서 많이 사용하는 단위 
b. 상대단위 : em, ex, px, %가 있으며 기종간, 플랫폼 간의 호환성을 유지하는데 유리
- em : font_size, 해당폰트의 대문자 M의 너비를 기준으로 함
- ex : x-height, 해당폰트의 소문자 x의 높이를 기준으로 함
- px : pixel, 표시장치(모니터)에 따라서 상대적인 크기를 가짐
- %  : percent, 기본글꼴의 크기에 대하여 상대적인 값을 가짐


*Inline, block mode 차이
- 줄바꿈 현상 유무
- width, height 속성 유무
- margin, padding  속성 적용 유뮤


Inline mode
- 오른쪽 여백이 있는 경우 다른 요소가 오른쪽에 배치된다
- height(높이), width(넓이)가 조절되지 않는다(컨텐츠 크기만큼 사용)
- 줄바꿈이 없고 우측으로 바로 이어서 표기된다
ex) <span>,<a>,<br>,<button>,<img>,<input>,<output>,<font>,<label>,<tt>...

block mode
- 넓이와 상관없이 한 줄 전체를 차지한다
- 넓이와 높이가 조절된다
- vertical-align, text-align이 적용되지 않는다
ex)<hr>,<div>,<h1>~<h6>...,<p>,<ul>,<form>,<li>,<table>...


block mode+inline mode=>inline-block
- 넓이와 높이가 조절된다
- 오른쪽에 다른 요소가 올 수 있다

-------
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>css_exam/box</title>
<style>
.box{
   width:400px;
   height:300px;
   border:3px solid #999;
   /*좌우 여백이 자동이므로 box가 항상 화면 가운데 표시*/
   margin:100px auto; 
}

.in{
   width:100px;
   height:100px;
   border:1px solid #f00;
   /*
   margin-top:100px;
   margin-left:100px;
   margin:50px 0 0 50px
   */
   margin:100px auto;
   
   box-sizing:border-box;
   
   padding-top:60px;
   padding-left:30px;
}

div.box2{
   border:4px solid #f00;
   box-sizing:border-box;
   padding:20px;
}
</style>
</head>
<body>
<h1>box model</h1>
<div class='box'>
   <div class='in'>
    HONG
   </div>
</div>

box model
margin(border와 다른 태그 영역 사이)>border(테두리 영역)>padding>content(글씨가 삽입되는 영역)
- margin : 100px->상하좌우 모든 곳에 여백 지정
- margin : 50px 100px->상하는 50px, 좌우는 100px
- margin : 10px 20px 30px 40px->상,우,하,좌(상에서 시계방향으로)의 여백이 10px, 20px, 30px, 40px
*padding도 margin과 동일하게 적용 가능하다

-padding을 사용하면 전체 넓이나 높이가 padding크기만큼 늘어나거나 줄어든다->(결과)UI가 깨진다
따라서, padding을 사용하기전에 box-sizing : border-box 속성을 추가해준다
- box-sizing : border-box
ex) padding-top : 40px->padding size만큼 top크기가 40px만큼 늘어난다(높이)
ex) padding-left : 30px->padding size만큼 left크기가 30px만큼 늘어난다

*모든 CSS는 기본 설정값은 content-box입니다.
따라서 초기 설정에서 width, height를 설정하면, 컨텐츠 영역 이외에 border, padding, margin은 따로 계산되므로 
초기 설정값보다 영역이 더 커지게 되어 레이아웃이 엉망이 되는 경우가 많습니다.
따라서 본인이 지정한 width, height 값으로 영역 전체 크기가 똑같이 유지되기를 원한다면,
box-sizing : border-box를 삽입해주면 됩니다. 
거의 대부분은 그런 오류 방지를 위해서 border-box 속성을 필수로 사용합니다.

*content-box : 지정한 CSS width 및 height를 컨텐츠 영역에만 적용합니다. border, padding, margin은 따로 계산되어 전체 영역이 설정값보다 커질 수 있습니다.
 border-box : 지정한 CSS width 및 height를 전체 영역에 적용합니다. border, padding, margin을 모두 합산하기 때문에 컨텐츠 영역이 설정값보다 적어질 수 있습니다.

---------------------------------
block mode->inline mode
ex).box2 li{
   display:inline;
}

결과...x
A       
B ---->A B C D
C
D
----------------------------
.box2 li{
   display:inline;
   width:100px;
}
- inline모드는 넓이가 바뀌지 않는다(실행 결과는 x와 동일)
- inline->inline-block으로 바꾸면 width가 실행된다

*Inline mode
- 오른쪽 여백이 있는 경우 다른 요소가 오른쪽에 배치된다
- height(높이), width(넓이)가 조절되지 않는다(컨텐츠 크기만큼 사용)
- 줄바꿈이 없고 우측으로 바로 이어서 표기된다
ex)<hr>,<div>,<h1>~<h6>...,<p>,<ul>,<form>,<li>,<table>...
----------------------------- 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>css_exam/box</title>
<style>
.box{
   width:400px;
   height:300px;
   border:3px solid #999;
   /*좌우 여백이 자동이므로 box가 항상 화면 가운데 표시*/
   margin:100px auto; 
}

.in{
   width:100px;
   height:100px;
   border:1px solid #f00;
   /*
   margin-top:100px;
   margin-left:100px;
   margin:50px 0 0 50px
   */
   margin:100px auto;
   
   box-sizing:border-box;
   
   padding-top:60px;
   padding-left:30px;
}

div.box2{
   border:4px solid #f00;
   box-sizing:border-box;
   padding:20px;
}
.box2 li{
   display:inline-block;
   width:70px;
   background-color:#aaa;
   margin-right:2px;
   padding:2px;
   text-align:center;
}

li:hover{
   background-color:#000;
   color:#fff;
   cursor:pointer;
}

</style>
</head>
<body>
<h1>box model</h1>
<div class='box'>
   <div class='in'>
    HONG
   </div>
</div>
   
<div class='box2'>
   <ul>
      <li>A</li>
      <li>B</li>
      <li>C</li>
      <li>D</li>
   </ul>
   이해선
</div>
</body>
</html>
----------------------
li:hover{
   background-color:#000;
   color:#fff;
   cursor:pointer;
}
- A B C D상자위에 커서를 올리면 커서는 손가락 표시가 되고, 커서를 올리면 설정된 색깔로 변한다
---------
(미션)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index</title>
<link rel='stylesheet' type='text/css'
      href='../css/index.css'>
</head>
<body>
<h1>미션</h1>
<div class='main'>
   <header class='header'></header>
   
   <div class='center'>
   
      <nav class='memu'></nav>
   
      <div class='content'></div>
   
      <aside class='aside'></aside>
   </div>  
   
   <footer class='footer'></footer>

</div>
   
</body>
</html>


-----CSS-----
@charset "UTF-8";
*{ /*모든 태그에 외각선 표시해 보기*/
   border:0px solid #aaa;
   padding:10px

}

.main{
width : 1100px;
margin:10px auto;
border:4px solid #66f;
}

.header{
height:130px;
background-color:#77ff77;
}
.center{
border:1px solid #ff4444;
}

.menu{
width:200px;
height:300px;
background-color:#ff99ff;
display:inline-block;
vertical-align:top;
}

.content{
width:650px;
height:150px;
background-color:#ffff44;
display:inline-block;
vertical-align:top;
}

.aside{
width:200px;
height:300px;
background-color:#eee;
display:inline-block;
vertical-align:top;
}

.footer{
height:120px;
background-color:#ccc;
}
---------------------------------

*vertical-align
- css에서 인라인 요소(inline)와 인라인 블록 요소(inline-block)를 수직 정렬 할 때 이용


border-radius : 모서리를 둥글게((0,0)에서 시작 시계방향으로)
ex)border-radius:0 100px 0 100px;
box-shadow: box에 그림자
text-shadow : 문자에 그림자
----->
1   2  
4   3

'HTML, CSS' 카테고리의 다른 글

position, 좌표  (0) 2023.03.04
글꼴, 바탕색, 자손  (1) 2023.03.04
input type, 테이블 병합  (0) 2023.03.04