ย
main_container ์์ญ์ ๋ง๋ค๊ณ main_container ์์ inner๋ฅผ, inner ์์ contents_box๋ฅผ ๋ง๋ค๊ณ ์์ contents๋ค์ ๋ฐฐ์นํ์ฌ contents ๋ถ๋ถ์ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ย
๊ฐ๋จํ๊ฒ ํ์ ์์ฑํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ย
ํ์ผ๋ช
:
index.html
... <div class="search_box"> <input type="text" placeholder="๊ฒ์" id="search-field"> <div class="fake_field"> <span class="sprite_small_search_icon"></span> <span>๊ฒ์</span> </div> </div> <div class="right_icons"> <div class="sprite_camera_icon"></div> <div class="sprite_compass_icon"></div> <div class="sprite_heart_icon_outline"></div> <div class="sprite_user_icon_outline"></div> </div> </section> </header> <section id="main_container"> <div class="inner"> <div class="contents_box"> <article class="contents"> </article> </div> </div> </section> </section> </body> </html>
ย
margin์ ์ฃผ๊ฒ ๋๋ฉด margin ๋ณํฉ ํ์์ด ์ผ์ด๋๊ฒ ๋๋ฏ๋ก, ์ปจํ
์ธ ๋ฅผ ๋ฐ ๋์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์์ ์๋๋ก ๋ฐ์ด์ฃผ๊ณ ์๋ ์ปจํ
์ธ ๊ฐ ์๋ก ๋ฐ ๋์๋ padding-top์ ์ด์ฉํ๊ฒ ๋ฉ๋๋ค.
ย
ํ์ผ๋ช
:
css/style.css
... #main_container{ padding-top: 130px; display: flex; /* ์ปจํ ์ธ ๊ฐ ๊ฐ์ด๋ฐ์ ์์นํ ์ ์๋๋ก ํจ */ justify-content: center; /* x์ถ ๊ฐ์ด๋ฐ ์ ๋ ฌ */ } #main_container .inner{ width: 935px; /* height: 500px; */ /* background: red; */ } .contents_box{ } .contents{ width: 614px; height: 500px; border: 1px solid rgba(0,0,0,0.09); border-radius: 3px; /* ํ ๋๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ๋ง๋ฌ */ margin-bottom: 60px; /* ๋ค๋ฅธ contents๋ค์ด ๋ฐ๋ ค์ผ ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ด์ ์ฌ๋ฐฑ์ ์ค๋ค */ background: white; }
ย
ย
์ด์ contents์์ญ์ ๋ถํ ํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ ์ฌ์ง์ ๋ณด๋ฉด ์์ฑ์ ์ ๋ณด๊ฐ ์๋ ํ, ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ด๋ฏธ์ง ์น์
, ์์ด์ฝ, like ์์ญ, ๋๊ธ ์ปจํ
์ด๋ ๊ทธ๋ฆฌ๊ณ ์๊ฐ์ ๋ณด์ฌ์ฃผ๋ ํ์ด๋จธ ์์ญ๊ณผ, ๋๊ธ ํ๋ ๋ถ๋ถ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
ย
top ์์ญ๋ถํฐ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
top ์์ญ์ ์์ธํ ์ดํด๋ณด๋ฉด, ์ปจํ
์ธ ์์๋ ํ๋กํ๊ณผ ๊ธ์๋ค์ด ๋ค์ด์๋ ๋ฐ์ค์ ๋๋ณด๊ธฐ ๋ฒํผ์ด ์๋ ๋ฐ์ค๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
ย
ย
ํ์ผ๋ช
:
index.html
... <section id="main_container"> <div class="inner"> <div class="contents_box"> <article class="contents"> <header class="top"> <div class="user_container"> <div class="profile_img"> <img src="imgs/thumb.jpeg" alt="ํ๋กํ์ด๋ฏธ์ง"> </div> <div class="user_name"> <div class="nick_name">KindTiger</div> <div class="country">Seoul, South Korea</div> </div> </div> <div class="sprite_more_icon" data-name="more"></div> </header> </article> </div> </div> </section> ...
ย
ํ์ผ๋ช
:
css/style.css
... #main_container{ padding-top: 130px; display: flex; /* ์ปจํ ์ธ ๊ฐ ๊ฐ์ด๋ฐ์ ์์นํ ์ ์๋๋ก ํจ */ justify-content: center; /* x์ถ ๊ฐ์ด๋ฐ ์ ๋ ฌ */ } #main_container .inner{ width: 935px; /* height: 500px; */ /* background: red; */ } .contents_box{ } .contents{ width: 614px; height: 500px; border: 1px solid rgba(0,0,0,0.09); border-radius: 3px; /* ํ ๋๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ๋ง๋ฌ */ margin-bottom: 60px; /* ๋ค๋ฅธ contents๋ค์ด ๋ฐ๋ ค์ผ ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ด์ ์ฌ๋ฐฑ์ ์ค๋ค */ background: white; } .contents .top{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; /* x์ถ ์ ๋ ฌ_๊ณต๊ฐ์ ์๋์ผ๋ก ๋ถ๋ฐฐ */ align-items: center; padding: 10px 20px; /* ์์๋ ์์ชฝ */ } .contents .top .profile_img{ width: 32px; height: 32px; border-radius: 50%; /* ํ ๋๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ์ค์ 50% -> ์์ ํํ */ overflow: hidden; /* ์์์ด ํฌ๊ธฐ๊ฐ ๋์น์ง ์๋๋ก ํ๋ค */ margin-right: 10px; } .contents .top .profile_img img{ width: 100%; /* 100%๊ฐ ์์ ๊ฒฝ์ฐ ์ด๋ฏธ์ง๊ฐ ๋ค์ด๊ฐ์ง ์์ */ } .contents .top .user_container{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ }
ย
ย
์ ๊ทธ๋ฆผ๊ณผ ์๋ ๊ทธ๋ฆผ์ ๋น๊ตํด ๋ณด๋ฉด ์์น์ ์์ด๋์ ๊ธ์จ๊ฐ ๊ตฌ๋ถ์ด ๋์ด ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋์ m_text ํด๋์ค์ s_text ํด๋์ค๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฅผ ์์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
ย
ํ์ผ๋ช
:
index.html
... <section id="main_container"> <div class="inner"> <div class="contents_box"> <article class="contents"> <header class="top"> <div class="user_container"> <div class="profile_img"> <img src="imgs/thumb.jpeg" alt="ํ๋กํ์ด๋ฏธ์ง"> </div> <div class="user_name"> <div class="nick_name m_text">KindTiger</div> <div class="country s_text">Seoul, South Korea</div> </div> </div> <div class="sprite_more_icon" data-name="more"></div> </header> </article> </div> </div> </section> ...
ย
ํ์ผ๋ช
:
css/style.css
... .contents .top{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; /* x์ถ ์ ๋ ฌ_๊ณต๊ฐ์ ์๋์ผ๋ก ๋ถ๋ฐฐ */ align-items: center; padding: 10px 20px; /* ์์๋ ์์ชฝ */ } .contents .top .profile_img{ width: 32px; height: 32px; border-radius: 50%; /* ํ ๋๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ์ค์ 50% -> ์์ ํํ */ overflow: hidden; /* ์์์ด ํฌ๊ธฐ๊ฐ ๋์น์ง ์๋๋ก ํ๋ค */ margin-right: 10px; } .contents .top .profile_img img{ width: 100%; /* 100%๊ฐ ์์ ๊ฒฝ์ฐ ์ด๋ฏธ์ง๊ฐ ๋ค์ด๊ฐ์ง ์์ */ } .contents .top .user_container{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ } .m_text{ font-size: 14px; font-weight: bold; } .s_text{ font-size: 12px; }
ย
์ด๋ ๊ฒ ์ค๋ณต๋๋ ๋ถ๋ถ๋ค์ด ๋ง์ ๊ฒฝ์ฐ์๋ ํด๋์ค ํ๋๋ก ์ ์๋ฅผ ํด ๋๊ณ ๋ถ๋ฌ์์ ์ฐ๋ ๋ฐฉ์์ด ์กฐ๊ธ ๋ ํธํ ์ ์์ต๋๋ค.
ย
top์ ์์ฑํ์ผ๋ ์ด์ img_section ๋ถ๋ถ์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ด๋ฏธ์ง๋ค์ด ์ฌ๋ผ์ด๋ ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ img_section์ trans_inner๋ฅผ ๋ฃ๊ณ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๋๋ก ํ๊ฒ ์ต๋๋ค.
ย
ํ์ผ๋ช
:
index.html
... <header class="top"> <div class="user_container"> <div class="profile_img"> <img src="imgs/thumb.jpeg" alt="ํ๋กํ์ด๋ฏธ์ง"> </div> <div class="user_name"> <div class="nick_name m_text">KindTiger</div> <div class="country s_text">Seoul, South Korea</div> </div> </div> <div class="sprite_more_icon" data-name="more"></div> </header> <div class="img_section"> <div class="trans_inner"> <div> <img src="imgs/img_section/img01.jpg" alt="visual01"> </div> </div> </div> ...
ย
ํ์ผ๋ช
:
css/style.css
... .m_text{ font-size: 14px; font-weight: bold; } .s_text{ font-size: 12px; } .contents .img_section{ overflow: hidden; /* ์์์ด ๋ถ๋ชจ์ ํฌ๊ธฐ๋ฅผ ๋์ง ์๋๋ก ํ๋ค */ } .contents .img_section img{ width: 100%; /* ๋ถ๋ชจ์ ํฌ๊ธฐ 100%๋ฅผ ๋ฐ๋๋ค */ }
ย
ย
์ด์ฏค๋๋ฉด contents ๋ฐ์ค ์์ ์๋ ๋์ด ๊ฐ์ด ํ์ ์๊ฒ ๋ฉ๋๋ค. ๋์ด ๊ฐ์ contents ๋ฐ์ค ์์ฒด์์ ๋์ด ๊ฐ์ ์ฃผ์ด์ ๊ณ ์ ํ๊ธฐ ๋ณด๋ค๋ ์์๋ค์๊ฒ ๋์ด ๊ฐ์ ์ฃผ์ด ์์ ์๋ ์์๋ค๋ก ๋์ด ๊ฐ์ด ์ ๋์ ์ผ๋ก ๋ณํ๋ ๊ฒ์ด ๋ ๋ฐ๋์งํฉ๋๋ค.
ย
ํ์ผ๋ช
:
css/style.css
... .contents{ width: 614px; /* height: 500px; */ border: 1px solid rgba(0,0,0,0.09); border-radius: 3px; /* ํ ๋๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ๋ง๋ฌ */ margin-bottom: 60px; /* ๋ค๋ฅธ contents๋ค์ด ๋ฐ๋ ค์ผ ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ด์ ์ฌ๋ฐฑ์ ์ค๋ค */ background: white; } ...
ย
์์ด์ฝ ๋ฐ์ค๋ค์ ์ถ๊ฐํด๋ณด๊ฒ ์ต๋๋ค.
ย
์์ด์ฝ ๋ฐ์ค์์๋ top๊ณผ ๊ฐ์ด ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ผ๋ก ๋๋์ด์ ธ์ ๋ฐฐ์น๋์ด ์์ต๋๋ค. ์ผ์ชฝ ์์ด์ฝ์๋ ํํธ๊ฐ ๋ค์ด์ฌ ๊ฒ์ธ๋ฐ ์ฌ๊ธฐ์๋ ์ ๋๋ฉ์ด์
์ด ์ ์ฉ๋์ผ ํจ์ผ๋ก ํ ๋ฒ ๊ฐ์ธ์ฃผ๋ ํํ๋ฅผ ๋ง๋ค๊ฒ ์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ๋ก ๋ฐฐ์น๋ฅผ ์ํด์ display: flex; ์ justify-content: space-between;๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ย
ํ์ผ๋ช
:
index.html
... <div class="img_section"> <div class="trans_inner"> <div> <img src="imgs/img_section/img01.jpg" alt="visual01"> </div> </div> </div> <div class="bottom_icons"> <div class="left_icons"> <div class="heart_btn"> <div class="sprite_heart_icon_outline" name="39" data-name="heartbeat"></div> </div> <div class="sprite_bubble_icon"></div> <div class="sprite_share_icon" data-name="share"></div> </div> <div class="right_icon"> <div class="sprite_bookmark_outline" data-name="bookmark"></div> </div> </div> ...
ย
ํ์ผ๋ช
:
css/style.css
... .contents .img_section{ overflow: hidden;/* ์์์ด ๋ถ๋ชจ์ ํฌ๊ธฐ๋ฅผ ๋์ง ์๋๋ก ํ๋ค */ } .contents .img_section img{ width: 100%; /* ๋ถ๋ชจ์ ํฌ๊ธฐ 100%๋ฅผ ๋ฐ๋๋ค */ } .contents .bottom_icons{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; /* x์ถ ์ ๋ ฌ_๊ณต๊ฐ์ ์๋์ผ๋ก ๋ถ๋ฐฐํจ */ align-items: center; /* y์ถ ๊ฐ์ด๋ฐ ์ ๋ ฌ */ padding: 10px 20px; } .contents .bottom_icons .left_icons{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ } .contents .bottom_icons .left_icons > div{ margin-right: 10px; }
ย
๋ค์์ผ๋ก๋ ์ข์์ ๋ถ๋ถ์ ๋ง๋ค์ด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ย
ํ์ผ๋ช
:
index.html
... <div class="bottom_icons"> <div class="left_icons"> <div class="heart_btn"> <div class="sprite_heart_icon_outline" name="39" data-name="heartbeat"></div> </div> <div class="sprite_bubble_icon"></div> <div class="sprite_share_icon" data-name="share"></div> </div> <div class="right_icon"> <div class="sprite_bookmark_outline" data-name="bookmark"></div> </div> </div> <div class="likes m_text"> ์ข์์ <span id="count">2,346</span> ๊ฐ </div> ...
ย
ํ์ผ๋ช
:
css/style.css
... .contents .bottom_icons{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; /* x์ถ ์ ๋ ฌ_๊ณต๊ฐ์ ์๋์ผ๋ก ๋ถ๋ฐฐํจ */ align-items: center; /* y์ถ ๊ฐ์ด๋ฐ ์ ๋ ฌ */ padding: 10px 20px; } .contents .bottom_icons .left_icons{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ } .contents .bottom_icons .left_icons > div{ margin-right: 10px; } .contents .likes{ padding: 5px 20px; color: #262626; }
ย
ย
๋ค์์๋ comment_container์ ํ์ด๋จธ ๋ถ๋ถ์ ๊ฐ์ด ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์๋ง ์ด์ ์ฌ๋ฌ๋ถ๋ค๋ ๋ค๋ค ํจํด์ ํ์
ํด์ display:flex; ์ justify-content: space-between; ์ผ๋ก ๊ฐ๋ก ๋ฐฐ์น๋ฅผ ์ถฉ๋ถํ ํ์ค ์ ์์ผ์ค ๊ฑฐ๋ผ๋ ์๊ฐ์ด ๋ญ๋๋ค.
ย
ํ์ผ๋ช
:
index.html
... <div class="likes m_text"> ์ข์์ <span id="count">2,346</span> ๊ฐ </div> <div class="comment_container"> <div class="comment"> <div class="nick_name m_text">dongdong2</div> <div>๊ฐ์์ง๊ฐ ๋๋ฌด ๊ท์ฌ์์~!</div> </div> <div class="small_heart"> <div class="sprite_small_heart_icon_outline"></div> </div> </div> <div class="timer">1์๊ฐ ์ </div> ...
ย
ํ์ผ๋ช
:
css/style.css
... .contents .likes{ padding: 5px 20px; color: #262626; } .contents .comment_container{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; align-items: center; padding: 5px 20px; } .contents .comment_container .comment{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ font-size: 14px; } .contents .comment_container .comment .nick_name{ margin-right: 10px; /* ์์ด๋์ ๋๊ธ ๊ฐ์ ๊ฑฐ๋ฆฌ ์ค์ */ } .contents .timer{ font-size: 10px; letter-spacing: 0.2px; /* ์๊ฐ ์กฐ์ */ color: #999; border-bottom: 1px solid rgba(0,0,0,0.09); /* ์๋์ชฝ ์ค์ ์ถ๊ฐ */ padding: 10px 20px; }
ย
ย
comment_field๋ฅผ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์
๋ ฅ์ ํ ์ ์๋ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ input ํ๊ทธ๊ฐ ๋ค์ด๊ฐ๊ณ ์
๋ก๋ํ๋ ๊ฒ์ ๋ฒํผ์ด ๋ค์ด๊ฐ๋๋ค.
ย
ํ์ผ๋ช
:
index.html
... <div class="comment_container"> <div class="comment"> <div class="nick_name m_text">dongdong2</div> <div>๊ฐ์์ง๊ฐ ๋๋ฌด ๊ท์ฌ์์~!</div> </div> <div class="small_heart"> <div class="sprite_small_heart_icon_outline"></div> </div> </div> <div class="timer">1์๊ฐ ์ </div> <div class="comment_field"> <input type="text" placeholder="๋๊ธ๋ฌ๊ธฐ..."> <div class="upload_btn m_text">๊ฒ์</div> </div> ...
ย
ํ์ผ๋ช
:
css/style.css
... .contents .comment_container{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; align-items: center; padding: 5px 20px; } .contents .comment_container .comment{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ font-size: 14px; } .contents .comment_container .comment .nick_name{ margin-right: 10px; /* ์์ด๋์ ๋๊ธ ๊ฐ์ ๊ฑฐ๋ฆฌ ์ค์ */ } .contents .timer{ font-size: 10px; letter-spacing: 0.2px; /* ์๊ฐ ์กฐ์ */ color: #999; border-bottom: 1px solid rgba(0,0,0,0.09); /* ์๋์ชฝ ์ค์ ์ถ๊ฐ */ padding: 10px 20px; } .contents .comment_field{ min-height: 56px; padding: 0 20px; position: relative; /* ์์๋ค์ด absolute๋ก ์๋ฆฌ๋ฅผ ์ก๊ธฐ ์ํจ */ } .contents .comment_field input{ width: 100%; height: 56px; border: none; outline: none; background: transparent; /* ํฌ๋ช ํ๊ฒ ์ค์ */ } .contents .comment_field input:focus ~ .upload_btn{ pointer-events: initial; /* ํฌ์ธํฐ ์ด๋ฒคํธ ์ด๊ธฐํ */ opacity: 1; } .contents .comment_field .upload_btn{ color: #3897f0; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); /* y์ถ์ผ๋ก ์ค์ ์ ๋ ฌ */ cursor: pointer; pointer-events: none; /* ์ฒ์์๋ ํด๋ฆญ์ด ๋์ง ์๋๋ก ํ๋ค */ opacity: 0.6; }
ย
ย
๋ง์ง๋ง์ผ๋ก ๋ฒํผ์ ์ ํํ ์ ์๋๋ก cursor๋ฅผ ํฌ์ธํฐ๋ก ์ฃผ๊ฒ ์ต๋๋ค.
ย
ํ์ผ๋ช
:
css/style.css
... .contents .bottom_icons .left_icons > div{ margin-right: 10px; cursor: pointer; /* ๋๋ฅผ ์ ์๋๋ก ํ๊ธฐ ์ํจ */ } .contents .bottom_icons .right_icon > div{ cursor: pointer; /* ๋๋ฅผ ์ ์๋๋ก ํ๊ธฐ ์ํจ */ } ...
ย
์ด๋ ๊ฒ ํด์ contents๋ฅผ ํฌ๊ฒ ๋ง๋ค์์ต๋๋ค. ๋ง์ด ๋ณต์ฌ๊ฐ ๋๋ฉด ๋ณต์ฌ๊ฐ ๋๋ ๋๋ก ํ์๋ผ์ธ์ฒ๋ผ ๋์ค๊ฒ ๋ฉ๋๋ค. ์ด์ ์ด๊ฒ์ back-end์์ ๋ฐ์ดํฐ๋ก ํ๋์ฉ ๋ถ๋ฌ์ค๋๋ก ํ๊ฒ ์ต๋๋ค.
ย
์์ฑ๋ ์ฝ๋๋ ์๋์ ๊ฐ์ต๋๋ค.
ย
ํ์ผ๋ช
:
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="css/style.css"> <script src="js/main.js"></script> </head> <body> <section id="container"> <header id="header"> <section class="inner"> <h1 class="logo"> <a herf="index.html"> <div class="sprite_insta_icon"></div> <div class="sprite_write_logo"></div> </a> </h1> <div class="search_box"> <input type="text" placeholder="๊ฒ์" id="search-field"> <div class="fake_field"> <span class="sprite_small_search_icon"></span> <span>๊ฒ์</span> </div> </div> <div class="right_icons"> <div class="sprite_camera_icon"></div> <div class="sprite_compass_icon"></div> <div class="sprite_heart_icon_outline"></div> <div class="sprite_user_icon_outline"></div> </div> </section> </header> <section id="main_container"> <div class="inner"> <div class="contents_box"> <article class="contents"> <header class="top"> <div class="user_container"> <div class="profile_img"> <img src="imgs/thumb.jpeg" alt="ํ๋กํ์ด๋ฏธ์ง"> </div> <div class="user_name"> <div class="nick_name m_text">KindTiger</div> <div class="country s_text">Seoul, South Korea</div> </div> </div> <div class="sprite_more_icon" data-name="more"></div> </header> <div class="img_section"> <div class="trans_inner"> <div> <img src="imgs/img_section/img01.jpg" alt="visual01"> </div> </div> </div> <div class="bottom_icons"> <div class="left_icons"> <div class="heart_btn"> <div class="sprite_heart_icon_outline" name="39" data-name="heartbeat"></div> </div> <div class="sprite_bubble_icon"></div> <div class="sprite_share_icon" data-name="share"></div> </div> <div class="right_icon"> <div class="sprite_bookmark_outline" data-name="bookmark"></div> </div> </div> <div class="likes m_text"> ์ข์์ <span id="count">2,346</span> ๊ฐ </div> <div class="comment_container"> <div class="comment"> <div class="nick_name m_text">dongdong2</div> <div>๊ฐ์์ง๊ฐ ๋๋ฌด ๊ท์ฌ์์~!</div> </div> <div class="small_heart"> <div class="sprite_small_heart_icon_outline"></div> </div> </div> <div class="timer">1์๊ฐ ์ </div> <div class="comment_field"> <input type="text" placeholder="๋๊ธ๋ฌ๊ธฐ..."> <div class="upload_btn m_text">๊ฒ์</div> </div> </article> </div> </div> </section> </section> </body> </html>
ย
ํ์ผ๋ช
:
css/style.css
.sprite_insta_icon{ display: inline-block; background: url('../imgs/background01.png') no-repeat -53px -235px; width: 22px; height: 22px; } .sprite_write_logo{ display: inline-block; background: url('../imgs/background01.png') no-repeat -94px -72px; width: 103px; height: 29px; } .sprite_compass_icon{ display: inline-block; background: url('../imgs/background01.png') no-repeat -130px -286px; width: 23px; height: 23px; } .sprite_user_icon_outline{ display: inline-block; background: url('../imgs/background01.png') no-repeat -272px -182px; width: 22px; height: 24px; } .sprite_heart_icon_outline{ display: inline-block; background: url('../imgs/background01.png') no-repeat -52px -261px; width: 24px; height: 22px; } .sprite_small_search_icon{ display: inline-block; background: url('../imgs/background01.png') no-repeat -337px -246px; width: 10px; height: 10px; } .sprite_more_icon{ display: inline-block; background: url('../imgs/background01.png') no-repeat -301px -218px; width: 15px; height: 3px; } .sprite_bubble_icon{ display: inline-block; background: url('../imgs/background01.png') no-repeat -239px -202px; width: 24px; height: 24px; } .sprite_share_icon{ display: inline-block; background: url('../imgs/background01.png') no-repeat -324px -52px; width: 21px; height: 24px; } .sprite_bookmark_outline{ display: inline-block; background: url('../imgs/background01.png') no-repeat -237px -286px; width: 19px; height: 24px; } .sprite_bookmark_outline.on{ background: url('../imgs/background01.png') no-repeat -159px -286px; width: 19px; height: 24px; } .sprite_small_heart_icon_outline{ display: inline-block; background: url('../imgs/background01.png') no-repeat -323px -274px; width: 12px; height: 11px; } .sprite_camera_icon{ display: inline-block; background: url('../imgs/background01.png') no-repeat -271px -104px; width: 24px; height: 22px; } .sprite_insta_big_logo{ display: inline-block; background: url('../imgs/background02.png') no-repeat -98px -150px; width: 175px; height: 51px; } .sprite_plus_icon{ display: inline-block; background: url('../imgs/background01.png') no-repeat -187px -202px; width: 23px; height: 23px; } body{ background: #fafafa; } #header{ width: 100%; /* ๊ณต์ค์ ๋จ๊ธฐ ์ํจ */ position: absolute; /* ๊ฐ์ฅ ์์ ์ฌ๋ผ๊ฐ ์์ด์ผ ํ๊ธฐ ์ํจ */ z-index: 999; /* absolute์ ๊ฒฝ์ฐ ์ต์ x์ถ์์ 1๊ฐ y์ถ์์ 1๊ฐ์ ๊ฐ์ ์ฃผ์ด์ผ ํจ */ left: 0; top: 0; background: white; border-bottom: 1px solid rgba(0,0,0,0.1); } #header .inner{ /* inner ์์ ์ปจํ ์ธ ๋ฅผ ๋ฃ์ผ๋ฉด ์์ ๊ฐ์ด ๋ค์ด์ด */ width: 975px; height: 77px; margin: 0 auto; /* ๊ฐ์ด๋ฐ ์ ๋ ฌ */ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; /* x์ถ ์ ๋ ฌ_๊ณต๊ฐ์ ์๋์ผ๋ก ๋ถ๋ฐฐํจ */ align-items: center; /* y์ถ ์ ๋ ฌ */ } #header .inner .logo > a{ color: transparent; /* ๋ฐฐ๊ฒฝ์์ ํฌ๋ช ํ๊ฒ ๋ง๋ฌ */ } #header .inner .logo div{ vertical-align: middle; } #header .inner .logo .sprite_insta_icon{ position: relative; /* after์๊ฒ ์์น ๊ธฐ์ค์ ์ ๋ฌํด์ฃผ๊ธฐ ์ํจ */ margin-right: 30px; } #header .inner .logo .sprite_insta_icon:after{ content: ''; /* ๊ณต๋ฐฑ์ ๋ฐ์์ด */ width: 1px; height: 28px; background: #000; position: absolute; /* ๋ถ๋ชจ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์น๋ฅผ ์ก์ */ right: -15px; top: -4px; } #header .search_box{ position: relative; /* ๊ธฐ์ค์ ์ ์ก๊ณ ๊ฐ๋ก ๋ฐฐ์น */ } #search-field{ width: 185px; height: 28px; background: #fafafa; border: 1px solid #dbdbdb; border-radius: 3px; padding: 3px 30px; /* ์์๋ ์์ชฝ */ color: #999; font-weight: 400; text-align: left; /* ๊ธ์ ์ ๋ ฅ ์ ์ผ์ชฝ๋ถํฐ ๋ณด์ด๋๋ก ํ๊ธฐ ์ํจ */ font-size: 14px; outline: none; /* ํฌ์ปค์ค ํ์ ๋ ๋ํ๋๋ ํ๋์ */ } #search-field::placeholder{ /* ์ฝ๋ก 2๊ฐ(::) - ์์ฑ์ ํ์ */ font-size: 0; /* ํฌ์ปค์ค๊ฐ ๋์ง ์์ ๋ ๊ฒ์ ๊ธ์๊ฐ ๋ณด์ด์ง ์๋๋ก ํ๊ธฐ ์ํจ */ } #search-field:focus::placeholder{ font-size: 14px; /* ํฌ์ปค์ค ๋์์ ๋ ๊ฒ์ ๊ธ์๊ฐ ๋ณด์ด๋๋ก ํ๋ค */ } #header .search_box .fake_field{ position: absolute; /* ๊ฒ์ ์ฐฝ ์์ ๊ธ์๋ฅผ ๋ณด์ด๊ธฐ ์ํจ */ /* ๊ฐ์ด๋ฐ ๋ฐฐ์นํ๋ ๊ณต์ */ left: 50%; top: 50%; transform: translate(-50%, -50%); pointer-events: none; /* ๊ฒ์์ ๋๋ ์ ๋์๋ ํฌ์ธํฐ ์ธ์์ด ์ ๋จ */ } /* ๋ฌผ๊ฒฐ(~) - ๊ทผ์ฒ์ ์๋ fake_field */ #search-field:focus~.fake_field > span:nth-child(1){ transform: translateX(-105px); /* ๋๋ณด๊ธฐ๋ฅผ ์ผ์ชฝ์ผ๋ก ์ด๋ */ } #search-field:focus~.fake_field > span:nth-child(2){ display: none; /* ํฌ์ปค์ค ๋์์ ๋ ๊ธ์ ์จ๊ธฐ๊ธฐ */ } #header .right_icons{ width: 132px; /* ๋ถ๋ชจ๊ฐ ์ข์ฐ๊ฐ ๊ณ ์ */ display: flex; justify-content: space-between; /* x์ถ ์ ๋ ฌ_๊ณต๊ฐ์ ์๋์ผ๋ก ๋ถ๋ฐฐํจ */ } #header .inner .logo div:nth-child(2){ transform: translateY(2px); } #header .inner .logo .sprite_insta_icon{ position: relative; /* after์๊ฒ ์์น ๊ธฐ์ค์ ์ ๋ฌํด์ฃผ๊ธฐ ์ํจ */ margin-right: 30px; } #main_container{ padding-top: 130px; display: flex; /* ์ปจํ ์ธ ๊ฐ ๊ฐ์ด๋ฐ์ ์์นํ ์ ์๋๋ก ํจ */ justify-content: center; /* x์ถ ๊ฐ์ด๋ฐ ์ ๋ ฌ */ } #main_container .inner{ width: 935px; /* height: 500px; */ /* background: red; */ } .contents_box{ } .contents{ width: 614px; /* height: 500px; */ border: 1px solid rgba(0,0,0,0.09); border-radius: 3px; /* ํ ๋๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ๋ง๋ฌ */ margin-bottom: 60px; /* ๋ค๋ฅธ contents๋ค์ด ๋ฐ๋ ค์ผ ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ด์ ์ฌ๋ฐฑ์ ์ค๋ค */ background: white; } .contents .top{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; /* x์ถ ์ ๋ ฌ_๊ณต๊ฐ์ ์๋์ผ๋ก ๋ถ๋ฐฐ */ align-items: center; padding: 10px 20px; /* ์์๋ ์์ชฝ */ } .contents .top .profile_img{ width: 32px; height: 32px; border-radius: 50%; /* ํ ๋๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ์ค์ 50% -> ์์ ํํ */ overflow: hidden; /* ์์์ด ํฌ๊ธฐ๊ฐ ๋์น์ง ์๋๋ก ํ๋ค */ margin-right: 10px; } .contents .top .profile_img img{ width: 100%; /* 100%๊ฐ ์์ ๊ฒฝ์ฐ ์ด๋ฏธ์ง๊ฐ ๋ค์ด๊ฐ์ง ์์ */ } .contents .top .user_container{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ } .m_text{ font-size: 14px; font-weight: bold; } .s_text{ font-size: 12px; } .contents .img_section{ overflow: hidden; /* ์์์ด ๋ถ๋ชจ์ ํฌ๊ธฐ๋ฅผ ๋์ง ์๋๋ก ํ๋ค */ } .contents .img_section img{ width: 100%; /* ๋ถ๋ชจ์ ํฌ๊ธฐ 100%๋ฅผ ๋ฐ๋๋ค */ } .contents .bottom_icons{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; /* x์ถ ์ ๋ ฌ_๊ณต๊ฐ์ ์๋์ผ๋ก ๋ถ๋ฐฐํจ */ align-items: center; /* y์ถ ๊ฐ์ด๋ฐ ์ ๋ ฌ */ padding: 10px 20px; } .contents .bottom_icons .left_icons{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ } .contents .bottom_icons .left_icons > div{ margin-right: 10px; } .contents .likes{ padding: 5px 20px; color: #262626; } .contents .comment_container{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ justify-content: space-between; align-items: center; padding: 5px 20px; } .contents .comment_container .comment{ display: flex; /* ๊ฐ๋ก ๋ฐฐ์น */ font-size: 14px; } .contents .comment_container .comment .nick_name{ margin-right: 10px; /* ์์ด๋์ ๋๊ธ ๊ฐ์ ๊ฑฐ๋ฆฌ ์ค์ */ } .contents .timer{ font-size: 10px; letter-spacing: 0.2px; /* ์๊ฐ ์กฐ์ */ color: #999; border-bottom: 1px solid rgba(0,0,0,0.09); /* ์๋์ชฝ ์ค์ ์ถ๊ฐ */ padding: 10px 20px; } .contents .comment_field{ min-height: 56px; padding: 0 20px; position: relative; /* ์์๋ค์ด absolute๋ก ์๋ฆฌ๋ฅผ ์ก๊ธฐ ์ํจ */ } .contents .comment_field input{ width: 100%; height: 56px; border: none; outline: none; background: transparent; /* ํฌ๋ช ํ๊ฒ ์ค์ */ } .contents .comment_field input:focus ~ .upload_btn{ pointer-events: initial; /* ํฌ์ธํฐ ์ด๋ฒคํธ ์ด๊ธฐํ */ opacity: 1; } .contents .comment_field .upload_btn{ color: #3897f0; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); /* y์ถ์ผ๋ก ์ค์ ์ ๋ ฌ */ cursor: pointer; pointer-events: none; /* ์ฒ์์๋ ํด๋ฆญ์ด ๋์ง ์๋๋ก ํ๋ค */ opacity: 0.6; } .contents .bottom_icons .right_icon > div{ cursor: pointer; /* ๋๋ฅผ ์ ์๋๋ก ํ๊ธฐ ์ํจ */ }
ย