728x90

   https://react.vlpt.us/basic/12-variable-with-useRef.html

 

12. useRef 로 useRef 로 컴포넌트 안의 변수 만들기 · GitBook

12. useRef 로 컴포넌트 안의 변수 만들기 컴포넌트에서 특정 DOM 을 선택해야 할 때, ref 를 사용해야 한다고 배웠었습니다. 그리고, 함수형 컴포넌트에서 이를 설정 할 때 useRef 를 사용하여 설정한

react.vlpt.us

useRef 로 관리하는 변수는 값이 바뀐다고 해서 컴포넌트가 리렌더링되지 않습니다. 리액트 컴포넌트에서의 상태는 상태를 바꾸는 함수를 호출하고 나서 그 다음 렌더링 이후로 업데이트 된 상태를 조회 할 수 있는 반면, useRef 로 관리하고 있는 변수는 설정 후 바로 조회 할 수 있습니다.

 

 

나는 일단

리액트도 실행될때 전체 컴포넌트들 다 렌더링돼서

부분만 렌더링해주려고 useRef 쓴다라고 이해했지

 

https://www.daleseo.com/react-hooks-use-ref/

 

React Hooks: useRef 사용법

Engineering Blog by Dale Seo

www.daleseo.com

useRef 사용하기

useRef 함수는 current 속성을 가지고 있는 객체를 반환하는데, 인자로 넘어온 초기값을 current 속성에 할당합니다. 이 current 속성은 값을 변경해도 상태를 변경할 때 처럼 React 컴포넌트가 다시 랜더링되지 않습니다. React 컴포넌트가 다시 랜더링될 때도 마찬가지로 이 current 속성의 값이 유실되지 않습니다.

useRef 훅 함수가 반환하는 객체의 이러한 독특한 성질을 이용하여 startCounter()와 stopCounter() 함수를 구현해보았습니다.

728x90
728x90

https://homzzang.com/b/js-1381

https://velog.io/@kwonh/React-react-router-dom-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0

 

[React] react-router-dom 시작하기

안녕하세요이번 포스팅은 SPA앱을 만들 때 많이 사용되는 react-router-dom패키지에 대해 알아보겠습니다.create-react-app을 이용해 진행했습니다.react-router - 웹&앱react-router-dom - 웹react-router-native

velog.io

완료되면 App.js에서 import문에 다음을 추가합니다.

 

import React ,{Component} from 'react';

import { BrowserRouter,Route, Link,Switch } from "react-router-dom";

import된 BrowserRouter, Route, Link, Switch는

  • BrowserRouter - history API를 사용해 URL과 UI를 동기화하는 라우터입니다.
  • Route - 컴포넌트의 속성에 설정된 URL과 현재 경로가 일치하면 해당하는 컴포넌트, 함수를 렌더링한다.
  • Link - 'a'태그와 비슷합니다. to속성에 설정된 링크로 이동합니다. 기록이 history스택에 저장됩니다.
  • Switch - 자식 컴포넌트 Route또는 Redirect중 매치되는 첫 번째 요소를 렌더링합니다. Switch를 사용하면 BrowserRouter만 사용할 때와 다르게 하나의 매칭되는 요소만 렌더링한다는 점을 보장해줍니다.
    사용하지 않을 경우 매칭되는 모두를 렌더링합니다.
728x90
728x90

https://react.vlpt.us/mashup-todolist/01-create-components.html

 

1. 컴포넌트 만들기 · GitBook

1. 컴포넌트 만들기 투두리스트의 기능을 구현하기 전에, 우리 프로젝트에서 필요한 모든 컴포넌트들의 UI 를 미리 만들어보겠습니다. 우선 create-react-app 을 사용하여 새로운 프로젝트를 만들어

react.vlpt.us

이거 보고 투두리스트 만드는 중인데 

 

  Line 4:10:  'MdDone' is defined but never used    no-unused-vars
  Line 4:18:  'MdDelete' is defined but never used  no-unused-vars

 

 

컴포넌트만 생성하고 안에 변수 안넣어서 안뜨는 거였다!ㅎㅎㅎ삽질좋아

이전
넣어주니
잘뜸

아까는 

 

모듈문제인 주 알고 react-icon 다시깔고 그랬네

그거 다시 까니까 styled-component 모듈 찾을 수 없대서 또 다시깔았어..

 

(참고로 투두리스트 시작할때 styled-component모듈 깔아도 안된다길래 뭐지 했는데 

버전 문제였음 5.0.0로 하니까 잘되더라. 이놈의 버전에러)

yarn add styled-components@5.0.0

 

 

모듈깔때 다른 것도 삭제되기도 하나보네 

그것만 삭제하고 다시 깔아야되는데 그냥 해서 그런가..

 

 


 

 

한번에 이렇게 스타일 여러 개 줄 수 있는 거 좋다

 

 


 

컴포넌트를  app.js말고

다른 컴포넌트 안에 넣는 경우도 있는데 만들면서 경로 잘봐야겠다!!

 

얘를 들면 Todolist 에 들어가는 TodoItem 같은 경우

728x90
728x90

출처:https://ofcourse.kr/css-course/margin-padding-%EC%86%8D%EC%84%B1

 

CSS margin,padding 속성 - ofcourse

개요 margin과 padding 속성은 각각 바깥쪽 여백, 안쪽 여백을 의미합니다. width, height 속성과 마찬가지로 숫자 뒤에 단위를 표시하여 적습니다. margin과 padding는 border 을 경계로 나뉩니다. 방향 방향

ofcourse.kr

 

방향

방향마다 여백을 다르게 설정할 수 있습니다.

  • margin: 20px 같은 표현은 상하좌우 모두 20px을 의미합니다
  • margin: 30px 10px은 상하 30px, 좌우 10px을 의미합니다.
  • margin: 30px 10px 20px 50px은 위 30px, 오른쪽 10px, 아래 20px, 왼쪽 50px을 의미합니다.
  • margin: 30px 10px 40px은 위 30px, 좌우 10px, 아래 40px을 의미합니다.

즉 방향의 위부터 시계방향으로 회전하여 위 오른쪽 아래 왼쪽 순서로 설정합니다.

728x90
728x90

https://velog.io/@jary/flex%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B0%80%EC%9A%B4%EB%8D%B0-%EC%A0%95%EB%A0%AC

 

[CSS] flex를 이용한 가운데 정렬

마크업에서 가장 많이 사용되는 수평,수직 가운데 정렬을 하는 방법에 대해 정리한다. 내가 사용하려고

velog.io

margin: 0 auto;

 

근데 이게 안될때도 있어. 

왜 안되는지 잘 모르겠어

 

가장 일반적인 방법은 상위 엘리먼트의 margin값을 0 auto를 주어서 왼쪽과 오른쪽을 자동으로 설정하여 중앙 정렬하는 방법이다.
여기서 단점은 상위 엘리먼트의 width값을 명시를 해주어야 적용이 된다는 것이다. 또한 수평정렬만 가능하다는 점..

 

 

라고 한다.

flex 이용하는 방법도 있더라

display로 가운데 줬는데

앞에가 이상하게 떨어져있길래 

마진이랑 패딩 0 줬더니 깔끔하게 중앙배열됨

 

https://developer.mozilla.org/ko/docs/Web/CSS/flex-direction

 

flex-direction - CSS: Cascading Style Sheets | MDN

flex-direction CSS 속성은 플렉스 컨테이너 내의 아이템을 배치할 때 사용할 주축 및 방향(정방향, 역방향)을 지정합니다.

developer.mozilla.org

 

이것도 봐라~

728x90
728x90

https://developer.mozilla.org/ko/docs/Web/CSS/box-sizing

 

box-sizing - CSS: Cascading Style Sheets | MDN

box-sizing CSS 속성은 요소의 너비와 높이를 계산하는 방법을 지정합니다.

developer.mozilla.org

 

box-sizing 속성을 사용해 이 방식을 바꿀 수 있습니다.

  • content-box는 기본 CSS 박스 크기 결정법을 사용합니다. 요소의 너비를 100 픽셀로 설정하면 콘텐츠 영역이 100 픽셀 너비를 가지고, 테두리와 안쪽 여백은 이에 더해집니다.
  • border-box는 테두리와 안쪽 여백의 크기도 요소의 크기로 고려합니다. 너비를 100 픽셀로 설정하고 테두리와 안쪽 여백을 추가하면, 콘텐츠 영역이 줄어들어 총 너비 100 픽셀을 유지합니다. 대부분의 경우 이 편이 크기를 조절할 때 쉽습니다.

content-boxCSS 표준이 정의한 초기 기본값. width height 속성이 콘텐츠 영역만 포함하고 안팎 여백과 테두리는 포함하지 않습니다. 즉 .box {width: 350px; border: 10px solid black;}을 적용한 요소의 너비는 370px입니다.요소의 크기는 너비 = 콘텐츠 너비, 높이 = 콘텐츠 높이로 계산하고 테두리와 안쪽 여백은 식에 넣지 않습니다.border-boxwidth  height 속성이 안쪽 여백과 테두리는 포함하고, 바깥 여백은 포함하지 않습니다. 안쪽 여백과 테두리가 요소 상자 안에 위치함을 유의하세요. 즉 .box {width: 350px; border: 10px solid black;}을 적용한 요소의 너비는 350px입니다. 콘텐츠 영역의 크기는 음수일 수 없으므로 border-box를 사용해 요소를 사라지게 할 수는 없습니다.요소의 크기는 너비 = 테두리 + 안쪽 여백 + 콘텐츠 너비, 높이 = 테두리 + 안쪽 여백 + 콘텐츠 높이로 계산합니다.

 

 

이거 만으로 가운데 맞춰지네 오..

728x90
728x90

 

출처: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=dahamee&logNo=220494959638

 

 

 box-shadow 속성은 그림자(Drop-Shadow)를 만들어 주는 기능을 한다.


     css3를 지원하는 브라우저와 모바일 웹브라우저에서 적용할 수 있다.



    형식 : box-shadow:1px 1px 1px rgba(0, 0, 0, .1);   x-offset, y-offset, blur, color의 순서


     ㆍx-offset : 정해진 수치만큼의 크기로 오른쪽에 그림자를 지정한다. 

                     -(마이너스)값은 왼쪽에 그림자를 지정한다.
     ㆍy-offset : 아래쪽에 정해진 수치만크의 크기로 그림자를 지정한다. 

                      -(마이너스)값은 위쪽에 그림자를 지정한다.
     ㆍblur : 정해진 수치만큼 그림자가 흐려지는 정도. t생략가능, default, 숫자가 클수록 흐려짐
     ㆍcolor : 그림자의 색상 지정. #FEFEFE  또는 rgba(0, 0, 0, 1) 방식 모두 사용 가능  
     ㆍrgba의 a값은 불투명도를 의미. 숫자 1은 원색 . 0.5 혹은 .5는 50%를 뜻한다. 

 

 

728x90
728x90

scss 써보려고 깔았는데 계속 안돼서 찾아보니까 버전문제...ㅎ

이전거 삭제하고
$ npm uninstall node-sass
깔고
$ npm install node-sass@5.0.0

나는 yarn으로 하고 있으니까 이걸로
삭제하고
$ yarn remove node-sass
깔고
$ yarn add node-sass@5.0.0

이제 잘뜸~

출처: https://domdom.tistory.com/55

 

 

아 그리고 아까 경로잘못설정해서 오류 나더라 

컴포넌트 login 만들었으니까

여기 넣어야되지 않을까 했지만 

아니었음 오류원인!

 

App.js 에 들어가줘야함

이제 잘뜸요

728x90
728x90

https://react.vlpt.us/basic/04-jsx.html 에서 발췌함

 

 

리액트 컴포넌트에서는 XML 형식의 값을 반환해줄 수 있는데 이를 JSX 라고 부릅니다.

JSX 는 리액트에서 생김새를 정의할 때, 사용하는 문법입니다. 얼핏보면 HTML 같이 생겼지만 실제로는 JavaScript 입니다.

 

꼭 지켜야하는 규칙

 

  • 태그 닫아야함

  • 두개 이상의 태그는 무조건 하나의 태그로 감싸야함

JSX 내부에 자바스크립트 변수를 보여줘야 할 때에는 {} 으로 감싸서 보여줍니다.

camelCase 형태로 네이밍 해주어야 합니다

728x90
728x90

https://ko.reactjs.org/docs/hooks-state.html 에서 발췌

 

Hook이란?

React의 useState Hook을 사용해봅시다!

 

 

Hook이란? Hook은 특별한 함수입니다. 예를 들어 useState는 state를 함수 컴포넌트 안에서 사용할 수 있게 해줍니다. 다른 Hook들은 나중에 살펴봅시다!

언제 Hook을 사용할까? 함수 컴포넌트를 사용하던 중 state를 추가하고 싶을 때 클래스 컴포넌트로 바꾸곤 했을 겁니다. 하지만 이제 함수 컴포넌트 안에서 Hook을 이용하여 state를 사용할 수 있습니다.

 

state 변수 선언하기

클래스를 사용할 때, constructor 안에서 this.state를 { count: 0 }로 설정함으로써 count를 0으로 초기화했습니다.

함수 컴포넌트는 this를 가질 수 없기 때문에 this.state를 할당하거나 읽을 수 없습니다. 대신, useState Hook을 직접 컴포넌트에 호출합니다.

 

useState를 호출하는 것은 무엇을 하는 걸까요? “state 변수”를 선언할 수 있습니다. 위에 선언한 변수는 count라고 부르지만 banana처럼 아무 이름으로 지어도 됩니다. useState는 클래스 컴포넌트의 this.state가 제공하는 기능과 똑같습니다. 일반적으로 일반 변수는 함수가 끝날 때 사라지지만, state 변수는 React에 의해 사라지지 않습니다.

useState의 인자로 무엇을 넘겨주어야 할까요? useState()Hook의 인자로 넘겨주는 값은 state의 초기 값. 함수 컴포넌트의 state는 클래스와 달리 객체일 필요는 없고, 숫자 타입과 문자 타입을 가질 수 있습니다. 위의 예시는 사용자가 버튼을 얼마나 많이 클릭했는지 알기를 원하므로 0을 해당 state의 초기 값으로 선언했습니다. (2개의 다른 변수를 저장하기를 원한다면 useState()를 두 번 호출해야 합니다.)

useState는 무엇을 반환할까요? state 변수, 해당 변수를 갱신할 수 있는 함수 이 두 가지 쌍을 반환합니다. 이것이 바로 const [count, setCount] = useState()라고 쓰는 이유입니다. 클래스 컴포넌트의 this.state.count와 this.setState와 유사합니다. 

이제 useState를 이용하여 많은 것을 만들 수 있습니다.

 

count라고 부르는 state 변수를 선언하고 0으로 초기화합니다. React는 해당 변수를 리렌더링할 때 기억하고, 가장 최근에 갱신된 값을 제공합니다. count 변수의 값을 갱신하려면 setCount를 호출하면 됩니다.

 

import React, { useState } from "react";
//여기서 useState가 Hook

//https://ko.reactjs.org/docs/hooks-overview.html

//버튼클릭시 값 증가

function Example() {
  //'count'라는 새 상태 변수를 선언
  //0은 초기값
  const [count, setCount] = useState(0);
  //하나의 컴포넌트 내에서 State Hook을 여러 개 사용할 수 있음
  const [age, setAge] = useState(10);
  const [fruit, setFruit] = useState("banana");
  //   const [toDos, setToDos] = useState([{ text: "Learn Hooks" }]);  //여기

  return (
    <div>
      <p>You clicked {count}times</p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
      <h3>나이{age}살부터 사용가능</h3>
      <button onClick={() => setAge(age * 2)}>Click me</button>
      <h3>우리가 먹을 과일은:{fruit}</h3>
      <button onClick={() => setFruit(fruit + "apple")}>과일추가</button>
      {/* <h3>뭔데 넌{toDos}</h3>
      <button onClick={() => setToDos(toDos + "add")}>텍스트추가요</button> 여기추가하면 왜안되지*/}
    </div>
  );
}

export default Example;

왜 저 todos는 안될까 에러떠

혹시 카멜표기 때문인가 싶어서 대문자 넣어봤는데 아니더라고

✌️ Hook 사용 규칙

Hook은 그냥 JavaScript 함수이지만, 두 가지 규칙을 준수해야 합니다.

  • 최상위(at the top level)에서만 Hook을 호출해야 합니다. 반복문, 조건문, 중첩된 함수 내에서 Hook을 실행하지 마세요.
  • React 함수 컴포넌트 내에서만 Hook을 호출해야 합니다. 일반 JavaScript 함수에서는 Hook을 호출해서는 안 됩니다. (Hook을 호출할 수 있는 곳이 딱 한 군데 더 있습니다. 바로 직접 작성한 custom Hook 내입니다. 이것에 대해서는 나중에 알아보겠습니다~~~)
728x90
728x90

<자료여기서 봐야지~>

더북 제로초 https://thebook.io/080203/ch03/04/02/03/

리액트 프로그래밍 정석 저자 박호준 깃허브

https://github.com/saseungmin/react-tutorial

 

---------------

 

(노드js 깔려있으니까 넘어가고)

 

yarn 설치

cmd창에서 전역으로 깔아줌 (한번깔고 말게)

npm install -g yarn

 

 

리액트 앱 생성하기

cd 위치

로 폴더 만들어놓을 위치들어가고

yarn create react-app 폴더명

 

 

구동할때는 

yarn start

 

728x90
728x90

1. 숙제 각각의 메서드들이 어떤 역할을 하는가?
constructor , gerDerivedStateFromProps, render, componentDidMount

 

 https://velog.io/@cyranocoding/React-Life-Cycle-%EC%8B%9C%EB%A6%AC%EC%A6%88Mount-%ED%8E%B8

 

React Life Cycle 시리즈(Mount 편)

React Life Cycle React는 Component는 상위 component에서 받은 props 를 input으로 하고 React를 구성하는 가장 작은 단위인 Element 를 output으로 하는 함수!!이다. React를 사용하면 각 component 단위로 UI를 화면에

velog.io

 

 

 https://ko.reactjs.org/docs/getting-started.html

 

시작하기 – React

A JavaScript library for building user interfaces

ko.reactjs.org

클래스 해보기

10/20

1. 숙제 각각의 메서드들이 어떤 역할을 하는가?
constructor , gerDerivedStateFromProps, render, componentDidMount

 

10/21

숙제: 컴포넌트 만들어서...  1. map함수 사용해서 목록렌더링(이미지도 렌더링해보고) 2. 틱택토 주르륵~ 자습서 3.hooks종류정리(useState, useEffect) 

4. 리액트 todolist 만들기...언제ㅔㄴ간 해보기..

 

//리액트에서 가장 중요한 것...

-상태관리

-렌더링 최적화 기법들

-서버사이드렌더링

728x90
728x90

0811 복습

 

"구조 가상 클래스"

 

웹문서의 구조를 기준으로 특정 위치에 있는 요소를 찾아 스타일 적용할 때 사용

일반적으로 스타일 적용할 때 class id 선택자 사용….

요소가 여러 개 나열되어 있는 경우에는 굳이 classid를 쓰지 않고 스타일을 지정(몇 번째인지 구분해서)할 수 있다.

 

only-child : 부모 안에 자식요소가 하나만 존재할때 자식 요소를 선택            
first-child : 부모안에 있는 요소중에서 첫번째 자식을 선택            
last-child : 부모안에 있는 요소중에서 마지막 자식..            
nth-child(n) : 부모안에 있는 모든 요소 중에서  n번째 자식을 선택            
nth-last-child(n) : 부모안에 있는 모든 요소 중에서 끝에서  n번째 자식을 선택            


A:only-target-of : 부모안에 A요소가 하나만 있을때            
A:first-of-type : 부모안에 있는 A요소 중에서 첫번째 요소 선택            
A:last-of-type : 부모안에 있는 A요소 중에서 마지막 요소 선택            
A:nth-of-type(n) : 부모안에 있는 A요소 중에서 n 번째 요소 선택            
A:nth-last-of-type(n) : 부모안에 있는 A요소 중에서 끝에서 n 번째 요소 선택

(선택자 정보 링크)

 

 

 

 

 

 

 

 

 

*

 

 

 

728x90
728x90

밀린 복습 0811

 

가상클래스 사용하는데 

웹문서에서 같은 사이트나 다른 사이트 이동할 때 링크이용한다.

같은 문서안에서 다른 위치로 이동할때는 앵커 사용해

이때 타겟이라는 선택자를 사용하면 앵커로 연결된 부분이 앵커의 목적지가 되는 부분에 쉽게 적용할수있다

 

 

같은 문서 안에서 다른 위치로 이동할때는 앵커를 이용            
:target->앵커로 연결된 부분, 즉 앵커의 목적지가 되는 부분의 스타일을 쉽게 적용

연습삼아 다시 해봄
링크를 id 경로로 달았으(위에거는 수업꺼)

 

 

enabled, disabled ->요소의 사용 여부에 따라 스타일 적용
(사용할 수 있을때는 enabled /사용할 수 없을때의 스타일 지정disabled씀)        
checked ->선택한 항목의 스타일을 적용 (라디오 박스나 체크박스 쓸 때 체크박스 유용하게 씀)

 

 

 

 

+그 인풋에 체크박스 해보다가 하나만 선택되는거 왜 안돼~ 해보다가

참고로 이름 이따구로 지으면 안됨.;;

input type="radio" 얘 단일 선택

input type="radio" 

input type="checkbox" 얘가 걍 체크박스~ 더라구..허허..

 

여러 타입이 있었다

 

 

 

 

+오 이렇게 링크 달수도 있구만유(복습하는거면서 처음보는 척)

 

 

 

+

required

 

<input> 태그의 required 속성: 반드시 채워져 있어야 하는 입력 필드를 명시

 

 

 

 

728x90
728x90

가상 선택 클래스, 가상요소

 

유저가 어떤걸 클릭을 한다거나 마우스포인터를 올려놨다 그때

특정동작하고 싶음 그때 사용

사용자 동작에 반응하는 녀석들 자주써!

가상클래스 선택자
:link
방문하지 않는 링크에 스타일 적용
:visited
웹문서의 링크중에서 한번 이상 방문한 링크에 스타일 적용
:hover
마우스 포인터를 올려놓을 때 스타일 적용
:active
웹요소의 링크나 이미지등을 활성화 했을 때, 클릭햇을 때 스타일을
지정
:focus
웹 요소의 초점이 맞추어져있을 때 스타일 적용

 

navi에 a(하위선택자) 얘기하는거겠지?

거기에 반응형..

 

마우스 갖다대면 이렇게~

 

 

참고로

<a href=“URL”>
<a> 태그href 속성은 링크된 페이지의 URL을 명시합니다
728x90
728x90

0810화요일 수업기록

 

저번시간 블록레벨이랑 인라인레벨했었는데

display속성사용하면 블록레벨 요소랑 인라인 레벨

요소를 서로 바꿔서 사용할 수 있다.

display속성은 주로

웹문서의 내비게이션(옆으로 뜨는 카테고리 창같은거)

가로배치한 내비게이션

 

 

내비게이션을 만들면서 메뉴항목을 가로로 배치할 때 주로 사용

이미지를 표형태로 배치할 수도 있음

display : block ->인라인 레벨 요소를 블록레벨 요소로 만든다.    
display : inline ->블록레벨 레벨 요소를 인라인 요소로 만든다.    
display : inline-block ->인라인과 블록의 속성을 모두 가지고 있고 마진과 패딩을 지정할수 있다.    
display : none ->해당 요소를 화면에 표시 하지 않는다.

내비게이션 구성할 때 <nav>라는 태그를 사용합니다

 

인라인 블록 걸어서
가로로

 

 

 

 

 

 

p태그 넣고 이미지 나란히 하고 싶은데

p태그는 블록레벨이라 이미지와 나란히 한줄못써

그럴때는 플롯이라는 속성이용하면돼

거기서 이미지 표시하고 주변에 택스트 감싸게

 

 

float  : left ->해당 요소를 문서의 왼쪽에 배치                  
         right->해당 요소를 문서의 오른쪽에 배치                  
         none->좌우 어느쪽에도 배치하지 않는다 default

플롯은 웹요소를 붕떠있게하는 거 그게 왼쪽구석이냐 오른쪽구석이냐 플롯 레프트 롸이트 아무것도 아닌 none

이렇게 3개있음

 

 

이렇게 왼쪽 배치하면

그다음에 넣는 애들도 똑 같은 속성값 반영되어버림

내가 플롯요소를 하나에만 넣고 싶은데 밑에 해제안하면

밑에도 전달됨

그래서 플롯 속성더이상 유효하지 않다는 속성 넣어줘야함

클리어!!

 


clear left -> float left 해제 
       right-> rigt해제
       both->둘다해제

왼쪽부터 차례대로 정렬됨배치됨

근데 3은 플롯 지정안해서

웹브라우저 기본 흐름대로 배치된거.

클리어주면!!

클리어 주면 이렇게~

 

 

 

플롯레프트랑 인라인블록이랑 뭔차이냐~

눈으로는 동일. 똑같이 가로 배치

근데인라인블록은 차이가 있어.

결과화면은 같은데

 

인라인 블록으로 세팅하면 가로로 배치를 하긴하지만

마진이랑 패딩값을 기본으로 갖고 있고

 

플롯으로 배치하면 가로배치될 때 마진이랑 패딩값이 없어

 

플롯으로 요소 배치할 때 만약 마진이랑 패딩필요해 그러면 지정 별도로 해야되고

클리어 속성으로 플롯레프트 해제해야한다.!!

플롯이랑 클리어 속성 잘 쓰면 레이어만들 때 잘 활용할 수 있다

 

 

 

 

 

 

미리 레이아웃 그림으로 그려놓고 세팅하는게 제일 좋다! 헤더는 주로 웹페이지 상반부

본문은 메인컨텐츠

레이아웃짤 때 미리 구성해~

제목 위에 들어가기

카테고리 나타낼거 사이드바.

본문 메인 컨텐츠영열

Footer 맨 밑에 들어갈거

이런식으로
웹브라우저 기본값 리셋하는 거임

 

 

컨테이너 내용전체 너비

 

내가 따라 하면서 안됐던게

처음에 정한 전체 너비보다

사이드바, 본문의 두 너비 합한 게 커서 그랬음(그래서 플롯써도 옆에와서 안붙고 밑에 있었음)

 

근데 처음에 전체 컨테이너 잡을 때 너비만 지정하고 세로값은 안줘서 궁금함..

 

 

 

position            
static : 문서의 흐름에 맞춰 배치.default (위치를 지정해서 배치)       
relative : 위칫값을 지정할수 있다는 점을 제외하면 static      
absolute : relative값을 사용한 상위요소 기준으로 위치를 지정해서 배치        
fixed : 브라우저 창을 기준으로 위치를 지정해 배치 (고정역할)

absolute를 사용할때 주의해야 할점

 

위치값을 지정하면 요소중에서 relative를 사용한 요소를 기준으로 위치를 지정....

만약 부모요소중에 없으면 상위요소를 찾고 이것마저 없으면 더 위의 요소를 찾는다.

 

absolute를 쓰고 싶다면 부모요소에 relative를 지정해야 원하는 대로 배치할수 있다.

바디 기준으로 왼쪽, 위쪽에서 50픽셀만큼 떨어지게

 

화면을 줄여도 고정되어있는 사각형 

만들기~~

relative-2를 (100에서 200으로 바꿨지만) 왼쪽 200 위로 -50
고정~

 

Absolute를 사용할 때 주의할점

위치값을 지정하면 요소중에서 relative를 사용한 요소를 기준으로 위치를 지정함

만약 Absolute을 준 요소, 의 상위를 찾는데 만약 

근데 그 위에 요소도 없어 그러면 더 위에 올라가서 찾게 됨.

 

(=만약 부모요소에서 없으면 상위요소를 찾고

이것마저 없으면 또 위로 올라가서 찾아~

할아버지 찾고~)

결론 어떠한 요소에 Absolute를 쓰고 싶다면

부모 요소에 반드시 relative를 지정해야 원하는대로 배치할 수 있다.

 

 

background-repeat        
repeat : 브라우저 화면에 가득찰때까지 가로세로 반복 default        
repeat-x : 브라우저 화면 너비에 가득 찰때까지 가로로 반복        
repeat-y : 브라우저 화면 높이에 가득 찰때까지 가로로 반복        
no-repeat : 한번만 표시하고 반복 ㄴㄴ                

background-position  : 배경이미지의 수평,수직 위치값을 설정할수 있음.

값두개있는거-> 레프트는 수평 center는 수직

하나있으면 수평위치값 (수직 위치값은 50이나 센터로 간주)

사실 50,센터? 하는 말 다 적긴했는데 지금보니 뭔소리인지 잘모르겠네

 

박스 모델에 패딩이나 테두리가 있다면 배경이미지를 패딩까지 표시하거나 테두리까지 포함해서 표시 할수 있음.
배경 이미지를 적용할 범위는 background-origin속성으로 지정함.    
content-box : 박스 모델에서 내용부분에만 배경이미지 표시 default   
adding-box : 박스 모델에서 패딩까지 배경 이미지 표시    
border-box : 테두리까지...

예시)
 background-origin: content-box;
background-attachment

scroll : 배경이미지도 스크롤 default
fixed:  화면을 스크롤 하면 배경이미지는 고정되고 내용만 스크롤

예시)  background-attachment: fixed;
background-size
background-size: cover; 배경이미지로 요소 모두 덮어버림
background-size: contain; 배경이미지가 다 들어오도록 잡음

 

 

 

 

하위선택자

이게 바로 하위선택자 공백끼고 넣어야돼 ~

 

특정 요소를 기준으로 그안에 포함되어있는 녀석 :하위요소

현재기준으로 한 단계아래 자식, 또 아래는 손자.

 

하위선택자 쓰면 부모요소에 선택된 모든 하위요소 선택됨

 

하위(자식,손자 밑에 애들 다~)선택자 

 

 

자식선택자

자식에만~!

자식선택자(바로 밑 자식만)

 

인접형제 선택자 라는게 있어
웹문서에서 부모 요소가 같을 경우를 형제관계라고 함

형제요소 중에서 첫번째 동생요소만 선택하는 것을 인접 형제 선택자
요소1+요소2

형제요소 중에서 전체 동생요소 선택하는 것을 인접 형제 선택자
요소1~요소2


(밑에 색 다른거 예전 설정이라 무시)

 

 

 

참고로 h1,p {} 랑 다른게

그렇게 하면 h1의 설정값도 저렇게 바뀜

 

 

 

 

 

 

속성 선택자

태그안에 사용하는 속성값에 따라서

태그를 속성하는 역할상황에 맞는 스타일 지정하기쉬움 

대괄호 안에다가 원하는 속성 넣어주면됨

 

 

 

 

스타일

 

스타일

[] 이게 찾으려고 하는 속성의 이름
ddd 부분이 스타일

특정부분만 바꿈

728x90
728x90

0809수업기록

 

 

 

헤드사이에

 

 

속성넣고 속성값은 세미콜론(;)으로 구분!!

포지션 꼼꼼하게 봐야돼! 자주쓰지만 그만큼 실수 할수도 있음

 

* {} 
전체 선택

 

마진 값과 페딩값을 

0해놓고 많이 시작하는 듯함.

 

스타일 시트는 크게 두 가지로 구분됨

1. (기본스타일) 웹브라우저  스타일 이랑

2.사이트제작자가 만드는 사용자 스타일

 

 

사용자 스타일에서도 나뉨 크게 3개로

1. 인라인 스타일(간단한 스타일 적용하는거.)

2. 내부 스타일시트(하나의 웹문서 스타일 써주는 방금한게 내부스타일)

3. 외부스타일(링크불러서 걸어주는거 가장 많이 쓴다함)

 

인라인 스타일
내부 스타일

선택자

1. 전체 선택자: 스타일을 문서의 모든 요소에 적용할 때 사용.

주로 모든 하위 요소에 스타일을 한꺼번에 적용할 때 사용.

*{속성:…}  이렇게 생김

전체스타일은 주로 기본 스타일초기화할 때 자주사용

 

기본값이지만 이렇게 마진8 로 여백이 있음! 그래서 전체선택해서 마진 0 으로~

마진/ 페딩: 웹문서 내용을 브라우저 창에서 바짝붙지 않게 하는 여백 

 

 

2. 타입 선택자: 특정 태그를 사용한 모든 요소에 스타일 적용

= 타입 선택자를 사용해 스타일을 지정하면 해당 태그를 사용한 모든 요소에

적용된다. (타입선택자나 태그 선택자 같은말~)

ex) h태그,p태그

 

3. 클래스 선택자

같은 태그라도 일부는 다른 스타일을 적용하고 싶다면 클래스 선택자를

사용한다

 

얘는 태그에다가 클래스선택자를 넣어주면 돼~

class 스타일로, accent 랑 bg 들어감!

 

클래스 선택자는 클래스 이름을 사용해서 다른 선택자와 구별함.

 . 클래스명 {속성넣어줌}

요소 하나에 클래스 스타일을 2개 이상 적용할수있는데 그럴때는 공백으로

구분한다!!

 

class이름은 기억하기 쉽게 임의로 지정하면 됨!!! bg백그라운드

이름이면 name이렇게 누가봐도 알수있게!!!

 

 

4. id 선택자

클래스 선택자랑 거의 비슷해 그거랑 마찬가지로

웹문서의  특정부분 선택해서 스타일 지정할 때 사용

얘는 점대신 샵쓴다. #

이 기호만 틀리다 틀리지 정의같음

 

#아이디명 {스타일어쩌구}

차이는 있음 클래스 선택자는 문서에서 여러 번 적용할 수 있음. id선택자는

문서에서 한번만 적용할 수 있음. 이러한 성질 때문에id선택자는 중복해서

적용할수없으므로 주로 문서의 레이아웃과 관련된 스타일을 지정하거나

아니면 웹요소에 자바스크립트 프로그램을 사용하면서 요소를 구별할 때 사용

margin
오토하면 중앙배열됨
볼더에다가 속성값 솔리드(점선 등 다른걸로 바꿀 수도 있음)까지 넣어야완성!!

 

5. 그룹선택자

같은 스타일 규칙을 사용하는 경우 (콤마) ,로 구분해서

선택자를 나열한 다음

스타일 규칙을 적용

h1,p{속성..}

1em이 16픽셀임

 

 

이렇게 넣으면
요렇게 리스트이미지(작은 픽셀사진넣음) 이렇게 바꾸기도 가능
폰트사이즈도 조정가능
가로, 세로, 번진정도

<header>

 

 

스타일시트에서는

우선순위 존재하는데, 위에서 아래로 적용된다.

(css는 우선순위가 있는 스타일시트다~)

 

CSS = 캐스캐이딩(위에서 아래로 흐르는)
스타일끼리 충돌,중복되지 않도록 막아주는 중요한 개념

 

스타일이 충돌하지 않게하는 방법으로 두 가지정도가 있음

 

1. 스타일 우선순위:

스타일 규칙의 중요도와 적용 범위에 따라 우선순위가 결정된다.

그 우선순위에 따라 위에서 아래로 스타일을 적용한다.

 

2. 스타일 상속:

태그의 포함관계에 따라 부모요소의 스타일을 자식 요소로

위에서 아래로 전달!

 

1. 스타일 우선순위 

: 어떤 스타일을 먼저 적용할거냐 결정하는 규칙

 

 <3가지 개념에 따라 지정>

1. 얼마나 중요하냐.

 

웹브라우저에서 내용표시할 때 css스타일만 적용하는게 아니고

컴퓨터 사용자스타일, 웹문서 제작자 스타일, 웹브라우저 디폴트 정해놓은 스타일 3가지를 다 쓰는데

 

사용자 스타일이 젤 중요 > 그다음 제작자 스타일 > 그다음이 디폴트 스타일

 

2. 적용범위는 어디까지냐?

 

중요도가 같으면 스타일적용범위에 따라 우선순위정할 수 있는데

스타일 적용범위가 좁을수록

정확히 필요한 요소에만 적용한 스타일일수록

우선순위 높아져

 

스타일 규칙에다가..

!important 이렇게 붙여놓은애들은 다른애들보다 우선순위 높아져

적용범위에 따라 우선순위 높은거 나열한다면

 

!important > 인라인 스타일 > id스타일 > 클래스 스타일 > 타입 스타일

 

 

 

 

 

 

임포터!important가 없다면

타입스타일이랑 인라인 스타일 둘다 박아놨을 때 인라인스타일(HTML 태그 명령어 라인 내부에 스타일 정의)이 먼저뜨겠지!

 

 

웹문서에 사용되는 태그들은 서로 포함함

포함된 태그~

스타일 시트는 부모요소 속성들이 전달돼~ 감싸고 있다고~~

자식과 부모간의 성립된다는 가정 하에 부모태그에 스타일주면 자식에서 별도 적용하지 않으면 다 전달됨. 스타일 상속.

객체지향프로그래밍..

수업중에 나온 말인데 잘 모르겠어서 링크걸어둠..

 

<body>최상위 부모

바디는 웹문서 전체 적용이거를 잘 이용하면 동일 적용시에 잘 쓸수있음.

 

 

 

 

오른쪽 결과창

맨 마지막 숫자는 불투명도값!!

 

 

클릭하면 16진수/rgb/hsl 모드 바꿀 수 있음

 

 

 

텍스트 문단 정렬

 

 정렬 방법 지정하지 않으면 기본적으로 왼쪽 정렬이 된다.

 

 

줄간격을 원하는 만큼 조절할 수 있다

 line-height: 숫자px;

->간격조절하는 애
px말고 퍼센트도 가능!

문단정렬 조정

text-align 

 

text-shadow
text-transform
letter-spacing

word-spacing (잘안씀)

list-style-position

글자 간격조절 일반적으로 em 픽셀 퍼센트로 조절해~

 

padding

(위 오른쪽 아래 왼쪽 이렇게 설정값 읽힌다고 했음 링크눌러보면 뭔말하는지 알거야)

 

 

외부 / 기본형 / 내부 / 인라인 스타일 시트

 

 

 

 

쇼핑몰 만들기 (by선생님)

결과

<span>
HTML <span> 요소는 구문 콘텐츠를 위한 통용 인라인 컨테이너로, 본질적으로는 아무것도 나타내지 않습니다. 스타일을 적용하기 위해서, 또는 lang 등 어떤 특성의 값을 서로 공유하는 요소를 묶을 때 사용할 수 있습니다.
 적절한 의미를 가진 다른 요소가 없을 때에만 사용해야 합니다. 
<span>은 <div>와 매우 유사하지만, <div>는 블록 레벨 요소인 반면 <span>은 인라인 요소입니다.

 

 

 

이건 내가 만든 거

 

가운데 정렬해볼라고 이것저것 넣어봤는데

지금보니까 몇 개는 있으나 없으나 같네

내꺼 참고하면 안됨 배운거 일단 넣고 본게 많음,,

저 display:  쭉 있는거는

이미지를 가운데에 넣고자 margin: 0 auto; 넣어도 안되길래

인터넷이 알려준대로 넣어보니까 됐다...

 

 

박스모델: 웹문서의 내용을 박스 형태로 정의하는 방법

요 개념은 매우 자주 사용하므로 반드시 기억할 것

 

이 박스모델이 다 모여서 웹문서를 이룬다고 생각

마진, 페딩 테두리….css에서 빈번히 등장하는 개념

박스모델은 두가지 나열하는 방법이 있는데

요 개념은 매우 자주 사용하므로 반드시 기억할 것~

박스모델은 두가지 나열방법  두가지에 따라 나열 방법이 틀려져~~

 

1. 블록레벨 요소

태그를 사용해서 요소를 삽입했을 때 혼자 한 줄을 차지 하는 녀석

너비width 100프로라는 뜻

대표적인게 h1,div,p태그 등등

블록너비 요소에 왼쪽 오른쪽에 다른게 못들어온다는 뜻

이렇게 한 줄씩 먹고 있음

 

 

2. 인라인 레벨요소

 

2. 인라인레벨요소

한줄을 차지 하지 않는다.

콘텐츠 만큼만 영역을 차지하고 나머지 공간에는 다른 요소가 올 수 있다.

한줄에 인라인 레벨 요소들이 여러 개 올 수 있따!

예를 들어 스팸spam img strong…..

박스 크기 조정

콘텐츠와 콘텐츠 스타일 사이 여백 마진으로 둠. 

가로 와 세로 콘텐츠 영역, 크기 지정할 때 사용

여기서 부모는 바디body 의미함

 

오토라고 하면 콘텐츠 양에 따라 자동으로 지정된다~ 보통 오토 많이 넣기도 함. …

디폴트값. 안넣으면 지가 알아서 해줌 

여기에서 가로와 높이는 박스모델에서 콘텐츠 주변의 여백이나 테드리를 뺀 컨텐츠 영역의

크기 표시 (콘텐츠 여백은 20)

밑에 box하나 더만듦

 

웹문서에서 레이아웃구성할때는 css에서 박스모델 사용하는데

요소크기 쉽게 계산하려면 박스 사이징 속성을 보더박스로 지정해주는게 좋다

가운데 컨텐츠 영역/ 테두리. 마진은 없구

 

 

 

 

박스 사이징

 

웹문서에서 레이아웃구성할때는 css에서 박스모델 사용하는데

요소크기 쉽게 계산하려면 박스 사이징 속성을 보더박스로 지정해주는게 좋다

씨언어 시계방향 순서로 돌아(탑 라이트 바텀 레프트)

보더 테두리 스타일지정 해줌

 

탑 10픽셀 라이트 2픽셀

 

bordr-radius
모서리 둥글게!
(이미지도 만질 수 있음)

 

 

공부하면서 참고한 영상!

https://youtu.be/T7h8O7dpJIg

 

728x90
728x90
<table>웹페이지에서 테이블을 만들기 위해서는 table 태그 사용함
<tr>테이블의 행(row가로줄)을 표현하는 태그
<th>열(column세로줄)의 제목을 표현하는 태그
<td> th와 마찬가지로 tr태그 안에서 사용
테이블에서의 각각 데이터를 담고있는 셀을 나타낸다.

이렇게 하고 style을 

적용해야 선이 생김

, 콤마 찍어서

한번에 값 줄 수 있음

border
padding 여백

결과~

셀병합도 속성 부여하면 됨!

위에가 셀병합한 거임

rowspan="" 가로줄, 행 ""개 셀 합하겠다
colspan="" 세로줄, 열 ""개셀 합하겠다

합할 거 태그 안에 넣어주면 됨

 

 

<textarea> 
여러줄의 텍스트를 입력받을 때 사용!

<textarea rows="" cols=""></textarea>
텍스트 (가로세로)줄수

결과값

 

 

인풋대신 버튼 만들수도 있어!

 

으라챠챠챠 복습끝~~~~

728x90

+ Recent posts