ํฐ์คํ ๋ฆฌ ๋ทฐ

Tabs ๋์ ์์ฑ
์์ ๊ฐ์ด Tabs-Content๋ฅผ ๋ง๋ค ๋ ๊ฐ Tab์ ๋๋น๋ 200px๋ก ์ผ์ ํ๊ณ ๋ฐ์ค ๋ด์ ๋ค์ด๊ฐ๋ Tab์ ๊ฐ๋ณ์ ์ด๋ค.์ฆ, CSS ์์์ Width์ ๊ฐ์ ์ ์ ์ผ๋ก ์ฃผ๊ฒ ๋๋ฉด ์ ์ ์ธ Tabs๋ฅผ ๋ง๋ค์ง ๋ชปํ๋ค.
์ด๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑธ์ณ ์ ์ฒด ๊ฐ๋ก ๋๋น๊ฐ ๋ฐ์ ์จ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๊ฒฐ์ ๋๋ Tab์ ๊ตฌํํ์๋ค.
์ฌ์ฉ์ ์ง์ ์์ฑ(CSS ๋ณ์, ์ข ์ ๋ณ์)
์ฌ์ฉ์ ์ง์ ์์ฑ(CSS ๋ณ์, ์ข ์ ๋ณ์)์ CSS ์ ์์๊ฐ ์ ์ํ๋ ๊ฐ์ฒด๋ก, ๋ฌธ์ ์ ๋ฐ์ ์ผ๋ก ์ฌ์ฌ์ฉํ ์์์ ๊ฐ์ ๋ด์ต๋๋ค.
์ฌ์ฉ์ ์ง์ ์์ฑ์ ์ ์ฉ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด ์ ์ํ๊ณ ,(--main-color: black;) var() ํจ์๋ฅผ ์ฌ์ฉํด ์ ๊ทผํ ์ ์์ต๋๋ค.
(color: var(--main-color);)
.tabs {
--tab-width: 200;
--tabs-length: 0;
width: calc(var(--tab-width) * var(--tabs-length) * 1px);
margin: 0 auto;
box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14),
0 5px 24px 4px rgba(0, 0, 0, 0.12);
border-radius: 5px;
overflow: hidden;
}
์ฌ์ฉ์ ์ง์ ์์ฑ์ ์ด์ฉํ์ฌ CSS ์์์ Tab์ ์ ์ฒด ๋๋น(--tabs-length)๋ฅผ 0์ผ๋ก ์ด๊ธฐํ ํด์ฃผ๊ณ ์ค์ ์น ์์ ๋๋๋ง๋๋ ๋๋น ๊ฐ์
calc() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก ๊ณ์ฐํ๊ฒ ๋ง๋ค์๋ค.
setProperty()
CSSStyleDeclaration.setProperty() ๋ฐฉ๋ฒ ์ธํฐํ์ด์ค๋ CSS ์คํ์ผ ์ ์ธ ๊ฐ์ฒด์ ์์ฑ์ ๋ํ ์ ๊ฐ์ ์ค์ ํฉ๋๋ค.
$tabs.style.setProperty("--tabs-length", tabsData.length);
//tabsData๋ tab์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋ฐฐ์ด ๋ณ์์ด๋ค. ํ์ฌ tab์ ์ ๋ณด๋ ์ด 3๊ฐ์ด๋ค.
์ดํ์ JS์์ CSS์ ๋์ ๋ณ์์ธ --tabs-length์ ๊ฐ์ ํ์ฌ ๋ฐฐ์ด ์์ ์ ์ฌ๋์ด ์๋ ๋ฐ์ดํฐ์ ๊ฐฏ์๋งํผ ์ด๊ธฐํ ํด์ฃผ์๋ค.
'HTML CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
float ์์ฑ์ ์ด์ฉํ์ฌ header-menu ์์น ์กฐ์ (0) | 2021.10.06 |
---|---|
Semantic-Web๊ณผ SemanticTags์ ์ฐจ์ด (0) | 2021.10.05 |
์ด๋ฒคํธ ์ ์ด(pointer-events) ์์ฑ์ ํตํด ํ์ ์ฐฝ ๋นํ์ฑํ (0) | 2021.07.19 |
html, body ๋์ด๊ฐ ์ด๊ธฐํ (0) | 2021.05.16 |
Critical Rendering Path_์ฑ๋ฅ ๋ณด์ฅ ๋ ๋๋ง (0) | 2021.03.01 |