CSS๐Ÿ”ง/css ์ •๋ ฌ๊ณต์‹ transform position

css button ์Šฌ๋ผ์ด๋“œ ๋ฒ„ํŠผ, ํฌ์ง€์…˜ ์ •๋ ฌ๊ณต์‹

hyojinny 2022. 9. 12. 22:45
.container .main_slider .btn_wrap button:hover {
    background-position: 0 -60px;
}

์ƒ๋‹จ ์Šฌ๋ผ์ด๋“œ์— ๋ฒ„ํŠผ์„ ๋„ฃ์–ด๋ณด์ž!

๋จผ์ € HTML๋กœ section ๊ตฌ์กฐ์•ˆ์— ๋ฒ„ํŠผ์„ ์ง€์ •ํ•ด์ค€๋‹ค. (์–‘์ชฝ์ด๋ฏ€๋กœ ๋ฒ„ํŠผ์„ div๋กœ ๊ฐ์Œ€๊ฒƒ!)

์ œ๋ชฉ ๊ธ€์ž๋Š” '์Šคํฌ๋ฆฐ๊ธฐ๋Šฅ' ์ ‘๊ทผ์„ฑ ๋•Œ๋ฌธ์— ๊ผญ ๋„ฃ์–ด์ฃผ์–ด์•ผํ•œ๋‹ค.

 

        <div class="btn_wrap">
          <button class="btn_prev" type="button">์ด์ „์Šฌ๋ผ์ด๋“œ</button>
          <button class="btn_next" type="button">๋‹ค์Œ์Šฌ๋ผ์ด๋“œ</button>
        </div>

์ž ์ด์ œ css๋กœ ๊ฐ€์„œ ๊พธ๋ฉฐ๋ณด์ž

.container .main_slider .btn_wrap {
    position: absolute;
    width: 1100px;
    left: 50%;
    margin-left: -550px;
    bottom: 178px;
    padding-left: 60px;
}

๋ฉ”์ธ ์ด๋ฏธ์ง€๊ฐ€ position์œผ๋กœ ๋– ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 

๋ฒ„ํŠผ๋„ position: absolute; ๋กœ ๋„์–ด์ค€๋‹ค. (position relrative๋Š” ์ด๋ฏธ ๋ถ€๋ชจ์˜์—ญ์— ์ ์šฉ๋œ์ƒํƒœ)

๊ทธ๋ฆฌ๊ณ  ๋ฒ„ํŠผ์˜ ์œ„์น˜๋ถ€ํ„ฐ ์ง€์ •ํ•ด์ค€๋‹ค. 

width ๊ฐ’๊ณผ left 50%๋กœ ์„ค์ •ํ•ด์ค€ ์ด์œ ๋Š”

๊ฐ€์šด๋ฐ๋กœ ์„ค์ •ํ•ด๋†”์„œ ์ฐฝ์˜ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ด ์ ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ์œ„ํ•จ

(margin์œผ๋กœ๋งŒ ์„ค์ •์‹œ ์ฐฝํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฉด ์™”๋‹ค๊ฐ”๋‹ค ใ…  )

 

ํฌ์ง€์…˜ ์ •๋ ฌ๊ณต์‹์€

position:absolute;

left:5%

top:0%

margin-left:{๊ฐ€๋กœ๊ธธ์ด/2}

 


 

๋จผ์ € ๋™๊ทธ๋ผ๋ฏธ๋กœ ์„ค์ •ํ•˜๋Š”๋ฐฉ๋ฒ•์€ 

border-radius : 50% ์‚ฌ๊ฐํ˜•์˜ ๋ชจ์„œ๋ฆฌ ๋ถ€๋ถ„ ๋™๊ทธ๋ž—๊ฒŒ

๋†’์ด์™€ ๋„“์ด๋ฅผ ์ง€์ •ํ•ด์ฃผ๊ณ  border: none ์œผ๋กœ ์„ ์ œ๊ฑฐ 

 

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ• ์ !

ํ…์ŠคํŠธ๋Š” ์Šคํฌ๋ฆฐ ๊ธฐ๋Šฅ์œผ๋กœ ๊ผญ ํ•„์š”ํ•˜์ง€๋งŒ ๋ณด์—ฌ์„  ์•ˆ๋˜๋ฏ€๋กœ 

์™ผ์ชฝ ๋“ค์—ฌ์“ฐ๊ธฐ text-indent: -9999px ๋กœ ์ง€์ •ํ•ด ๋ฉ€๋ฆฌ ์น˜์›Œ๋ฒ„๋ฆฐ๋‹ค. (right์กฐ์ •์‹œ ๋‚˜์˜ฌ์ˆ˜์žˆ์œผ๋ฏ€๋กœ ์Œ์ˆ˜๋กœ left๋กœ ์ค„๊ฒƒ)

 

๊ทธ๋ฆฌ๊ณ  ๋ฏธ๋ฆฌ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ์•„์ด์ฝ˜์ด๋ฏธ์ง€๋Š” background ๋กœ ์”Œ์–ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•„์ด์ฝ˜์ด ํšŒ์ „ํ•˜๋ฉด ๋Œ€์ฒด ํ…์ŠคํŠธ๋ผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— overflow: hidden ์œผ๋กœ ๊ฐ€๋ ค์ค€๋‹ค.

 

.container .main_slider .btn_wrap button {
    border-radius: 50%;
    height: 60px;
    width: 60px;
    text-indent: -9999px;
    border: none;
    background: url(../images/btn_slide_arrow.png)no-repeat;
    overflow: hidden;
}
๋”๋ณด๊ธฐ

์ •ํ™•ํ•œ ๋ฒ„์ „์€ ์ด๊ฒƒ (float ์ ์šฉ์‹œ)

 
width: 60px;
height: 60px;
float: left;
margin-right: 5px;

์ ์šฉ๋œ ํ™”๋ฉด


.container .main_slider .btn_wrap .btn_prev {
    transform: rotate(180deg);
}

์•„์ด์ฝ˜์˜ ๋ฐฉํ–ฅ๋งŒ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฐฉ๋ฒ•์€ ์™ผ์ชฝ ๋ฒ„ํŠผ์˜ ํด๋ž˜์Šค๋กœ ์ง€์ •ํ•˜๊ณ  

transform: rotate(180deg);

transform(๋ณ€ํ™˜ํ•˜๋‹ค) : rotate (ํšŒ์ „์„) (180๋„๋กœ - degree ์˜์–ด ๊ฐ๋„์˜ ์•ฝ์ž) ๋กœ ๋’ค์ง‘์–ด์ค€๋‹ค.

 


์—ฌ๊ธฐ์„œ ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด ์ƒ‰์ด ๋ฐ”๋€”์ˆ˜ ์žˆ๋„๋ก hover๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋„์!

.container .main_slider .btn_wrap button:hover {
    background-position: 0 -60px;
}

์•„์ด์ฝ˜์˜ ์œ„์น˜ ์ฆ‰(์•„์ด์ฝ˜ ๋ฐฐ๊ฒฝ์ด๋ฏธ์ง€)์˜ ์œ„์น˜๋ฅผ ์กฐ์ •ํ•ด์ค€๋‹ค. 

background-position : 0(๊ฐ€๋กœ) -60px(์„ธ๋กœ)

 

์‚ฌ์šฉํ•œ ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ๋Š” 60*120 (ํ•œ์žฅ์— 2๊ฐœ ์งœ๋ฆฌ)