기초 CSS

2023. 3. 8. 09:45공부/HTML/CSS

 

CSS

  • 우선순위 : !important - 인라인 스타일 - id 스타일 - class 스타일 - type 스타일(태그)
  • margin 중첩 : margin값은 위아래 큰값으로 합쳐진다
  • background : <color><url><repeat><position><attachment>/<size>
  • background-clip : border-box(테두리) | padding-box(테두리빼고) | content-box(패딩빼고 콘텐츠만)
  • background-attachment : scroll | fixed
  • background-size : cover(이미지가 덮이도록) | contain(이미지가 다 보이도록)
  • background : repeating-linear-gradient(…) 반복그라데이션

연결 선택자

  • 인접형제선택자(요소1 + 요소2 ) : 같은 레벨이면서 요소1이후 가장 먼저 오는 요소
  • 형제선택자(요소1 ~ 요소2) : 요소1 이후 모든 형제 요소

속성 선택자

  • a[target= _blank] : [속성=값] 일치하는 요소
  • [class ~= button]  : [속성 ~= 값] 여러 속성중에서 해당 값이 포함된 요소. 반드시 값과 정확히 일치해야 한다. 

    .button은 가능하지만 .on-button은 불가능

  • [class |= button] : [속성 |= 값] 특정 값이 포함 된 요소. 속성 값은 일치해야 한다. 값의 경우 정확히 일치하거나 지정한 값을 하이픈(-)으로 연결되도 포함이다.

    a title="on-button"이 |= 경우 가능 ~=의 경우 불가능

  • [class ^=  button] : [속성 ^= 값] 속성값으로 시작, 일치하지 않아도 가능하다.

    class="buttononbox" 의 경우 가능하다

  • [class $= button] : [속성 $= 값] 속성값으로 끝나는 요소. ^=에서 끝으로 바뀐 선택자
  • [class *= button] : [속성 *= 값] 어느 위치 상관없이 속성값 포함. 즉 값이 끝에 있든 중간이든 상관 없다.

가상클래스와 가상요소

  • :link : 반문하지 않은 링크
  • :visited : 방문한 링크
  • :hover : 마우스 포인터 위에
  • :active : 활성화 상태
  • :focus : 포커스 상태
  • :target : 앵커 대상에 스타일 적용. 같은 페이지에서 다른 위치로 이동할 때 앵커의 목적지에 스타일 적용.
  • :enabled, :disabled : 사용할 수 있는 상태와 사용할 수 없는 상태
  • :checked : 체크박스나 라디오에서 선택된 항목
  • :not : 특정 요소 제외

구조가상클래스

  • :only-child : 부모안에 자식요소가 하나일 때 자식요소
  • a:only-child-of : 부모안에 A요소가 하나뿐일 때
  • :first-child, :last-child, a:first-of-type, a:last-of-type, :nth-child(n), :nth-last-child(n), a:nth-of-type(n),  a:nth-last-of-type(n),

가상요소

  • ::first-line, ::first-letter : 요소의 첫번째 줄, 첫번째 글자에 스타일 적용. 첫번째 글자는 반드시 첫째줄에 있어야 한다. 만약 <br>태그로 첫번째 글자가 첫번째 줄에 없으면 사용 불가
  • ::before, ::after

transform

  • transform : 2차원은 가로 X, 세로 Y. 3차원은 X,Y에 더하여 Z축이 있고 앞뒤로 움직인다.

    scale : 1보다 크면 확대

    pre spective : 현재 위치에서 밀거나 잡아당김


transition

  • property(대상지정) : all | none | <속성이름> (대상지정) 

    all : 생략할 경우 모든 속성속성이름 : 적용할 속성 지정, 속성이 여러개 일 경우 쉼표(,)로 구분

    name : 아무 속성도 안바뀜

  • duration(실행할 시간) : <시간>

    두개를 합쳐서 transition-property : width, height;  transition-duration 2s, 1s; 로 쓸 시 넓이는 2초 높이는 1초 동안

  • timing-function(실행형태)  : linear | ease | ease-in | ease-out | ease-in-out | cubric-bezier
  • delay(지연시간) : <시간>

    기본값 0, 지정한 시간만큼 기다린 후

  • 축양 방법 :  transition : <property> | <duration> | <timing-function> | <delay> 

    시간값이 2개면 앞은 duration 뒤는 delay

 


animation

  • @keyframes : 애니메이션이 바뀌는 지점 지정

    name : @keyframes로 설정한 중간 상태 지정

    //@keyframes를 여러개 정의할 수 있기에 이름을 지정해 구분한다.
    
    animation-name : <키프레임 이름> | none;
    
    @keyframes{
    	<선택자>{<스타일>}
    }

    keyframe의 선택자는 속성값이 바뀌는 지점.  0%, 100% 또는 form, to

  • delay : 시작 시간
  • duration : 실행시간. 기본 값은 0
  • diretion (종료 후 처음 부터 시작 또는 역방향 진행) : normal | reverse | alternate | alternate-reverse

    normal : from - to, 기본값

    reverse : to - from

    alternate : 홀수 normal, 짝수 reverse

    alternate-reverse : 홀수 reverse, 짝수 normal

  • iteration-count (반복횟수) : <숫자>|infinite
  • timing-function : 키프레임 전환형태. 시작, 중간, 끝에 속도를 지정하여 곡선을 만들 수도 있다. transtion과 동일
  • 축약 : animation : <name> | <duration> | <timing-function> | <delay> | <iteration-count> | <direction>

    두 가지 이상의 애니메이션은 콤마로 나눈다


 말줄임

  • 한줄 일 때 : text-overflow: ellipsis; white-space: nowrap; overflow: hidden;
  • 여러줄 일 때  : display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;

'공부 > HTML/CSS' 카테고리의 다른 글

반응형과 미디어 쿼리  (1) 2023.03.08
form과 input  (0) 2023.03.07
기타  (0) 2023.03.07
%, em, rem, vh, vw  (0) 2022.09.30
CSS로 도형 만들기  (0) 2022.09.29