href 속성을 통해 주로 다른 페이지나 같은 페이지 내의 지정한 위치로 이동한다.
줄 수 있는 속성
- href
=> 하이퍼링크가 가리키는 url- download
=> 링크로 이동하는 대신 url을 저장할 수 있도록 한다- target
=> url을 표시할 위치를 설정한다
=> 주로 _blank의 값을 줘서 새 탭/창에 url이 표시되도록 한다target="_blank"가 적용된 링크 열 때를 이용한 탭 내빙 공격이 있다
(새롭게 열린 페이지에서 원본 페이지에 접근하는 피싱공격)
- rel="noopener" 속성값으로 원본 페이지와 별개로 새로운 최상위 브라우징 컨텍스트를 생성하도록 링크를 열어서 방지한다.
- rel="noreferrer" 속성값으로 해당 링크를 클릭할 때 사용자가 어디서 왔는지에 대한 정보를 주지 않는다.
=> 구형 브라우저에서는 norefferer만 사용이 가능하여, 일반적으로 두 속성값을 같이 사용한다.
새 탭/창을 열거나 다운로드되도록 앵커를 설정했을 때, 갑자기 탭/창이 열리는 등 예상치 못한 일이 벌어졌을 때는 당황할 수 있기 때문에 링크를 클릭했을 때 일어날 일에 대한 설명을 해야 한다.
<a target="_blank" href="링크 주소">
설명 텍스트
</a>
위와 같이 a 태그 안에 설명 텍스트를 삽입해서 사전에 정보를 제공해 준다.
프로젝트가 커질 수록 코드가 지저분해지는 CSS의 단점을 보완하기 위해 사용한다.
자동 컴파일
컴파일 명령어 뒤에 --watch를 붙인다.
=> scss 파일을 저장할 때마다 css 파일로 자동으로 컴파일
컴파일 명령어 뒤에 --style=compressed를 붙인다.
=> 배포 환경에서 사용
컴파일 명령어 뒤에 --no-source-map를 붙인다.
=> 소스맵은 유지보수에는 용이하나 배포 환경에선 불필요하므로 배포 환경에서 사용한다
- package.json 파일 내에 scripts 영역에 "단축어":_"명령어"를 추가
- 터미널창에 npm_run_단축어를 실행해서 사용
=> 명령어에 중복 명령어의 단축어를 앞에 추가하고 --를 사이에 넣는다
=> "단축어": "중복명령어의단축어_--_추가할명령어"
rimraf 패키지를 설치하고 명령어에 rimraf 폴더이름
을 사용하면 쉽게 삭제할 수 있다.
중첩을 사용하여 중복된 선택자를 더 쉽게 사용할 수 있다.
ul {
li {
}
}
위의 중첩된 구조는 아래와 같다.
ul li {
}
=> 중첩이 많아질수록 가독성이 떨어지기 때문에 가급적 2단계로 하자
button {
&:hover {
}
}
위는 아래와 같다.
button:hover {
}
자주 사용되는 속성과 값을 별도의 파일에 분리해서 관리하고 필요할 때 불러와서 사용할 수 있는데, 그때의 분리된 파일을 모듈이라고 한다.
@import와 같은 방식으로 @use를 사용해서 모듈을 불러올 수 있다.
=> 확장자이름은 생략할 수 있고, 해당하는 별칭(namespace)을 같이 써야 해당 모듈을 사용할 수 있다.
@use "경로/폴더(파일)이름" as 별칭
모듈의 변수를 사용하기
변수이름 앞에 해당 별칭을 붙인다
=> 별칭.변수이름
@forward를 사용하여 반복적인 @use의 사용을 줄일 수 있도록 모듈의 묶음을 만들 때 사용한다.
- 사용방법은 모듈을 불러오는 방식과 같다
- '_'와 같이 파일 이름의 index도 생략할 수 있어서 파일 이름이 _index인 모듈로 합치고 폴더 이름을 호출하는 방식을 사용할 수 있다
scss파일들을 css파일로 컴파일하는 과정에서, 컴파일할 필요가 없는 파일들을 파셜이라고 한다.
=> 파일 이름 앞에 '_'를 붙이면 변환에서 제외시킬 수 있다
=> 모듈을 불러올 때는, 파일 이름에 '_'를 넣지 않아도 불러올 수 있다
Sass에서는 변수 이름의 '-'와 '_'를 구분하지 않는다.
$변수이름:_값;
코드의 반복을 줄이기 위해 모듈뿐만 아니라 믹스인을 사용할 수 있다.
@mixin_믹스인이름{
코드
}
해당 코드들을 정의한 이름의 믹스인 안에 담는다.
ul {
@include_믹스인이름;
}
선언부에 해당 믹스인의 모든 코드가 삽입된다.
매개변수를 이용해서 믹스인 사용하기
믹스인을 정의할 때 믹스인이름 뒤에 () 안에 '$'로 시작하는 매개변수 이름을 설정하고 코드에서 변수가 될 부분에 삽입한다.
@mixin_믹스인이름($변수이름: 기본값)
- 변수를 설정할 때 기본값을 설정할 수 있다
- 변수를 2개 이상인 믹스인을 사용할 때는 정의된 변수의 순서를 지켜야 하고, 순서를 지키지 않으려면 변수 이름과 값을 같이 넣어줘야 한다
코드에서
#{매개변수이름}
으로 사용하면 변수 이름의 텍스트를 그대로 값으로 할 수 있다
Sass에서는 기본적인 계산기능을 제공한다.
=> 계산기능을 사용하기 위한 내장함수 @use 'sass:math'
를 먼저 선언해야 한다.
- 곱하기를 사용할 때는 단위가 같아야만 계산된다
=> 단위가 다를 때는 calc() 함수를 사용하자- 나누기는 '/' 대신 math.div(분자, 분모)를 사용한다