css / float, background, list
*박스라고 div를 만드는게 아니라
dl을 활용해서 요소마다 투명박스가 있으니까 색을 주면 박스넣은것처럼 보임
인라인요소가 여러가지 들어갈때 div 클래스 적용해서 값을 줄수있다
*overflow말고 쓸수있는 속성(=float 높이값 처리)
★가상선택자 after { content:''; clear:both; display:block; }
앞에 : 을 붙이고 before, after 두가지가 있음 그리고 {}
ex) h2:before {}, .contents:after {}
※ : 사이는 띄어쓰기 할수 없음 두개(::)는 사용가능
※ {}안에 필수속성
content:''; (따옴표 넣어야함 안에는 비워도됨)
-드래그를 하면 잡히지 않고 스타일로만 들어감
display:block; 이 속성은 요소의 성격을 정의하는 속성이다.
-인라인요소를 블록요소로 바꿔준다고 생각하면 됨
clear:both; 까지 이 3가지를 공식처럼 외우기
=이걸 float을 준 상위요소에 입력해야 높이값을 인식할수있음
*영문 소문자 대문자 바꾸는 속성 text-transform
uppercase(대문자)
lowercase(소문자)
capitalize(첫글자만 대문자)
*배경 관련 속성
1. background-image
{background-image: url('파일경로');}
이렇게 입력하면 이미지가 반복해서 패턴으로 보여짐
ㄴbackground-repeat: no-repeat;(반복안함)하면 이미지 본 크기만큼만 나옴
그외 값은 repeat-x(가로반복), repeat-y(세로반복), repeat(기본값)이 있음
2. background-position
x축 y축 = (기본값):0 0; = :left top;
가로축(x)은 right면 100% center면 50%로 값을 줄수있지만 세로축(y)는 height값이 있어야함 center, bottom
오른쪽으로 보낼때 양수값 100px 이렇게줘도되고 왼쪽으로보낼려면 마이너스 붙이기
=100px 200px로 입력한다면 가로로 100픽셀만큼 세로로 200픽셀만큼 당겨짐
*x시작점은 왼쪽 맨 상단 모서리부터*
3.background-attachment
기본값 scroll, fixed = fixed로하면 화면을 스크롤해서 내려도 계속 존재함 scroll하면 스크롤시 사라짐
=이걸 전부 적을 필요 없고 background:값 선언; 으로 넣고싶은 값만 넣으면 됨
값이 생략이 가능해서 무조건 선언해야되는거 아니고 필요한 값만 넣음
ex) background: url('') #fff no-repeat 100px 50px;
ㄴ 이미지와 백그라운드 태그 차이는 드래그해서 잡히는것과 이미지의 의미 여부이다 쉽게말해 내용인지 스타일인지.
*목록 관련 속성 (ol,ul에 해당)
list-style-type,list-style-position,list-style-image가 있는데 이게 한정적이라
list-style:none; 이렇게 초기화를 시키고 백그라운드 이미지를 넣어줌
★그룹선택자
ol과ul 동시에 초기화 시키려면 그룹선택자로 ol,ul{list-style:none;} 이렇게 , 를 넣어서 사용(띄어쓰기 가능)
클래스 . 이랑 구분 = .txt,.con{} (클래스 텍스트와 클래스 컨텐츠 그룹선택한거)
*참고*
1. 높이값 잡는 예제2 html
<div class="contents">
<h1><img src="images/logo.png" alt="mad for garlic"></h1>
<p class="sub_title">내용</p>
<h2>steak</h2>
★ <div class="menu">
<!--가로로 읽고 세로로 정렬하는게 html임 수직배치 할려면 높이 인식을 할수 있도록 박스로 묶어주는것 -->
<div class="menu_img"><img src="images/menu_01.jpg" alt="herb rybeye steak"> </div>
<div class="menu_txt">
<h3>Herb Ribeye Steak</h3>
<p>내용</p>
<p class="price">₩ 39,900 </p><!--ㄹ한자-->
</div>
</div>
</div>
그에 해당하는 css
.menu:after{ content:''; display: block; clear: both;}
/*처음에 contents에 줬으나 div class:menu로 줬기때문에 상위요소인 menu에 after를 주는것*/
.menu_img{float: left; width: 250px;}
.menu_txt{float: right; width: 630px;}
/*width값을 패딩을 빼고 잡아서 다시 패딩값 넣지 않아도 되게 띄어서 잡기*/
2. 높이값 잡는 예제 1 css
.contents{width: 1000px; margin: 0 auto; background-color: #eee; padding: 50px; overflow: auto;}
h1{color: #017eba; font-size: 40px;}
.desc{background-color: #017eba; color: #fff; padding: 10px 20px; margin: 20px 0; }
.purpose_img{float: left; width: 300px;}
.purpose_txt{float: right; width: 550px ;}
ul{padding: 10px 20px;}
/*float의 높이값 비설정은 부모요소(contents)에 속성을 넣어서 어떤 값을 더넣어도 높이값을 잡아주도록 함
속성= overflow: auto; (이게 정석은 아님) */
추가 코드
display: flex; 부모요소에 주면 안에 자식들 수평배치해주고 float처럼 무너지지 않는다 크기를 크게줘도 밀리기만 할뿐
그리고 justify-content: space-between; 양쪽 끝으로 붙이고 균등배분을 해준다 float right, position 이런걸로 위치 안잡아줘도 되는 속성