<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>jw 노트</title>
    <link>https://jwss.tistory.com/</link>
    <description>안녕하세요. 웹퍼블리셔 공부 블로그입니다.</description>
    <language>ko</language>
    <pubDate>Sat, 4 Jul 2026 01:59:04 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>jwss</managingEditor>
    <item>
      <title>왕복 4시간 걸리는 웹에이전시 출근 3주차 후기</title>
      <link>https://jwss.tistory.com/37</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;와 벌써 출근한지 3주차가 다 되어간다.&lt;br&gt;출퇴근 시간 때문에 걱정하고 어리바리하게 출근한 첫날이 바로 며칠 전 같은데 직장인의 시간은 정말 빠르게 지나가는것 같다.&lt;br&gt;&lt;br&gt;국비수업을 첫 계기로 웹퍼블리셔 공부를 하고 몇 년간 취업을 하지않았기 때문에 그 기간동안 과연 내가 취업을 할 수 있을지 여러모로 고민이 많았는데 내가 출근을하고 있다는게 아직도 얼떨떨하고 신기하다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUh69P/btsBFLznfg3/52UeRX8SsCkV7AMDLErsCK/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUh69P/btsBFLznfg3/52UeRX8SsCkV7AMDLErsCK/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUh69P/btsBFLznfg3/52UeRX8SsCkV7AMDLErsCK/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bUh69P/btsBFLznfg3/52UeRX8SsCkV7AMDLErsCK/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;360&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;왕복 4시간 출퇴근&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;회사 출퇴근은... 왕복 4시간이지만 생각보다는 할만하다. (물론 아직 3주차라서 그럴 수도 있다)&lt;br&gt;원래는 출퇴근 시간을 잘 활용해서 인강도 보고 책 읽으면서 다녀야지! 했는데 공부는 무슨 지옥철 겪으면 넋빠져서 그냥 넋놓고 다니거나 웃긴거 보면서 다니는게 최선이었다^^&lt;br&gt;한 번에 쭉 가기라도 하면 좀 편할텐데ㅎ 출근할 때마다 판교에 이렇게 출근하는 사람들이 많구나 싶다.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7IZWW/btsBC2BWe8x/63Dy1RDQyCcBmR7Nf5kxO0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7IZWW/btsBC2BWe8x/63Dy1RDQyCcBmR7Nf5kxO0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7IZWW/btsBC2BWe8x/63Dy1RDQyCcBmR7Nf5kxO0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7IZWW%2FbtsBC2BWe8x%2F63Dy1RDQyCcBmR7Nf5kxO0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;br&gt;&lt;b&gt;회사&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;회사는 감사한 마음으로 다니고있다.&lt;br&gt;퍼블리셔로서의 경력을 위해 웹에이전시에 가고싶었는데 사실 웹에이전시라고 하면 직원수도 적고, 사수도 없고 시설도 별로고...이런 걸 각오했었다.&lt;br&gt;아니 그런데 왠걸 내가 기대도 별로 안한 큰 에이전시에 합격하게 됐다.&lt;br&gt;회사 건물도 너무 깔끔하고 라운지랑 사내 카페도 있고 헬스케어룸도 있고 주 1회 재택도 가능하고 9시~11시 자율출근이고!! &lt;br&gt;합격 후에는 내가 이렇게 좋은 회사에 붙다니! 하고 복지라고는 아는 것도 없었는데 막상 가보니 더 좋아서 놀라는 중이다.&lt;br&gt;걱정했던 팀원 분들도 다들 좋은 분이셔서 잘 배울 수 있을 것 같고 동기도 있어서 스트레스 받지않고 다니는 중이다. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;업무&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;지금은 업무랄게 없고 과제를 받아서 약 3~4일간 진행 후에 피드백 받는 식으로 진행하고 있다.&lt;br&gt;여기서 이렇게 체계적으로 배울 수 있다는 점에서 또 감동... &lt;br&gt;사실 HTML CSS는 조금 쉽게 보던 경향이 있었는데 막상 실무에서는 훨씬 더 섬세하게 고려해야할 부분이 많아서 역시 쉽지않구나 싶었다.&lt;br&gt;나름 접근성 공부도 좀 했다고 생각했는데 내가 몰랐던 이슈들도 정말 많고... 공부는 끊임없이 해야할것 같다.&lt;br&gt;&lt;br&gt;&lt;br&gt;아무튼 이렇게 좋은 회사에서 대기업 업무 맡을 수 있다는게 참 행운인 것 같다. 열심히 해야지&lt;b&gt;&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>퍼블리셔 일상</category>
      <category>웹퍼블리셔</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/37</guid>
      <comments>https://jwss.tistory.com/37#entry37comment</comments>
      <pubDate>Sat, 9 Dec 2023 22:24:18 +0900</pubDate>
    </item>
    <item>
      <title>웹퍼블리셔 취뽀 완료</title>
      <link>https://jwss.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;br&gt;공부를 기록하던 블로그를 여기서 velog로 옮겨 버려서 여기를 방치하다가 조회수가 꾸준히 나오는걸 보고 여기를 그냥 방치하는게 좀 아까워졌다. 국비 수업을 들은 이후 방황하던 21년도부터 공부하던걸 기록하던 곳이라 나름의 추억이 담기기도 했고?&lt;br&gt;&amp;nbsp;&lt;br&gt;퍼블리셔 면접을 보러 다니면서 여기에다가 면접 기록, 면접 일기나 후기 같은 것을 써보려고 했는데 놀랍게도 처음 간 면접에서 한 번에 붙어버려서 그 계획도 무산이 되었다.&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;그동안의 걱정과 불안이 무색하게도 첫 면접에서 규모있는 웹에이전시에 합격하게 됐다.&lt;br&gt;회사 건물도 그렇고 여러가지 시스템도 굉장히 마음에 들고 팀원분들도 친절하셔서 즐겁게 다니고 있다.&lt;br&gt;재직하면서 이런 저런 실수도 할 테고 앞으로 5주간은 과제 받으면서 피드백 받을테니 그런것들을 기록해보려고 한다.&lt;br&gt;(면접 봤던것도 도움 받는 사람이 있을테니 써볼까?)&lt;br&gt;&amp;nbsp;&lt;br&gt;요새 확실히 취업시장이 얼어붙은 것 같은데 취업준비생들 모두 화이팅 입니다ㅠㅠ&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>퍼블리셔 일상</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/36</guid>
      <comments>https://jwss.tistory.com/36#entry36comment</comments>
      <pubDate>Fri, 24 Nov 2023 22:52:56 +0900</pubDate>
    </item>
    <item>
      <title>4주차: 디자인 시안으로 코딩하기</title>
      <link>https://jwss.tistory.com/35</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;실무에서 처럼 디자인 시안을 받았다고 가정하고 작업했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bg 사용할 때는 span class=&quot;blind&quot;로 텍스트 플라인드 처리하고 이미지 설명&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;img 사용할 때는 alt 꼭 써주기 &amp;gt; 리더기가 읽기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;디자인 시안 종류&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;psd는 용량이 크고, 폰트 영역을 잡거나 이미지를 저장할 때 힘들다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;피그마, 재플린, xd는 이미지 1배수, 2배수, 3배수 등 배수 별로 이미지를 다운로드 가능, 폰트도 누르면 바로 카피가 가능하므로 사용이 쉽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;피그마, 재플린, xd로 시안을 받으면 360 이나 380&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포토샵으로 시안을 받으면 640, 720 &amp;gt; 2배수 (해상도 때문)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;올바른 태그 사용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;h2&amp;gt; 영역에 대한 제목&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;h3&amp;gt; 콘텐츠에 대한 제목&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;strong&amp;gt; 문장강조, 게시글 제목&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;em&amp;gt; 단어강조, 이벤트기간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;span&amp;gt; 작성자 작성일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전화번호는 a태그로 전화걸리게 &amp;lt;a href=&quot;tel:+010-1111-1111&quot;&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;포토샵 단축키&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;V 기본 선택툴 (자동선택, 레이어)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;M 드래그툴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 포토샵 이미지 슬라이스 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크롭툴에서 이미지 영역 드래그 &amp;gt; 영역을 모르겠다면 v 선택해서 배경 레이어 끄기 &amp;gt; ctrol 누르고 다른 레이어 선택하면 다른 이미지 선택됨 &amp;gt; control+alt+shift+s 누른 후 선택, jpg 최댓값 저장 / png 저장할때는 png24&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지를 배경만큼 자르냐 vs 이미지를 딱 콘텐츠 영역만큼으로 자르냐에 따라 대응해서 코딩해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이미지 정보보기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레이어를 control 키를 누른 상태로 클릭&amp;gt; window에 info 선택 &amp;gt; 이미지 정보(너비 높이) 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;파일구조&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;404&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7A7Ir/btrVkcFCH5p/wJBoPKhPp4H9kL0A5w7doK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7A7Ir/btrVkcFCH5p/wJBoPKhPp4H9kL0A5w7doK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7A7Ir/btrVkcFCH5p/wJBoPKhPp4H9kL0A5w7doK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7A7Ir%2FbtrVkcFCH5p%2FwJBoPKhPp4H9kL0A5w7doK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;256&quot; height=&quot;283&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;404&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;layout.css&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;reset, common, 폰트 import로 받아온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;reset.css&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;body&amp;gt;에 기본 베이스가 될 폰트(폰트, 폰트색상, 자간)정의, 화면의 최소너비 지정&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;- 화면의 최소너비&lt;br /&gt;body에 min-width 설정 &amp;gt; 화면이 min-width보다 작아지면 가로 스크롤 생성된다.&lt;br /&gt;가이드라인 바깥으로 나간 화살표 크기까지 고려한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;index.html에서 reset이 포함된 layout.css 를 먼저 받아온 후 main.css 받아온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;메인비주얼 가운데로 잡아주기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면을 확대 축소 하게 되면 아래 이미지처럼 메인 비주얼 이미지가 한 쪽으로 쏠리는 상황이 생기는데,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2086&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KKWFE/btrVk6Swqmu/HmzTtBUvFMTES7vHISZfJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KKWFE/btrVk6Swqmu/HmzTtBUvFMTES7vHISZfJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KKWFE/btrVk6Swqmu/HmzTtBUvFMTES7vHISZfJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKKWFE%2FbtrVk6Swqmu%2FHmzTtBUvFMTES7vHISZfJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;856&quot; height=&quot;227&quot; data-origin-width=&quot;2086&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것은 해당 역역의 img에 width: 100%를 주거나, margin: 0 auto를 주는 방식으로 잡을 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCcffS/btrVo4UaqIG/xPCV0tDDDyCatlA8gsv3n1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCcffS/btrVo4UaqIG/xPCV0tDDDyCatlA8gsv3n1/img.png&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;178&quot; data-is-animation=&quot;false&quot; width=&quot;388&quot; height=&quot;149&quot; data-widthpercent=&quot;48.85&quot; style=&quot;width: 48.2825%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCcffS/btrVo4UaqIG/xPCV0tDDDyCatlA8gsv3n1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCcffS%2FbtrVo4UaqIG%2FxPCV0tDDDyCatlA8gsv3n1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;486&quot; height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdWp0B/btrVkW3Fl9P/SEPskHXUQdKXJ2T3LiXl31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdWp0B/btrVkW3Fl9P/SEPskHXUQdKXJ2T3LiXl31/img.png&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;170&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.5547%;&quot; data-widthpercent=&quot;51.15&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdWp0B/btrVkW3Fl9P/SEPskHXUQdKXJ2T3LiXl31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdWp0B%2FbtrVkW3Fl9P%2FSEPskHXUQdKXJ2T3LiXl31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;486&quot; height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 방법의 결과물은 차이가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;width: 100%를 줄 때는 화면을 아무리 확대 축소를 하게되도 이미지가 영역에 꽉 차게 되지만&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2854&quot; data-origin-height=&quot;1254&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnvLto/btrVjntX4Qm/4oqc7wBJc2fvkfZq04nxAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnvLto/btrVjntX4Qm/4oqc7wBJc2fvkfZq04nxAk/img.png&quot; data-alt=&quot;img에 width: 100%&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnvLto/btrVjntX4Qm/4oqc7wBJc2fvkfZq04nxAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnvLto%2FbtrVjntX4Qm%2F4oqc7wBJc2fvkfZq04nxAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;851&quot; height=&quot;374&quot; data-origin-width=&quot;2854&quot; data-origin-height=&quot;1254&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;img에 width: 100%&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;marin: 0 auto; 를 줄 때는 화면을 확대축소 했을 때 이미지가 영역에 꽉 차지는 않고 가운데에만 위치하게 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;932&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDGi3G/btrVpZkkTRU/7yWXljTr1B4ltmMxQv0AK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDGi3G/btrVpZkkTRU/7yWXljTr1B4ltmMxQv0AK0/img.png&quot; data-alt=&quot;img에 margin: 0 auto;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDGi3G/btrVpZkkTRU/7yWXljTr1B4ltmMxQv0AK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDGi3G%2FbtrVpZkkTRU%2F7yWXljTr1B4ltmMxQv0AK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;848&quot; height=&quot;284&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;932&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;img에 margin: 0 auto;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;화살표 위치 잡기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화살표의 위치를 잡을 때 단순 px 값으로 잡을 경우, 화면을 축소하고 확대시킬 때 이상하게 보이게되기 때문에 상대적인 값으로 위치를 잡아주어야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;- 이미지 width가 100%일 때&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메인비주얼 이미지 width가 100%인 상황일 때, 각 왼쪽 오른쪽 버튼을 position %로 위치 잡아준다,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;psd 시안에서 양 끝쪽에서 화살표의 거리를 측정하고 나온 px 수치를&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WQY6c/btrVpvwZKB2/WZZDEUXAVRJYjFh3sQF6Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WQY6c/btrVpvwZKB2/WZZDEUXAVRJYjFh3sQF6Kk/img.png&quot; data-alt=&quot;측정했을 때 327px이 나온다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WQY6c/btrVpvwZKB2/WZZDEUXAVRJYjFh3sQF6Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWQY6c%2FbtrVpvwZKB2%2FWZZDEUXAVRJYjFh3sQF6Kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;436&quot; height=&quot;317&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;측정했을 때 327px이 나온다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네이버 퍼센트 계산기에서 입력해주면 %로 치환할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJwCPM/btrVmfu8LPA/CHBXLSrSJ95LB9ZyLQwyz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJwCPM/btrVmfu8LPA/CHBXLSrSJ95LB9ZyLQwyz0/img.png&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;764&quot; data-is-animation=&quot;false&quot; width=&quot;576&quot; height=&quot;304&quot; style=&quot;width: 55.7265%; margin-right: 10px;&quot; data-widthpercent=&quot;56.38&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJwCPM/btrVmfu8LPA/CHBXLSrSJ95LB9ZyLQwyz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJwCPM%2FbtrVmfu8LPA%2FCHBXLSrSJ95LB9ZyLQwyz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1448&quot; height=&quot;764&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8KfL1/btrVoGy3fzw/adMaBm34gFkOKwKoVlSf71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8KfL1/btrVoGy3fzw/adMaBm34gFkOKwKoVlSf71/img.png&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;296&quot; data-is-animation=&quot;false&quot; width=&quot;334&quot; height=&quot;228&quot; style=&quot;width: 43.1107%;&quot; data-widthpercent=&quot;43.62&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8KfL1/btrVoGy3fzw/adMaBm34gFkOKwKoVlSf71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8KfL1%2FbtrVoGy3fzw%2FadMaBm34gFkOKwKoVlSf71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;434&quot; height=&quot;296&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 값을 화살표 각각에게 17% 씩 주면 위치를 잡을 수 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;- 이미지에 margin 0 auto를 줬을 때&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메인비주얼 이미지 width가 100%가 아니라 margin:0 auto로 줬을 경우, 위의 방법처럼 position %로 잡아주면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면 확대 축소를 하게 됐을 때 버튼들이 화면을 기준으로 고정적으로 위치가 잡히므로 이상한 곳에 위치하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 우선 버튼을 position으로 정중앙에 위치시키고 margin-left로 밀어서 위치에 고정시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ebUw4z/btrVqgGjVe3/1LvLFimaAkhlpIHk7IH0Dk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ebUw4z/btrVqgGjVe3/1LvLFimaAkhlpIHk7IH0Dk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ebUw4z/btrVqgGjVe3/1LvLFimaAkhlpIHk7IH0Dk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FebUw4z%2FbtrVqgGjVe3%2F1LvLFimaAkhlpIHk7IH0Dk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;333&quot; height=&quot;189&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;248&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때 왼쪽은 623px을 밀고 오른쪽은 600을 미는데 position: absolute; left: 50% 즉, left를 기준으로 잡아줬기 때문에 왼쪽에 위치한 화살표는 화살표의 너비인 23px을 더 밀어줘야하기 때문에 623px의 수치가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2462&quot; data-origin-height=&quot;920&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kABDU/btrVk50mLdq/JYffnwECujqJD9G9TBrAXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kABDU/btrVk50mLdq/JYffnwECujqJD9G9TBrAXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kABDU/btrVk50mLdq/JYffnwECujqJD9G9TBrAXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkABDU%2FbtrVk50mLdq%2FJYffnwECujqJD9G9TBrAXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;844&quot; height=&quot;315&quot; data-origin-width=&quot;2462&quot; data-origin-height=&quot;920&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;상하 여백 잡기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹에서는 글씨에 들어가는 여백이 있으므로 포토샵에서 폰트 바로 위의 상하단 여백을 측정하면 안된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹의 글씨의 높이만큼 포토샵에서 M키를 눌러 드래그하여 영역을 잡아준다 &amp;gt; 영역을 글씨 중앙에 위치하도록 잡아준다. &amp;gt; 영역만큼 가이드라인을 잡는다 &amp;gt; 가이드 라인의 상하 여백을 측정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과제 자주 틀리는 부분&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;header util 폰트사이즈 적용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gnb 폰트 스타일 적&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sns 라인 맞추기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화살표 나오기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;페이지네이션 위치 제대로 잡기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;headline 상하단 여백 위의 방식으로 잡기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버튼 박스사이징 잡아줘서 너비 높이 맞추기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추천제품 텍스트박스 여백 잘 잡아주기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추천제품 게시글 글 간의 여백&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;best reviews 화살표 위치 1200끝 라인에 잘 잡아주기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뉴스 다운로드 패딩&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뉴스 다운로드 더보기 앱솔루트로 위치 잡기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;말줄임처리&amp;nbsp; 다 넣기 &amp;gt; 제목은 한줄, 콘텐츠 여섯줄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;footer 영문 폰트 넣기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해상도 때문에 모바일 2배수로 되있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;control alt i 해서 320으로 시안변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>강의 정리/퍼블리싱 수업</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/35</guid>
      <comments>https://jwss.tistory.com/35#entry35comment</comments>
      <pubDate>Thu, 29 Dec 2022 17:04:41 +0900</pubDate>
    </item>
    <item>
      <title>[JS] async vs defer, 스크립트를 HTML에 포함할 때 효율적인 방법</title>
      <link>https://jwss.tistory.com/30</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;HTML에서 스크립트를 포함할 때 어떤게 더 효율적인 방법일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자가 HTML을 다운 받았을 때 브라우저는 HTML 마크업을 위에서부터 한 줄 씩 분석하고 이해한 것을 CSS와 병합해서 DOM 요소로 변환하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&amp;lt;head&amp;gt; 안에 스크립트를 포함한 경우&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML을 파싱하는 동안 브라우저가 &amp;lt;script&amp;gt;를 만나는 경우 파싱이 중지되며 스크립트를 로드하는 시간, 실행하는 시간만큼 렌더링이 지연된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;head 안에.png&quot; data-origin-width=&quot;1221&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qi9LL/btrTGbGMqfr/FQXCgLRJBeQow4xTdRZuP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qi9LL/btrTGbGMqfr/FQXCgLRJBeQow4xTdRZuP1/img.png&quot; data-alt=&quot;&amp;amp;lt;head&amp;amp;gt; 태그 안에 &amp;amp;lt;script&amp;amp;gt; 태그 넣을 경우&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qi9LL/btrTGbGMqfr/FQXCgLRJBeQow4xTdRZuP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQi9LL%2FbtrTGbGMqfr%2FFQXCgLRJBeQow4xTdRZuP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;784&quot; height=&quot;103&quot; data-filename=&quot;head 안에.png&quot; data-origin-width=&quot;1221&quot; data-origin-height=&quot;161&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;head&amp;gt; 태그 안에 &amp;lt;script&amp;gt; 태그 넣을 경우&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서부터 한 줄 씩 HTML 파싱(구문분석) &amp;gt; script 태그 발견 &amp;gt; html 파싱하는 것을 멈추고 필요한 스크립트를 서버에서 다운 &amp;gt; 스브립트 실행 &amp;gt; 다시 html 파싱&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단점 : 스크립트가 준비될 때 까지 HTML 파싱을 멈추기 때문에 사용자가 웹페이지를 보는데까지 많은 시간이 소요된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1670918045072&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;html lang=&quot;en&quot;&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
        &amp;lt;title&amp;gt; head 태그 안에 script &amp;lt;/title&amp;gt;
        &amp;lt;script src=&quot;main.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&amp;lt;body&amp;gt; 끝부분에 script를 넣는 경우&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;body의 내용이 렌더링 된 이후 &amp;lt;script&amp;gt;를 만나 로드하고 실행하기 때문에 위의 경우보다 렌더링 시간이 빨라진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스크립트가 DOM 요소를 조작하는 내용을 포함한다면 스크립트가 렌더링된 DOM에 접근할 수 있도록 위보단 아래에 작성하는 것이 좋다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;body 안에.png&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ct5SUa/btrTBkrX2KE/NOF74JyKH8eDdVapdpbCKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ct5SUa/btrTBkrX2KE/NOF74JyKH8eDdVapdpbCKK/img.png&quot; data-alt=&quot;&amp;amp;lt;body&amp;amp;gt; 태그 끝에 &amp;amp;lt;script&amp;amp;gt; 태그 넣을 경우&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ct5SUa/btrTBkrX2KE/NOF74JyKH8eDdVapdpbCKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fct5SUa%2FbtrTBkrX2KE%2FNOF74JyKH8eDdVapdpbCKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;790&quot; height=&quot;102&quot; data-filename=&quot;body 안에.png&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;body&amp;gt; 태그 끝에 &amp;lt;script&amp;gt; 태그 넣을 경우&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML 파싱 &amp;gt; 파싱완료 &amp;gt; 스크립트 다운&amp;nbsp; &amp;gt; 스크립트 실행&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장점 : HTML을 전부 파싱하고 스크립트를 다운, 실행하기 때문에&amp;nbsp; 스크립트가 준비되기 전에 사용자가 웹페이지 컨텐츠를 볼 수 있다.&lt;/li&gt;
&lt;li&gt;단점 : 사용자가 기본적인 HTML 콘텐츠는 빨리 볼 수 있지만 서버에서 스크립트를 다운하고 실행하는 시간도 기다려야하므로 JS가 큰 역할을 하는 웹페이지일 경우 사용자는 정상적인 웹페이지를 볼 수 없다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1671011980896&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;html lang=&quot;en&quot;&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
        &amp;lt;title&amp;gt; body 태그 안에 script &amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
		..
        ..
        ..
    	&amp;lt;script src=&quot;main.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;async 속성 사용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브라우저가 &amp;lt;script&amp;gt;를 만나면 다운로드와 동시에HTML 파싱이 진행되며 스크립트 다운이 완료되면 스크립트를 실행하고 HTML 파싱은 멈춘다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;async 속성의 스크립트는 DOM 요소를 조작하지 않고 앞뒤에 로드되고 실행될 스크립트와 의존성이 없는 코드를 포함시키는 것이 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;async.png&quot; data-origin-width=&quot;1162&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MvPuD/btrTEOMwYgf/QVw3vJVQS9zFeC0lVp4kH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MvPuD/btrTEOMwYgf/QVw3vJVQS9zFeC0lVp4kH1/img.png&quot; data-alt=&quot;async 속성 사용&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MvPuD/btrTEOMwYgf/QVw3vJVQS9zFeC0lVp4kH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMvPuD%2FbtrTEOMwYgf%2FQVw3vJVQS9zFeC0lVp4kH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;788&quot; height=&quot;109&quot; data-filename=&quot;async.png&quot; data-origin-width=&quot;1162&quot; data-origin-height=&quot;161&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;async 속성 사용&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML 파싱 &amp;gt; 스크립트 발견 &amp;gt; 파싱과 동시에 스크립트 다운 &amp;gt; 스크립트가 로드되면 HTML 파싱을 멈추고 스크립트 실행 &amp;gt; 나머지 HTML 파싱&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장점: 스크립트 다운이 HTML 파싱과 병렬적으로 일어나기 때문에 다운로드 받는 시간을 절약 가능&lt;/li&gt;
&lt;li&gt;단점: 스크립트가 HTML이 파싱이 되기 전에 실행되기 때문에 자바스크립트에 DOM요소를 조작하는 코드가 들어있을 경우 원하는 요소가 정의되있지 않을 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1671015086053&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;html lang=&quot;en&quot;&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
        &amp;lt;title&amp;gt; head 태그 안에 script &amp;lt;/title&amp;gt;
        &amp;lt;script async src=&quot;main.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;defer 속성 사용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;defer 속성을 가진 script는 브라우저가 script를 만났을 때 html 파싱을 막지 않고 스크립트 다운을 시작하여&amp;nbsp; /html 태그를 만났을 때 스크립트가 실행된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;defer 속성은 스크립트가 DOM 요소를 조작하는 내용을 포함시킬 때 사용하면 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;defer.png&quot; data-origin-width=&quot;1208&quot; data-origin-height=&quot;160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QVvRd/btrTA7fdWkp/yuTFDXkTJ1dzKSHewfbF50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QVvRd/btrTA7fdWkp/yuTFDXkTJ1dzKSHewfbF50/img.png&quot; data-alt=&quot;defer 속성 사용&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QVvRd/btrTA7fdWkp/yuTFDXkTJ1dzKSHewfbF50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQVvRd%2FbtrTA7fdWkp%2FyuTFDXkTJ1dzKSHewfbF50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;822&quot; height=&quot;109&quot; data-filename=&quot;defer.png&quot; data-origin-width=&quot;1208&quot; data-origin-height=&quot;160&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;defer 속성 사용&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML 파싱 &amp;gt; 스크립트 발견 &amp;gt; 스크립트 다운로드와 HTML 파싱 &amp;gt; 파싱완료 되면 스크립트 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장점 : 다운과 파싱을 동시에 하며 HTML 파싱을 사용자에게 보여준 뒤 다운로드 한 스크립트를 이어서 실행하기 때문에 가장 효율적이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1671015103767&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;html lang=&quot;en&quot;&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
        &amp;lt;title&amp;gt; head 태그 안에 script &amp;lt;/title&amp;gt;
        &amp;lt;script defer src=&quot;main.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;async &lt;/b&gt;vs&lt;b&gt; defer&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;async는 다수의 스크립트를 다운로드 받게 될 경우, 스크립트를 정의한 순서에 상관 없이 먼저 다운로드 한 스크립트를 실행하기 때문에 순서에 의존적인 스크립트라면 문제가 생길 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;async1.png&quot; data-origin-width=&quot;1318&quot; data-origin-height=&quot;322&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IXKiR/btrTBjGGHgZ/hKWrUrKoOs6xjwvLPLzGK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IXKiR/btrTBjGGHgZ/hKWrUrKoOs6xjwvLPLzGK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IXKiR/btrTBjGGHgZ/hKWrUrKoOs6xjwvLPLzGK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIXKiR%2FbtrTBjGGHgZ%2FhKWrUrKoOs6xjwvLPLzGK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;807&quot; height=&quot;197&quot; data-filename=&quot;async1.png&quot; data-origin-width=&quot;1318&quot; data-origin-height=&quot;322&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 defer은&amp;nbsp; 파싱하는 동안 필요한 스크립트를 모두 다운하고 순서대로 실행하기 때문에 정의한 순서가 지켜지므로 원하는 방향으로 스크립트를 실행할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;defer1.png&quot; data-origin-width=&quot;1389&quot; data-origin-height=&quot;322&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8qhli/btrTGbfKhnr/uurC8yKlh98PmoKopqJraK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8qhli/btrTGbfKhnr/uurC8yKlh98PmoKopqJraK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8qhli/btrTGbfKhnr/uurC8yKlh98PmoKopqJraK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8qhli%2FbtrTGbfKhnr%2FuurC8yKlh98PmoKopqJraK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;812&quot; height=&quot;188&quot; data-filename=&quot;defer1.png&quot; data-origin-width=&quot;1389&quot; data-origin-height=&quot;322&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Programming/JavaScript</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/30</guid>
      <comments>https://jwss.tistory.com/30#entry30comment</comments>
      <pubDate>Wed, 14 Dec 2022 19:55:57 +0900</pubDate>
    </item>
    <item>
      <title>[Sass] Sass 작성 규칙</title>
      <link>https://jwss.tistory.com/32</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Sass 작성 규칙을 익히려면 아무래도 따로 정리가 필요할 것 같아서 정리해보는 글&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;인코딩&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;windows 환경에서 컴파일할 때 오류가 발생할 수 있으므로 모든 scss 파일에 charset을 선언한다.&lt;/li&gt;
&lt;li&gt;컴파일 후, charset 선언은 하나만 남게 되므로 여러 파일에서 작성해도 문제없다.&lt;/li&gt;
&lt;li&gt;@charset 선언 전에 공백에 없도록 주의한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1671004619594&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@charset &quot;UTF-8&quot;

header { background-color: #000; }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;중첩&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최대 3뎁스 중첩까지 사용을 권장한다. (셀렉터의 갯수가 아닌 scss 코드 상의 중첩)&lt;/li&gt;
&lt;li&gt;3뎁스가 넘어갈 경우 하위연결자나 별도의 모듈로 뽑아낸다.&lt;/li&gt;
&lt;li&gt;미디어 쿼리의 중괄호는 중첩 수에 포함시키지 않는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1671004756898&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;header {
	h1 {
    	a {}
    }
    .gnb {}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;들여쓰기&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중첩마다 들여쓰기 한다.&lt;/li&gt;
&lt;li&gt;하위 선택자가 시작되면 빈 줄을 추가한다.&lt;/li&gt;
&lt;li&gt;@extend, @include를 상단에 모아쓰고 그 뒤에 빈 줄을 추가한다.&lt;/li&gt;
&lt;li&gt;재선언이 필요한 경우 @include를 하단에 사용할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1671004963458&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.gnb {
	@extend %a;
    @include position-center;
	
    overflow: hidden;
    background: #000;
    
    ul {
    	...
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;주석&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sass에선 주석 //는 컴파일 되지 않고 /**/는 컴파일이 된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CSS 주석표현인 /* 주석 */으로 import되는 파일 상단에 파일명 표기 &amp;gt; 개발자도구로 디버깅 시 선언위치 파악에 도움됨.&lt;/li&gt;
&lt;li&gt;그 외 주석은 컴파일되지 않도록 //으로 표기 (기능,변수 등에 대한 설명, UIO)&lt;/li&gt;
&lt;li&gt;CSS에 반드시 컴파일 되어야하는 주석이 있다면 /* 주석 */ 으로 표기&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;네이밍 규칙&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(1) Mixin&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자 및 연결자 : 카멜 케이스&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class명 (_name), css 속성명(-name)과 다르게 눈에 들어올 수 있는 네이밍이 필요하여 Camel Casing Notation 권장.&lt;/p&gt;
&lt;pre id=&quot;code_1671005427474&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@mixin textCenter($height) {
	....
}

@mixin positionCenter {
	....
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(2) 변수&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지역변수: 소문자&lt;/li&gt;
&lt;li&gt;전역변수: G-소문자&lt;/li&gt;
&lt;li&gt;상수: 대문자&lt;/li&gt;
&lt;li&gt;연결자: - (Hyphen)&lt;/li&gt;
&lt;li&gt;네이밍 조합: $(요소이름)-(속성이름)-(용도 및 역할)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;용도 및 역할은 축약형 지양&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 71px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style11&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 39.8837%; height: 20px;&quot;&gt;네이밍 조합 케이스&lt;/td&gt;
&lt;td style=&quot;width: 60.1163%; height: 20px;&quot;&gt;예시&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 39.8837%; height: 17px;&quot;&gt;$요소이름 - 속성이름&lt;/td&gt;
&lt;td style=&quot;width: 60.1163%; height: 17px;&quot;&gt;$G-body-color,&amp;nbsp; $body-background-color&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 39.8837%; height: 17px;&quot;&gt;$요소이름 - 용도 및 역할&lt;/td&gt;
&lt;td style=&quot;width: 60.1163%; height: 17px;&quot;&gt;$body-horizental&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 39.8837%; height: 17px;&quot;&gt;$요소이름 - 속성이름 - 용도 및 역할&lt;/td&gt;
&lt;td style=&quot;width: 60.1163%; height: 17px;&quot;&gt;$body-color-point,&amp;nbsp; $body-background-color-point&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 39.8837%;&quot;&gt;$요소(class)이름 - 속성이름 - 용도 및 역할&lt;/td&gt;
&lt;td style=&quot;width: 60.1163%;&quot;&gt;$btn-border-color-hover&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 39.8837%;&quot;&gt;$용도 및 역할&lt;/td&gt;
&lt;td style=&quot;width: 60.1163%;&quot;&gt;$count, $max-count&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1671006001089&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//변수선언
$G-body-color: #000;

body {
	//변수사용
	background: $G-body-color;
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/CSS</category>
      <category>SASS</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/32</guid>
      <comments>https://jwss.tistory.com/32#entry32comment</comments>
      <pubDate>Wed, 14 Dec 2022 17:23:09 +0900</pubDate>
    </item>
    <item>
      <title>[JS] 자바스크립트의 역사</title>
      <link>https://jwss.tistory.com/31</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;자바스크립트의 탄생&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1993년 미국 일리노이대학 국립 슈퍼컴퓨터 애플리케이션 센터(NCSA)에 근무하던 마크 앤드리슨 (Marc Andreessen)과 에릭 비너 등 8명은 &quot;모자이크&quot; 라는 웹브라우저를 세상에 내놓았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등장한지 20년이 됐지만 여전히 사용하기 어렵던 인터넷 환경에서 최초로 그림과 텍스트를 함께 표시하는 기능을 갖춘 모자이크 웹브라우저는 폭발적인 인기를 얻게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;모자이크.png&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;441&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmhcDL/btrTANFWH3d/x56ptdyiiXNDcHN6Gzlkd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmhcDL/btrTANFWH3d/x56ptdyiiXNDcHN6Gzlkd0/img.png&quot; data-alt=&quot;모자이크 웹브라우저&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmhcDL/btrTANFWH3d/x56ptdyiiXNDcHN6Gzlkd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmhcDL%2FbtrTANFWH3d%2Fx56ptdyiiXNDcHN6Gzlkd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;510&quot; height=&quot;441&quot; data-filename=&quot;모자이크.png&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;441&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모자이크 웹브라우저&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모자이크 웹브라우저의 개발팀을 이끌던 마크 앤드리슨은 Netscape 라는 회사를 설립하여 조금 더 UI 요소를 더한 넷스케이프 네비게이터 (Netscape Navigator) 를 시장에 내놓고 시장의 80% 점유율을 자랑하며 급격히 성장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이 당시 웹브라우저는 html과 css로만 이루어진&amp;nbsp; 정적인 웹사이트만 만들 수 있었기에 마크 앤드리슨은 동적인 웹사이트를 만들기 위해 고민을 거듭하다가, 브라우저에서 동작하는 경량 프로그래밍 언어를 도입하기로 결정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음으로 고려되었던 언어는 당시 각광받고 있던 java였으나 웹개발자들이 사용하기에는 무겁고 어려운 언어였으므로 브렌던 아이크를 스카웃 하여 기존에 존재하던 스킴스크립트 (Scheme Script) 언어의 컨셉을 유지하면서 문법을 Java 스럽게&amp;nbsp; 만들어 탄생시킨 언어가 자바스크립트 (JavaScript) 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바스크립트는 원래 &quot;모카&quot;라는 이름으로 개발되었으나 그 해 9월 &quot;라이브스크립트&quot;로 이름이 바뀌고 당시 인기있던 언어인 자바 (Java) 의 인기에 편승하기 위해 &quot;자바스크립트&quot;라는 이름으로 최종 명명되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 1995년 공식적으로 넷스케이프 네비게이터에 자바스크립트와 자바스크립트를 이해할 수 있는 엔진(인터프리터)이 포함되어 출시된다. 웹개발자들이 자바스크립트를 이용해 웹페이지를 만들게 되면 넷스케이프 네비게이터 브라우저가 그 언어를 이해하고 그 언어가 실행하고자 하는 것에 알맞게 DOM 요소들을 조작할 수 있게된 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;자바스크립트의 표준화&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 자바스크립트는 탄생한 뒤 얼마 지나지 않아 위기를 맞게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1996년 마이크로소프트가 자바스크립트를 파생한 &quot;JScript&quot;를 인터넷 익스플로러3.0에 탑재하여 시장에 출시한 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;넷스케이프와 마이크로소프트는 자사 브라우저의 시장 점유율을 높이기 위해 자사 브라우저에서만 동작하는 기능들을 경쟁적으로 추가하고 이로 인해 크로스 브라우징 이슈가 발생하여 웹 개발자들은 모든 브라우저에서 정상적으로 작동하는 웹페이지를 개발하기 어려워졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 위해 1996년 11월, 넷스케이프는 컴퓨터 시스템의 표준을 관리하는 기구, ECMA 인터내셔널에 자바스크립트의 표준화를 요청한다. 그리하여 1997년 7월 ECMAScript 1이 나오게 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 ECMAScript는 프로그래밍 언어의 값, 객체와 프로퍼티, 함수 등 핵심 문법을 규정한 문서로 해를 거듭하며 범용 프로그래밍 언어로서 갖춰야할 기능들을 도입하고 크고 작은 변화들이 일어났다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2000년 익스플로러는 시장의 90% 이상의 점유율을 갖고있었는데, 많은 시장 점유율을 차지한 마이크로소프트사가 ECMAScript에 불만을 표시하며 표준화 작업에 참가하지 않게되고 이후 표준화 작업이 더뎌지게된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2004년 모질라에서 파이어폭스라는 브라우저가 출시된다. 그리고 모질라는 자사의 언어 ActionScript3과 그 언어를 이해하는 엔진 Tamarin으로 표준화 검토를 제안하나 이것은 기존에 쓰이던 J스크립트나 자바스크립트와는 너무 달랐기에 무리가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표준화를 두고 모질라, 네스케이프, 마이크로소프트 3사의 치열한 신경전이 벌어지고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러던중 2008년 구글에서 출시한 크롬 브라우저가 등장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크롬 브라우저는 자바스크립트를 실행하는 속도가 매우 빠른 JIT (just-in-time compilation)이라는 강력한 엔진이 포함된 브라우저로, 기존에 존재하던 브라우저의 성능을 압도했고 다른 브라우저들에게 좋은 자극을 주게된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ecma.png&quot; data-origin-width=&quot;953&quot; data-origin-height=&quot;447&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ecUOfc/btrTBkp4g04/ZnXgk2gLEtBSLKpJmYuK21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ecUOfc/btrTBkp4g04/ZnXgk2gLEtBSLKpJmYuK21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ecUOfc/btrTBkp4g04/ZnXgk2gLEtBSLKpJmYuK21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FecUOfc%2FbtrTBkp4g04%2FZnXgk2gLEtBSLKpJmYuK21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;232&quot; data-filename=&quot;ecma.png&quot; data-origin-width=&quot;953&quot; data-origin-height=&quot;447&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2008년 7월에 모든 브라우저들이 모여 표준화를 만들기로 협의하고 2009년 ECMAScript 5가 나오게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뒤를 이어 2015년 ECMAScript6가 나오며 많은 변화가 일어나고 그 뒤로도 매년 새로운 버전들이 나오고있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재는 각 브라우저 제조사는 ECMAScript 사양을 준수해서 브라우저에 내장되는 자바스크립트 엔진을 구현한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;자바스크립트의 성장&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기 자바스크립트는 웹피이지의 보조적인 기능을 수행하기 위한 한정된 용도로 사용됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 시기에 대부분의 로직은 웹 서버에서 실행되었고 브라우저는 서버로부터 전달받은 HTML과 CSS를 단순 &lt;span style=&quot;color: #ef5369;&quot;&gt;*&lt;/span&gt;렌더링하는 수준이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;*&lt;/span&gt; 렌더링 : HTML, CSS, 자바스크립트 문서를 해석해 브라우저에 시각적으로 출력하는 것. 때로는 서버에서 데이터를 HTML로 변환하여 브라우저에게 전달하는 과정을 가리키기도 한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1999년 자바스크립트를 이용해 서버와 브라우저가 &lt;span style=&quot;color: #ef5369;&quot;&gt;*&lt;/span&gt;비동기적으로 데이터를 교환할 수 있는 통신기능인 Ajax가 등장했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;*&lt;/span&gt; 비동기 : 한 번에 하나의 작업만 진행하는 동기 방식과 다르게 비동기 방식은 요청을 보냈을 때 응답 상태와 상관없이 다음 동작을 수행할 수 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;407&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KDbXz/btrTvXKeOIF/KU3bFYTWIkGTPhIMFFKpKK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KDbXz/btrTvXKeOIF/KU3bFYTWIkGTPhIMFFKpKK/img.jpg&quot; data-alt=&quot;동기적 vs 비동기적&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KDbXz/btrTvXKeOIF/KU3bFYTWIkGTPhIMFFKpKK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKDbXz%2FbtrTvXKeOIF%2FKU3bFYTWIkGTPhIMFFKpKK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;670&quot; height=&quot;350&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;407&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;동기적 vs 비동기적&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전의 웹페이지는 HTML 코드를 서버로부터 전송받아 웹페이지 전체를 렌더링 하는 방식으로 동작했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 화면이 전환되면 서버로부터 새로운 HTML을 전송받아 웹페이지 전체를 처음부터 렌더링 했는데 이러한 방식은 변경할 필요가 없는 부분까지 처음부터 렌더링 하기 때문에 성능면에서 불리했다. (화면이 전환될 때 순간적으로 깜빡이는 현상 발생)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 Ajax가 등장하며 웹피이지에서 변경할 필요가 없는 부분은 다시 렌더링 하지 않고 서버로부터 필요한 데이터만 받아 변경해야하는 부분만 한정적으로 렌더링하는 방식이 가능해졌다.&lt;/p&gt;</description>
      <category>Programming/JavaScript</category>
      <category>js</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/31</guid>
      <comments>https://jwss.tistory.com/31#entry31comment</comments>
      <pubDate>Tue, 13 Dec 2022 20:01:44 +0900</pubDate>
    </item>
    <item>
      <title>[Sass] CSS 전처리기 Sass</title>
      <link>https://jwss.tistory.com/29</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;CSS 전처리기란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSS는 프로젝트 규모가 커지면 쉽게 지저분해지고 유지보수가 어려워지는 단점이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSS 전처리기는 이러한 CSS의 한계를 보완하기 위해 자신만의 특별한 문법을 갖고 CSS를 생성하는 프로그램이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메타언어로서 추가 기능과 도구를 제공하여 CSS 구문을 개선한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표적인 전처리기로는 Sass, LESS, Stylus 등이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Sass 그리고 SCSS&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Sass: Syntactically Awesome StyleSheet&lt;/li&gt;
&lt;li&gt;SCSS: Sassy SCC&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSS 전처리기라고 하면 대표적으로 Sass에 대해서 들었을텐데 그 때 꼭 같이 듣게 되는 것이 SCSS이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sass는 들여쓰기 감지를 핵심 특성으로 갖는 &lt;b&gt;표기법&lt;/b&gt;과 &lt;b&gt;전처리기&lt;/b&gt; 두 가지를 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sass는 코드를 작성할 때 중괄호를 사용하지 않고 들여쓰기로 구문을 감지하고 세미콜론을 사용하니 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문법은 css 문법과 다소 차이가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sass의 개발자들이 CSS와 차이를 좁히기로 결정하면서 등장한 것이 SCSS이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SCSS는 Sass 3.0에서 등장한 표기법이다. Sass의 기능을 지원하면서 CSS와 거의 같은 문법으로 사용된다는 점에서 각광받고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sass의 SASS 표기법과 SCSS 표기법에는 이런 차이가 있다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 131px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style11&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.7442%; height: 17px; text-align: left;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 25.8139%; height: 17px; text-align: left;&quot;&gt;SCSS 표기법&lt;/td&gt;
&lt;td style=&quot;width: 29.1861%; height: 17px; text-align: left;&quot;&gt;SASS 표기법&lt;/td&gt;
&lt;td style=&quot;width: 28.2558%; height: 17px; text-align: left;&quot;&gt;CSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.7442%; height: 20px; text-align: left;&quot;&gt;중괄호 {}&lt;/td&gt;
&lt;td style=&quot;width: 25.8139%; height: 20px; text-align: left;&quot;&gt;필요&lt;/td&gt;
&lt;td style=&quot;width: 29.1861%; height: 20px; text-align: left;&quot;&gt;불필요 &lt;br /&gt;(2문자 들여쓰기가 &lt;br /&gt;코드 블록을 의미함)&lt;/td&gt;
&lt;td style=&quot;width: 28.2558%; height: 20px; text-align: left;&quot;&gt;필요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.7442%; height: 20px; text-align: left;&quot;&gt;세미콜론 ;&lt;/td&gt;
&lt;td style=&quot;width: 25.8139%; height: 20px; text-align: left;&quot;&gt;필요&lt;/td&gt;
&lt;td style=&quot;width: 29.1861%; height: 20px; text-align: left;&quot;&gt;불필요&lt;/td&gt;
&lt;td style=&quot;width: 28.2558%; height: 20px; text-align: left;&quot;&gt;필요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.7442%; height: 20px; text-align: left;&quot;&gt;: 뒤 공백&lt;/td&gt;
&lt;td style=&quot;width: 25.8139%; height: 20px; text-align: left;&quot;&gt;불필요&lt;/td&gt;
&lt;td style=&quot;width: 29.1861%; height: 20px; text-align: left;&quot;&gt;필요&lt;/td&gt;
&lt;td style=&quot;width: 28.2558%; height: 20px; text-align: left;&quot;&gt;불필요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.7442%; height: 17px; text-align: left;&quot;&gt;Mixin&lt;/td&gt;
&lt;td style=&quot;width: 25.8139%; height: 17px; text-align: left;&quot;&gt;@mixin&lt;/td&gt;
&lt;td style=&quot;width: 29.1861%; height: 17px; text-align: left;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;width: 28.2558%; height: 17px; text-align: left;&quot;&gt;없음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.7442%; height: 17px; text-align: left;&quot;&gt;Include&lt;/td&gt;
&lt;td style=&quot;width: 25.8139%; height: 17px; text-align: left;&quot;&gt;@include&lt;/td&gt;
&lt;td style=&quot;width: 29.1861%; height: 17px; text-align: left;&quot;&gt;+&lt;/td&gt;
&lt;td style=&quot;width: 28.2558%; height: 17px; text-align: left;&quot;&gt;없음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.7442%; height: 20px; text-align: left;&quot;&gt;확장자&lt;/td&gt;
&lt;td style=&quot;width: 25.8139%; height: 20px; text-align: left;&quot;&gt;.scss&lt;/td&gt;
&lt;td style=&quot;width: 29.1861%; height: 20px; text-align: left;&quot;&gt;.sass&lt;/td&gt;
&lt;td style=&quot;width: 28.2558%; height: 20px; text-align: left;&quot;&gt;.css&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 Sass, SCSS 등으로 작성된 파일들은 곧바로 웹에서 적용할 수는 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹은 기본적으로 CSS 파일만 읽을 수 있기 때문에 이 파일들은 별도로 컴파일하는 과정을 거친 후 css 파일로 변환해서 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/CSS</category>
      <category>SASS</category>
      <category>기본개념</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/29</guid>
      <comments>https://jwss.tistory.com/29#entry29comment</comments>
      <pubDate>Mon, 12 Dec 2022 21:35:50 +0900</pubDate>
    </item>
    <item>
      <title>2주차: flex, grid</title>
      <link>https://jwss.tistory.com/28</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;2주차 수업은 flex, grid와 scss를 간단히 배웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex는 중심축과 반대축이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중심축을 중(j)심의 j라고 외워서 justify-content 사용하는 축&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대축을 바안(a)대의 a라고 외워서 align-items 사용하는 축이라고 외우면 편하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;flex의 특징&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) float를 사용해서 아이템을 정렬하고 아이템에 패딩을 줄 경우 box-sizing: border-box를 쓰지 않으면 밑으로 떨어졌겠지만&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex는 무조건 한 줄에 들어오기 때문에 (flex-wrap: no-wrap이 기본이기 때문) box-sizing: border-box를 쓰지 않아도 떨어지지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) flex의 아이템들은 높이를 공유한다. align-items: strech가 기본 값이기 때문에 따로 높이를 설정하지 않아도 각 아이템들의 높이가 맞는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) order는 기본 값이 0으로 세팅되어 있어서 -1이나 1만주면 앞으로 배치되거나 뒤에 배치될 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(4) space-between은 사이 간격이 예측이 안 될 때 사용하기 좋음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;자식에게 쓰는 수치&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;flex-grow&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;증가 비율. 아이템이 가진 넓이보다 커졌을 때 지정한 비율대로 늘어남.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;증가 비율 값은 여백의 비율을 기준으로 하기때문에 안에 콘텐츠가 들어갈 경우 원하는 비율로 조정하기 어렵다. (그래서 flex 속성을 사용)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dHKKx7/btrToagXdMi/YPMLErru3Vh0K377rP7Tik/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dHKKx7/btrToagXdMi/YPMLErru3Vh0K377rP7Tik/img.jpg&quot; data-alt=&quot;출처 - 1분코딩&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dHKKx7/btrToagXdMi/YPMLErru3Vh0K377rP7Tik/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdHKKx7%2FbtrToagXdMi%2FYPMLErru3Vh0K377rP7Tik%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;545&quot; height=&quot;290&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 - 1분코딩&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;flex-shrink&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수축 비율 1이 기본값이라서 수축하라고 하지 않아도 알아서 줄어듦.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0으로 지정하면 수축 안함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;flex-basis&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중심축을 기준으로 한 너비 높이 설정. width나 height의 대체재로 사용할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex-direction: row; 일 때 flex-basis: 100px;을 준다면 width가 100px이 되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex-direction: column; 일 때 flex-basis: 100px을 준다면 height가 100px이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grow나 shrink를 사용해서 아이템이 늘어나거나 줄어들 때의 기준이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(flex-basis: 100px이라면 100px보다 작아질 때/ 커질 때를 기준)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;flex&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex-grow flex-shrink flex-basis의 단축 속성.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex:1; 을 주면 아이템이 1:1:1이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;풀어서 써보자면 flex-grow: 1, flex-shrink: 1, flex-basis: 100%; 인데 증가,수축을 하는데 100% 동일한 비율로 증가 수축 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex: 1 0 500px; 이면 증가하고 수축안하고 500px을 기준으로 증가하고 수축을 하지 않는다는 의미.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grid&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grid는 10등분으로 나누고 70%를 차지하는 아이템은 7칸, 30%를 차지하는 아이템은 3칸 차지하도록 세팅하면 편하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;span 7 = 7칸을 차지해라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;SCSS (SASS)&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;sass 참고자료&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://sass-guidelin.es/ko/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://sass-guidelin.es/ko/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1670759543778&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Sass Guidelines &amp;mdash; Korean translation&quot; data-og-description=&quot;분별 있고, 유지∙확장 가능한 Sass 작성을 위한 주관적인 스타일가이드.&quot; data-og-host=&quot;sass-guidelin.es&quot; data-og-source-url=&quot;https://sass-guidelin.es/ko/&quot; data-og-url=&quot;https://sass-guidelin.es/ko/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/batGXu/hyQRIsP1La/XnkxeXbaN1kBKkf9L3dAgK/img.png?width=1340&amp;amp;height=742&amp;amp;face=0_0_1340_742,https://scrap.kakaocdn.net/dn/GVzR2/hyQQn4U2Kw/X9xOMlXphwULGz3km2i9kK/img.png?width=1340&amp;amp;height=742&amp;amp;face=0_0_1340_742,https://scrap.kakaocdn.net/dn/OCqyo/hyQRNt8ssm/UgAV4pVYdeQ5wOSYIVpkCk/img.png?width=700&amp;amp;height=308&amp;amp;face=0_0_700_308&quot;&gt;&lt;a href=&quot;https://sass-guidelin.es/ko/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://sass-guidelin.es/ko/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/batGXu/hyQRIsP1La/XnkxeXbaN1kBKkf9L3dAgK/img.png?width=1340&amp;amp;height=742&amp;amp;face=0_0_1340_742,https://scrap.kakaocdn.net/dn/GVzR2/hyQQn4U2Kw/X9xOMlXphwULGz3km2i9kK/img.png?width=1340&amp;amp;height=742&amp;amp;face=0_0_1340_742,https://scrap.kakaocdn.net/dn/OCqyo/hyQRNt8ssm/UgAV4pVYdeQ5wOSYIVpkCk/img.png?width=700&amp;amp;height=308&amp;amp;face=0_0_700_308');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Sass Guidelines &amp;mdash; Korean translation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;분별 있고, 유지∙확장 가능한 Sass 작성을 위한 주관적인 스타일가이드.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;sass-guidelin.es&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;a href=&quot;https://webclub.tistory.com/518?category=541910&quot;&gt;https://webclub.tistory.com/518?category=541910&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1670759607553&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Sass 코딩 컨벤션&quot; data-og-description=&quot;Sass Coding Convention Sass 작성을 위한 컨벤션에 대해 알아봅니다. Table of Contents 폴더 구조 [Folder structures] 파일 구조 [File structures] 인코딩 [Encoding] 중첩 [Nesting] 들여쓰기 및 선언 순서 [Style Rules] 띄워&quot; data-og-host=&quot;webclub.tistory.com&quot; data-og-source-url=&quot;https://webclub.tistory.com/518?category=541910&quot; data-og-url=&quot;https://webclub.tistory.com/518&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ooDZI/hyQQyehPP0/T3xxTgoXEmCrnQLZa5ykTk/img.png?width=600&amp;amp;height=332&amp;amp;face=0_0_600_332,https://scrap.kakaocdn.net/dn/bfsNTq/hyQQq1DDHc/U7jd5SSk9kUIh7DWAB5y80/img.png?width=600&amp;amp;height=332&amp;amp;face=0_0_600_332,https://scrap.kakaocdn.net/dn/49HWq/hyQQvolvLa/CpfEDy44cuMufmkwSnwbKk/img.jpg?width=589&amp;amp;height=545&amp;amp;face=236_184_363_322&quot;&gt;&lt;a href=&quot;https://webclub.tistory.com/518?category=541910&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://webclub.tistory.com/518?category=541910&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ooDZI/hyQQyehPP0/T3xxTgoXEmCrnQLZa5ykTk/img.png?width=600&amp;amp;height=332&amp;amp;face=0_0_600_332,https://scrap.kakaocdn.net/dn/bfsNTq/hyQQq1DDHc/U7jd5SSk9kUIh7DWAB5y80/img.png?width=600&amp;amp;height=332&amp;amp;face=0_0_600_332,https://scrap.kakaocdn.net/dn/49HWq/hyQQvolvLa/CpfEDy44cuMufmkwSnwbKk/img.jpg?width=589&amp;amp;height=545&amp;amp;face=236_184_363_322');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Sass 코딩 컨벤션&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Sass Coding Convention Sass 작성을 위한 컨벤션에 대해 알아봅니다. Table of Contents 폴더 구조 [Folder structures] 파일 구조 [File structures] 인코딩 [Encoding] 중첩 [Nesting] 들여쓰기 및 선언 순서 [Style Rules] 띄워&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;webclub.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;환경설정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) Live Sass Compiler 설치 &amp;gt; 톱니바퀴 &amp;gt; 확장설정 &amp;gt; Format &amp;gt; &quot;format&quot;: expended 로 되어 있는 부분 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;css로 변환될 때의 설정을 지정하는 것.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;scss포맷설정.png&quot; data-origin-width=&quot;1540&quot; data-origin-height=&quot;1016&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X9Ygj/btrThIl0hHx/ybyHdxP3gQD1Sh3e2Zk28k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X9Ygj/btrThIl0hHx/ybyHdxP3gQD1Sh3e2Zk28k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X9Ygj/btrThIl0hHx/ybyHdxP3gQD1Sh3e2Zk28k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX9Ygj%2FbtrThIl0hHx%2FybyHdxP3gQD1Sh3e2Zk28k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;745&quot; height=&quot;492&quot; data-filename=&quot;scss포맷설정.png&quot; data-origin-width=&quot;1540&quot; data-origin-height=&quot;1016&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) 확장설정 &amp;gt; Generate Map &amp;gt; json 편집에서 generateMap: false 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;폴더, 파일구조&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프론트엔드 프로젝트의 경우는 scss 7-1 패턴으로 사용되며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;퍼블리셔 범위에서 컴포넌트까지의 분리는 사용하지 않는다면 아래 이미지처럼 구성해두고 style.scss는 모든 파일을 import하는 방법을 추천.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgsSyQ/btrThG2L47C/xiqKdi7Sq72VdeQpn32CZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgsSyQ/btrThG2L47C/xiqKdi7Sq72VdeQpn32CZ1/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;2366&quot; data-filename=&quot;sass파일구조1.png&quot; width=&quot;227&quot; height=&quot;663&quot; style=&quot;width: 27.7528%; margin-right: 10px;&quot; data-widthpercent=&quot;28.08&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgsSyQ/btrThG2L47C/xiqKdi7Sq72VdeQpn32CZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgsSyQ%2FbtrThG2L47C%2FxiqKdi7Sq72VdeQpn32CZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;810&quot; height=&quot;2366&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Eosm1/btrTqguvLCx/onPcl2zxgJYaWJEKBF1jL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Eosm1/btrTqguvLCx/onPcl2zxgJYaWJEKBF1jL1/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1460&quot; data-origin-height=&quot;1665&quot; data-filename=&quot;sass파일구조2.png&quot; width=&quot;440&quot; height=&quot;502&quot; style=&quot;width: 71.0844%;&quot; data-widthpercent=&quot;71.92&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Eosm1/btrTqguvLCx/onPcl2zxgJYaWJEKBF1jL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEosm1%2FbtrTqguvLCx%2FonPcl2zxgJYaWJEKBF1jL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1460&quot; height=&quot;1665&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scss,sass,less 등 전처리도구를 사용하지 않는다면 CSS 아키텍처중 하나인 7-1 패턴&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;css패턴.png&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;498&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFODWY/btrTjEJU65I/V4TPkkTKumg5KF8NdIbqkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFODWY/btrTjEJU65I/V4TPkkTKumg5KF8NdIbqkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFODWY/btrTjEJU65I/V4TPkkTKumg5KF8NdIbqkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFODWY%2FbtrTjEJU65I%2FV4TPkkTKumg5KF8NdIbqkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;291&quot; height=&quot;498&quot; data-filename=&quot;css패턴.png&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;498&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 분할해서 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;abstracts (utills 라고도 함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 스타일은 없고, 그저 다른 폴더에 정의된 스타일을 돕는 역할을 하는 파일을 모으는 폴더.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글로벌 변수, 함수를 포함하는 _variables.scss와 mixin을 포함하는 _mixins.scss를 가진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;base&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이트 전반에 걸쳐서 재사용되는 스타일을 여기에 정의한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이트 전반에 사용될 폰트, 디폴트 스타일이 여기에 해당한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;_reset.css 등&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;components&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴포넌트는 '소형' 레이아웃을 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이트 내에서 재사용 가능한 작은 부분들을 여기에 정의한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;buttons, forms, profile pictures와 같은 것들이 해당된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;layout&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이트 구조에 해당하는 레이아웃을 여기에 정의한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nav bars, headers, footers 같은 것이 해당된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pages&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 페이지가 같은 스타일을 사용할 수 없기 때문에 각 페이지에서 사용될 구체적인 스타일을 여기에 넣는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를들어, 'Contact Us' 에서만 사용될 스타일이 있다면 _contact.scss 와 같이 네이밍한 후 이 폴더에 넣으면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;themes&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이트가 다른 종류의 모드를 지원할 때 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 관리자모드 / 디폴트모드가 있는 사이트나 다크모드 / 라이트모드가 있는 사이트가 있을 수 있다. 각 모드에 따라서 각기 다른 스타일이 지정되기 때문에 이렇게 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vendors&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트에서 사용되는 외부 스타일을 이 폴더에 넣으면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 부트스트랩을 커스터마이징 하고 싶다면 부트스트랩 stylesheet를 다운받아 이 폴더에 넣으면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;style.scss&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 scss 경로가 모이는 곳.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 각 폴더의 기준에 따라 scss 파일들을 분류했다면, 이 파일을 한데 모을 허브가 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 파일에는 직접 스타일을 정의하지 않고 import 만을 담당한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기로 모이는 scss 파일들은 파일명 앞에 _(언더바)를 붙인다. 언더바가 붙은 파일은 컴파일이 되지 않으므로 style.scss만 컴파일이 되는 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경로 가져오는 순서 : 변수 (_variables.scss) &amp;gt; 믹스인(_mixin.scss) &amp;gt; ...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수는 reset 보다 전에 세팅 되어야 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;- 내부경로 가져올 때&lt;br /&gt;@import './reset';&lt;br /&gt;&lt;br /&gt;- 외부경로 가져올 때&lt;br /&gt;@import url('./reset');&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;_mixin.scss&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;믹스인은 코드를 재사용 가능하게 만드는 것. 재사용 가능한 코드들을 모아둔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;_variables.scss&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수를 모아두는 파일.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;_reset.scss&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;reset css 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하단에 watch sass를 누르면 css로 컴파일 된 파일 확인 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;html에서 가져오는 건 css 파일. 하지만 코드 수정은 scss에서.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 예시&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;중첩 (Nesting)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상위 선택자의 반복을 피하고 좀 더 편리하게 복잡한 구조를 작성할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1670757768175&quot; class=&quot;scss&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;header {
	background-color: #000;

	h1 { font-size: 30px; }
    .sns { float: left; }
    .login { float: right; }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;상위 선택자 참조 (Ampersand)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중첩 안에서 &amp;amp; 키워드는 상위 선택자를 참조하여 치환한다.&lt;/p&gt;
&lt;pre id=&quot;code_1670757587213&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* .btn.prev와 .btn.next를 꾸며줄 때 */
/* 부모자식 관계가 아니므로 &amp;amp;를 붙여줌 */

.btn {
	&amp;amp;.prev { left: 10px; }
    	&amp;amp;.next { right: 10px; }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;믹스인 (Mixin)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;믹스인은 재사용한 기능을 만드는 방식을 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mixin은 두가지만 기억하면 된다. 선언하기 (@mixin)와 포함하기 (@include).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만들어서(선언) 사용(포함)하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) _mixins.scss 파일&lt;/p&gt;
&lt;pre id=&quot;code_1670758030680&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 믹스인 - 재활용 가능한 소스 만들기

// 중앙정렬 소스 만들기
@mixin position-center {
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

// 말줄임표 소스 만들기
// $line의 기본은 1로 설정
@mixin ellips($line:1) {

	overflow: hidden;
    text-overflow: ellipsis;
	
    // 여러줄 말줄임표
	@if($line &amp;gt; 1) {
    	display: -webkit-box;
        -webkit-line-clamp: $line;
        -webkit-box-orient: vertical;
    }
    // 한줄 말줄임표
    @else {
    	white-space: nowrap;
    }
    
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) _main.scss 파일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;말줄임은 괄호 안의 숫자를 $line으로 받아서 처리함.&lt;/p&gt;
&lt;pre id=&quot;code_1670758147062&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;h1 {
	@include position-center;
}

.box1 {
	//한 줄 말줄임표
	@inclue ellips;
}
.box2 {
	//두 줄 말줄임표
	@include ellips(2);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;변수 (Variables)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포인트 컬러나 폰트 사용 시, 변수에 저장해두고 갖다 쓰면 편리하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) _variables.scss 파일&lt;/p&gt;
&lt;pre id=&quot;code_1670758308507&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$red: rgb(197, 78, 45);
$title-size: 30px;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) _main.scss 파일&lt;/p&gt;
&lt;pre id=&quot;code_1670758516303&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;h1 {
	color: $red;
    font-size: #title-size;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수업 후기&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex랑 grid는 둘째치고 scss에서 좀 멘붕왔었다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아예 처음 써보는거라서 그런 것 같으니 익숙해지려면 여러 번 써봐야겠다.&lt;/p&gt;</description>
      <category>강의 정리/퍼블리싱 수업</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/28</guid>
      <comments>https://jwss.tistory.com/28#entry28comment</comments>
      <pubDate>Sun, 11 Dec 2022 21:34:04 +0900</pubDate>
    </item>
    <item>
      <title>[CSS] CSS Flex에 대해 알아보자</title>
      <link>https://jwss.tistory.com/27</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;flex는 행과 열 형태로 배치하는 일차원 레이아웃 배치 속성이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존에 사용하던 float이나 inline-block을 활용해서 레이아웃을 만드는 것보다 편리한 기능들을 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex 레이아웃은 &lt;b&gt;flex container&lt;/b&gt;라고 불리는 부모요소와 &lt;b&gt;flex item&lt;/b&gt;이라 불리는 복수의 자식요소로 구성된다.&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;container&quot;&amp;gt;
    &amp;lt;div class=&quot;item&quot;&amp;gt;item1&amp;lt;/div&amp;gt;
    &amp;lt;div class=&quot;item&quot;&amp;gt;item2&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;flex container item.png&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsEQXk/btrS5f318yX/rGB91UZWAhoIiXwN58uTG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsEQXk/btrS5f318yX/rGB91UZWAhoIiXwN58uTG1/img.png&quot; data-alt=&quot;자식요소 flex item을 포함하는 부모요소 flex container&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsEQXk/btrS5f318yX/rGB91UZWAhoIiXwN58uTG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsEQXk%2FbtrS5f318yX%2FrGB91UZWAhoIiXwN58uTG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;333&quot; data-filename=&quot;flex container item.png&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;자식요소 flex item을 포함하는 부모요소 flex container&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex의 속성들은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;flex 컨테이너(부모요소)에 적용하는 속성&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;flex 아이템(자식요소)에 적용하는 속성&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2가지로 나뉜다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 컨테이너에 적용하는 속성들&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.1&amp;nbsp; &lt;b&gt;display: flex;&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;display:&amp;nbsp; flex&amp;nbsp; |&amp;nbsp; inline-flex&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex를 사용하기 위해서 flex container에 항상 써줘야 하는 속성이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;flex : 컨테이너에 display: flex를 써주기만 해도 세로로 배치되던 컨테이너 안의 아이템들이 가로로 배치된다.&lt;/li&gt;
&lt;li&gt;inline-flex : 아이템의 배치보다는 컨테이너가 주변 요소들과 어떻게 배치될지를 결정한다. inline-block 처럼 동작함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 이미지는 container1에 &lt;code&gt;display: flex&lt;/code&gt;를 적용했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OIPzl/btrTqEpDlTF/GUFVAfcU0Us2K0L67kFQk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OIPzl/btrTqEpDlTF/GUFVAfcU0Us2K0L67kFQk0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1062&quot; data-origin-height=&quot;938&quot; data-filename=&quot;flex 사용하지 않을 때.png&quot; width=&quot;504&quot; height=&quot;445&quot; data-widthpercent=&quot;37.09&quot; style=&quot;width: 36.66%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OIPzl/btrTqEpDlTF/GUFVAfcU0Us2K0L67kFQk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOIPzl%2FbtrTqEpDlTF%2FGUFVAfcU0Us2K0L67kFQk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1062&quot; height=&quot;938&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zA4Lm/btrTsdFl99C/e1HtLprSztZLh55Jc47Dy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zA4Lm/btrTsdFl99C/e1HtLprSztZLh55Jc47Dy1/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1156&quot; data-origin-height=&quot;602&quot; data-filename=&quot;flex.png&quot; width=&quot;532&quot; height=&quot;277&quot; style=&quot;width: 62.1773%;&quot; data-widthpercent=&quot;62.91&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zA4Lm/btrTsdFl99C/e1HtLprSztZLh55Jc47Dy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzA4Lm%2FbtrTsdFl99C%2Fe1HtLprSztZLh55Jc47Dy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1156&quot; height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flex 아이템들은 가로 방향으로 배치된다. 자신의 콘텐츠 만큼만 width를 갖게 되고 height는 컨테이너의 높이 만큼 알아서 늘어난다. (align-items: strech가 기본 값이기 때문)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 container1에 &lt;code&gt;display: inline-flex&lt;/code&gt;를 적용했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;inline-flex.png&quot; data-origin-width=&quot;1480&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dldBNX/btrTtAtiGtO/QOcZxgPFCkcUPCjMKkteKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dldBNX/btrTtAtiGtO/QOcZxgPFCkcUPCjMKkteKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dldBNX/btrTtAtiGtO/QOcZxgPFCkcUPCjMKkteKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdldBNX%2FbtrTtAtiGtO%2FQOcZxgPFCkcUPCjMKkteKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;674&quot; height=&quot;206&quot; data-filename=&quot;inline-flex.png&quot; data-origin-width=&quot;1480&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;display: flex&lt;/code&gt;; 처럼 컨테이너 안의 아이템들이 정렬되긴 하나, 컨테이너와 다른 요소의 배치도 정렬된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.2&amp;nbsp; &lt;b&gt;flex-direction&amp;nbsp;&lt;/b&gt; 배치 방향 설정&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;flex-direction:&amp;nbsp; row (default)&amp;nbsp; |&amp;nbsp; column&amp;nbsp; |&amp;nbsp; row-reverse&amp;nbsp; |&amp;nbsp; column-reverse&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아이템이 배치되는 방향을 설정하는 속성이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;row &lt;i&gt;(default)&lt;/i&gt; : 아이템이 가로(행) 배치된다.&lt;/li&gt;
&lt;li&gt;column : 아이템이 세로(열) 배치된다.&lt;/li&gt;
&lt;li&gt;row-reverse : 아이템이 역순으로 가로 배치된다.&lt;/li&gt;
&lt;li&gt;column-reverse : 아이템이 역순으로 세로 배치된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;flex-direction.png&quot; data-origin-width=&quot;2376&quot; data-origin-height=&quot;1270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D2iuE/btrS3Hgqy6t/ijVyvf2i2rr67uakqAvXn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D2iuE/btrS3Hgqy6t/ijVyvf2i2rr67uakqAvXn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D2iuE/btrS3Hgqy6t/ijVyvf2i2rr67uakqAvXn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD2iuE%2FbtrS3Hgqy6t%2FijVyvf2i2rr67uakqAvXn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;679&quot; height=&quot;363&quot; data-filename=&quot;flex-direction.png&quot; data-origin-width=&quot;2376&quot; data-origin-height=&quot;1270&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.3&amp;nbsp; &lt;b&gt;flex-wrap&lt;/b&gt;&amp;nbsp; 줄넘김 처리 설정&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;flex-wrap:&amp;nbsp; nowrap (default)&amp;nbsp; |&amp;nbsp; wrap&amp;nbsp; |&amp;nbsp; wrap-reverse&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨테이너가 아이템을 더 이상 한 줄에 담을 공간이 없을 때 아이템 줄바꿈을 어떻게 할지 결정한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;nowrap &lt;i&gt;(default)&lt;/i&gt; : 줄바꿈을 하지 않는다.&lt;/li&gt;
&lt;li&gt;wrap : 줄바꿈을 한다.&lt;/li&gt;
&lt;li&gt;wrap-reverse : 줄바꿈을 하되 역순으로 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock CDM&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;251&quot;&gt;&lt;a href=&quot;&amp;amp;nbsp; &amp;amp;nbsp;wrap&amp;amp;nbsp; &amp;amp;nbsp;&quot; target=&quot;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RuV8G/btrS3GIC8pY/9DUgVcmiK2Zwy8vCmxHBo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRuV8G%2FbtrS3GIC8pY%2F9DUgVcmiK2Zwy8vCmxHBo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;806&quot; height=&quot;277&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;251&quot;/&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.4&amp;nbsp; &lt;b&gt;flex-flow&lt;/b&gt;&amp;nbsp; (flex-direction flex-wrap 단축속성)&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;flex-flow:&amp;nbsp; row wrap&amp;nbsp; |&amp;nbsp; column wrap-reverse ~&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;flex-direction&lt;/code&gt;과 &lt;code&gt;flex-wrap&lt;/code&gt;을 한 번에 지정할 수 있는 단축 속성이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;flex-direction&lt;/code&gt;, &lt;code&gt;flex-wrap&lt;/code&gt; 순서대로 써주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.5&amp;nbsp; &lt;b&gt;justify-content&lt;/b&gt;&amp;nbsp; 메인축 방향 정렬&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;justify-content:&amp;nbsp; flex-start (default)&amp;nbsp; |&amp;nbsp; flex-end&amp;nbsp; |&amp;nbsp; center&amp;nbsp; |&amp;nbsp; space-between&amp;nbsp; |&amp;nbsp; space-around&amp;nbsp; |&amp;nbsp; space-evenly&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메인축 방향으로 아이템들을 정렬하는 속성이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;flex-start &lt;i&gt;(default)&lt;/i&gt; : 아이템들을 메인축 시작점으로 정렬한다.&lt;/li&gt;
&lt;li&gt;flex-end : 아이템들을 메인축 끝점으로 정렬한다.&lt;/li&gt;
&lt;li&gt;center : 아이템들을 메인축 가운데로 정렬한다.&lt;/li&gt;
&lt;li&gt;space-between : 각 아이템들의 &lt;b&gt;사이&lt;/b&gt;에 균일한 간격을 만들어준다.&lt;/li&gt;
&lt;li&gt;space-around : 각 아이템들의 &lt;b&gt;둘레&lt;/b&gt;에 균일한 간격을 만들어준다.&lt;/li&gt;
&lt;li&gt;space-evenly : 각 아이템들의 &lt;b&gt;사이와 양 끝&lt;/b&gt;에 균일한 간격을 만들어준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4RnvO/btrToaurN4w/K2PAKwvD2MmK3kRukU6cN1/tfile.svg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4RnvO/btrToaurN4w/K2PAKwvD2MmK3kRukU6cN1/tfile.svg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;90&quot; data-origin-height=&quot;150&quot; data-filename=&quot;justify-content.svg&quot; data-widthpercent=&quot;31.85&quot; style=&quot;width: 31.4819%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4RnvO/btrToaurN4w/K2PAKwvD2MmK3kRukU6cN1/tfile.svg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4RnvO%2FbtrToaurN4w%2FK2PAKwvD2MmK3kRukU6cN1%2Ftfile.svg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;90&quot; height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sL5vZ/btrTjFWfFGj/7xgs86iY43X4sdLXEkF7qK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sL5vZ/btrTjFWfFGj/7xgs86iY43X4sdLXEkF7qK/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;779&quot; data-filename=&quot;space 간격차이.jpg&quot; width=&quot;658&quot; height=&quot;513&quot; data-widthpercent=&quot;68.15&quot; style=&quot;width: 67.3553%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sL5vZ/btrTjFWfFGj/7xgs86iY43X4sdLXEkF7qK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsL5vZ%2FbtrTjFWfFGj%2F7xgs86iY43X4sdLXEkF7qK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1000&quot; height=&quot;779&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;오른쪽 이미지 출처 : 1분코딩&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.6&amp;nbsp; &lt;b&gt;align-items&lt;/b&gt;&amp;nbsp; 수직축 방향 정렬&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;align-items:&amp;nbsp; strech (default)&amp;nbsp; |&amp;nbsp; flex-start&amp;nbsp; |&amp;nbsp; flex-end&amp;nbsp; |&amp;nbsp; center&amp;nbsp; |&amp;nbsp; baseline&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수직축 방향으로 아이템들을 정렬하는 속성이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;strech &lt;i&gt;(default)&lt;/i&gt; : 아이템들이 수직축 방향으로 컨테이너의 높이만큼 쭈욱 늘어난다.&lt;/li&gt;
&lt;li&gt;flex-start : 아이템들을 수직축 시작점으로 정렬한다.&lt;/li&gt;
&lt;li&gt;flex-end : 아이템들을 수직축 끝점으로 정렬한다.&lt;/li&gt;
&lt;li&gt;center : 아이템들을 수직축 가운데로 정렬한다.&lt;/li&gt;
&lt;li&gt;baseline : 아이템들을 텍스트 베이스라인 기준으로 정렬한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;align-items.png&quot; data-origin-width=&quot;3301&quot; data-origin-height=&quot;1853&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgBsS9/btrTk2DHit3/pXtADzWmsoKbKeUK62MX6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgBsS9/btrTk2DHit3/pXtADzWmsoKbKeUK62MX6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgBsS9/btrTk2DHit3/pXtADzWmsoKbKeUK62MX6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgBsS9%2FbtrTk2DHit3%2FpXtADzWmsoKbKeUK62MX6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;730&quot; height=&quot;410&quot; data-filename=&quot;align-items.png&quot; data-origin-width=&quot;3301&quot; data-origin-height=&quot;1853&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.7&amp;nbsp; &lt;b&gt;align-content&lt;/b&gt;&amp;nbsp; 여러 행 아이템 묶음 정렬&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;align-content: strech (default) | flex-start | flex-end | center | space-between | space-around | space-evenly&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;flex-wrap: wrap&lt;/code&gt; 을 설정한 경우 아이템들의 행이 2줄 이상이 되었을 때의 수직축 방향 정렬을 결정하는 속성이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;justify-content&lt;/code&gt;와 비슷하게 작동하나 수직축 방향의 정렬이라고 보면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;align-content.png&quot; data-origin-width=&quot;3261&quot; data-origin-height=&quot;1800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dTL5IV/btrTigJoxZb/E4xBUcIQtnZKhveaVReYZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dTL5IV/btrTigJoxZb/E4xBUcIQtnZKhveaVReYZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dTL5IV/btrTigJoxZb/E4xBUcIQtnZKhveaVReYZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTL5IV%2FbtrTigJoxZb%2FE4xBUcIQtnZKhveaVReYZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3261&quot; height=&quot;1800&quot; data-filename=&quot;align-content.png&quot; data-origin-width=&quot;3261&quot; data-origin-height=&quot;1800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.8&amp;nbsp; &lt;b&gt;gap&lt;/b&gt;&amp;nbsp; 아이템 간격&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;gap: 10px (숫자값)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;gap&lt;/code&gt;은 아이템 간의 간격을 설정 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;column-gap&lt;/code&gt; 열간 간격을, &lt;code&gt;row-gap&lt;/code&gt;은 행간 간격을 따로 설정 할 수 있고 &lt;code&gt;gap&lt;/code&gt;으로 한 번에 행열 간격을 써줄 수 도 있다.&lt;/p&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;.container {
    /* gap: 40px 10px; */
    column-gap: 10px;
    row-gap: 40px;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1478&quot; data-origin-height=&quot;492&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cb6VGT/btrTsmbh003/8KOJ2mKqLoj99BmqXArRI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cb6VGT/btrTsmbh003/8KOJ2mKqLoj99BmqXArRI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cb6VGT/btrTsmbh003/8KOJ2mKqLoj99BmqXArRI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcb6VGT%2FbtrTsmbh003%2F8KOJ2mKqLoj99BmqXArRI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;737&quot; height=&quot;245&quot; data-origin-width=&quot;1478&quot; data-origin-height=&quot;492&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. 아이템에 적용하는 속성들&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.1 &lt;b&gt;flex-basis&lt;/b&gt; 아이템의 기본 크기&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;flex-basis: auto (default) | 1 (숫자 값)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;flex-basis&lt;/code&gt;는 중심축을 기준으로 flex 아이템의 기본 크기를 설정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( &lt;code&gt;flex-direction: row;&lt;/code&gt; 일 때는 너비, &lt;code&gt;flex-direction: column&lt;/code&gt; 일 때는 높이 )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 &lt;code&gt;flex-direction: row&lt;/code&gt; 일 때 &lt;code&gt;flex-basis: 100px&lt;/code&gt;은 아이템의 width가 100px이 되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;flex-direction: column&lt;/code&gt; 일 때 &lt;code&gt;flex-basis: 100px&lt;/code&gt;은 아아템의 height가 100px이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grow나 shrink를 사용해서 아이템이 늘어나거나 줄어들 때의 기준이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt; &lt;b&gt; 주의할 점&lt;/b&gt;&lt;br /&gt;어디까지나&amp;nbsp;'기본 크기'를 설정하는 값이다.&lt;br /&gt;아래 이미지는 각 item에&amp;nbsp;flex-basis: 100px;을 주었는데 원래 너비가 100px이 넘지 않았던 item1, item2는 100px이 되었지만 원래 너비가 100px이 넘던 item3은 그대로 유지된다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1486&quot; data-origin-height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qFUHo/btrTqEiUi1X/XD1pKtFP6msQ8ik7GKRs90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qFUHo/btrTqEiUi1X/XD1pKtFP6msQ8ik7GKRs90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qFUHo/btrTqEiUi1X/XD1pKtFP6msQ8ik7GKRs90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqFUHo%2FbtrTqEiUi1X%2FXD1pKtFP6msQ8ik7GKRs90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;762&quot; height=&quot;155&quot; data-origin-width=&quot;1486&quot; data-origin-height=&quot;302&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.2&amp;nbsp; &lt;b&gt;flex-grow&lt;/b&gt;&amp;nbsp; 늘어나는 비율&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;flex-grow: 1 (숫자 값)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;flex-grow&lt;/code&gt;는 아이템이 &lt;code&gt;flex-basis&lt;/code&gt;의 값보다 커질 수 있는지를 결정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;속성 값으로 숫자가 들어가는데, 몇이든 0보다 큰 값이 세팅되면 해당 아이템은 유연하게 늘어나는 박스로 변하고 원래의 크기보다 커지며 빈 공간을 채우게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본값이 0이기 때문에 따로 적용하기 전까지는 아이템이 늘어나지 않는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;flex-grow.svg&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H9swV/btrTthguJOJ/vd6nryDKUpwtG8PY3lv8ak/tfile.svg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H9swV/btrTthguJOJ/vd6nryDKUpwtG8PY3lv8ak/tfile.svg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H9swV/btrTthguJOJ/vd6nryDKUpwtG8PY3lv8ak/tfile.svg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH9swV%2FbtrTthguJOJ%2Fvd6nryDKUpwtG8PY3lv8ak%2Ftfile.svg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;441&quot; height=&quot;207&quot; data-filename=&quot;flex-grow.svg&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;  &lt;b&gt;주의할점&lt;/b&gt;&lt;br /&gt;flex-grow에 들어가는 숫자는 아이템 자체 너비의 비율이 아니라, &lt;br /&gt;flex-basis(아이템 너비)를 제외한 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;여백 부분의 비율&lt;/b&gt;&lt;/span&gt;이다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;grow는 여백의비.jpg&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUCPVU/btrTtBTjQgy/BtVFzDm38a5XFAa08VNCy0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUCPVU/btrTtBTjQgy/BtVFzDm38a5XFAa08VNCy0/img.jpg&quot; data-alt=&quot;출처 1분코딩&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUCPVU/btrTtBTjQgy/BtVFzDm38a5XFAa08VNCy0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUCPVU%2FbtrTtBTjQgy%2FBtVFzDm38a5XFAa08VNCy0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;203&quot; data-filename=&quot;grow는 여백의비.jpg&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 1분코딩&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아이템 자체 너비의 비율을 설정하고 싶다면 단축 속성인 &lt;code&gt;flex&lt;/code&gt;를 사용하는 것이 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.3&amp;nbsp; &lt;b&gt;flex-shrink&lt;/b&gt;&amp;nbsp; 줄어드는 비율&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;flex-grow&lt;/code&gt;와 쌍을 이루는 속성으로 아이템이 &lt;code&gt;flex-basis&lt;/code&gt; 값보다 작아질 수 있는지를 결정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;grow와 마찬가지로 속성 값으로 숫자가 들어가는데, 몇이든 0보다 큰 값이 세팅되면 해당 아이템은 유연한 박스로 변하고 &lt;code&gt;flex-basis&lt;/code&gt; 보다 작아진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본값이 1이기 때문에 따로 세팅하지 않아도 아이템이 &lt;code&gt;flex-basis&lt;/code&gt;보다 작아질 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;flex-shrink&lt;/code&gt;를 0으로 세팅하면 아이템의 크기가 &lt;code&gt;flex-basis&lt;/code&gt;보다 작아지지 않기 때문에 고정된 너비의 아이템을 만들 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.4&amp;nbsp; &lt;b&gt;flex&lt;/b&gt;&amp;nbsp; (flex-grow flex-shrink flex-basis 단축속성)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;flex-grow&lt;/code&gt;, &lt;code&gt;flex-shrink&lt;/code&gt;, &lt;code&gt;flex-basis&lt;/code&gt;를 한 번에 쓸 수 있는 단축 속성이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 세가지 속성들은 관련이 깊기 때문에 단축 속성인 &lt;code&gt;flex&lt;/code&gt;를 쓰는 편이 편하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.5&amp;nbsp; &lt;b&gt;align-self&lt;/b&gt;&amp;nbsp; 수직축으로 아이템 단독 정렬&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;align-self: auto | strecth | flex-start | flex-end | center | baseline&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;align-items가 전체 아이템들을 정렬했다면, align-self는 여러 아이템 중 하나의 아이템만 골라서 수직축으로 정렬할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨테이너에 &lt;code&gt;align-items: flex-start&lt;/code&gt;; 가 적용되있고 세 번째 위치한 아이템만 따로 &lt;code&gt;align-self: flex-end;&lt;/code&gt;로 세팅하면 아래와 같은 이미지처럼 배치된 모습을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;align-self.svg&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqTumv/btrTlsXOXuK/uhCU3faWmYBqBHIC37eEL1/tfile.svg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqTumv/btrTlsXOXuK/uhCU3faWmYBqBHIC37eEL1/tfile.svg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqTumv/btrTlsXOXuK/uhCU3faWmYBqBHIC37eEL1/tfile.svg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqTumv%2FbtrTlsXOXuK%2FuhCU3faWmYBqBHIC37eEL1%2Ftfile.svg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;461&quot; height=&quot;263&quot; data-filename=&quot;align-self.svg&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.6&amp;nbsp; &lt;b&gt;order&amp;nbsp;&lt;/b&gt; 아이템 배치 순서&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;order: 0 (default) | 1 (숫자값)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 아이템들의 시각적 나열 순서를 결정하는 속성이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;속성값으로 숫자가 들어가며 작은 숫자일 수록 먼저 배치된다. 기본값으로 0을 가지고 있기 때문에 -1을 써주면 다른 아이템들보다 먼저 배치 될 수 있고, 1을 써주면 다른 아이템들보다 뒤에 배치될 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt; &lt;b&gt;주의할 점&lt;/b&gt;&lt;br /&gt;어디까지나 &quot;시각적&quot;으로 보여지는 순서가 변경 될 뿐이므로 HTML 자체의 구조가 바뀌는게 아니라서 접근성 측면에서 사용에 주의해야한다. 스크린 리더로 화면을 읽을 때, order로 바꾼 순서는 소용이 없다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/CSS</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/27</guid>
      <comments>https://jwss.tistory.com/27#entry27comment</comments>
      <pubDate>Sun, 11 Dec 2022 17:59:38 +0900</pubDate>
    </item>
    <item>
      <title>1주차 수업 : float</title>
      <link>https://jwss.tistory.com/26</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;⏬ 목차&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;a href=&quot;#c1-1&quot;&gt;1-1. 시멘틱 태그란?&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c1-2&quot;&gt;1-2. 시멘틱 태그 사용시 장점&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c1-3&quot;&gt;1-3. 어디에 사용할지 헷갈리는 시멘틱 태그&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c2&quot;&gt;2. padding&amp;nbsp;vs&amp;nbsp;margin&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c3-1&quot;&gt;3-1. 블록요소&amp;nbsp;vs&amp;nbsp;인라인 요소&amp;nbsp;vs&amp;nbsp;인라인 블록요소&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c3-2&quot;&gt;3-2.&amp;nbsp;인라인&amp;nbsp;블록&amp;nbsp;요소의&amp;nbsp;여백&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;#c4&quot;&gt;4.&amp;nbsp;css&amp;nbsp;명시도&amp;nbsp;(우선순위)&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;#c5&quot;&gt;5.&amp;nbsp;css&amp;nbsp;속성&amp;nbsp;작성순서&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;#c6&quot;&gt;6.&amp;nbsp;성질을&amp;nbsp;변하게&amp;nbsp;만드는&amp;nbsp;속성&lt;/a&gt;&lt;a href=&quot;#c5&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;#c7&quot;&gt;7.&amp;nbsp;%&amp;nbsp;와&amp;nbsp;&amp;nbsp;px의&amp;nbsp;차이&lt;/a&gt;&lt;a href=&quot;#c5&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;#c8&quot;&gt;8. 가운데 배치&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c9&quot;&gt;9. 리셋 속성 단축 키워드&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c10&quot;&gt;10. 기타 css 속성 단축 키워드&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c11&quot;&gt;11. Emmet&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c12&quot;&gt;12. vscode 단축키&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;#c13&quot;&gt;  이번 수업으로 알게된 점&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1주차는 float로 레이아웃 배치하는 것에 대해 중점적으로 배웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금은 flex를 주로 사용하지만 유지보수 할 때, float으로 정렬된 프로젝트들도 있기 때문에 알아야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;시멘틱태그가 등장하기 이전에는 &amp;lt;table&amp;gt;, &amp;lt;div&amp;gt; 로 마크업을 많이 했는데 (컨트롤이 편하다는 장점이 있음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;의미론적으로는 아무런 뜻이 없기 때문에 &amp;lt;header&amp;gt; 나 &amp;lt;main&amp;gt; 등의 시멘틱 태그를 사용한다.&lt;/p&gt;
&lt;p id=&quot;c1-1&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1-1. 시멘틱 태그란?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;의미론적인 태그.&lt;/p&gt;
&lt;p id=&quot;c1-2&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1-2. 시멘틱 태그 사용시 장점&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;협업에서의 이점&lt;/li&gt;
&lt;li&gt;직관성&lt;/li&gt;
&lt;li&gt;seo(검색엔진최적화)에서 좋은 점수&lt;/li&gt;
&lt;li&gt;접근성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;⏩ 시멘틱 태그를 써야하는 이유 자세히 보기&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1670241531160&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[HTML] 시맨틱 태그란? 왜 시맨틱태그를 써야하는가&quot; data-og-description=&quot;HTML을 배우게 되면 초반에 접하게 되는 것이 시멘틱 태그인데 &amp;quot;시멘틱태그를 써야한다!&amp;quot;는 이야기는 너무나도 많이 들어봤지만, 정작 왜 사용하는지에 대한 이해가 부족한 것 같아 다시 한 번 정&quot; data-og-host=&quot;jwss.tistory.com&quot; data-og-source-url=&quot;https://jwss.tistory.com/25&quot; data-og-url=&quot;https://jwss.tistory.com/25&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ZT4WN/hyQNUHcFSL/hRPyTU0PAQSRMAYKzft66K/img.png?width=800&amp;amp;height=592&amp;amp;face=0_0_800_592,https://scrap.kakaocdn.net/dn/QHAh1/hyQNYiwyxh/YDflZVQbRULy2TbAnPV7V1/img.png?width=800&amp;amp;height=592&amp;amp;face=0_0_800_592,https://scrap.kakaocdn.net/dn/cZdmUg/hyQMzq4BgI/YOFfGfOOh15qKpwSk4KNi0/img.png?width=750&amp;amp;height=421&amp;amp;face=0_0_750_421&quot;&gt;&lt;a href=&quot;https://jwss.tistory.com/25&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jwss.tistory.com/25&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ZT4WN/hyQNUHcFSL/hRPyTU0PAQSRMAYKzft66K/img.png?width=800&amp;amp;height=592&amp;amp;face=0_0_800_592,https://scrap.kakaocdn.net/dn/QHAh1/hyQNYiwyxh/YDflZVQbRULy2TbAnPV7V1/img.png?width=800&amp;amp;height=592&amp;amp;face=0_0_800_592,https://scrap.kakaocdn.net/dn/cZdmUg/hyQMzq4BgI/YOFfGfOOh15qKpwSk4KNi0/img.png?width=750&amp;amp;height=421&amp;amp;face=0_0_750_421');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[HTML] 시맨틱 태그란? 왜 시맨틱태그를 써야하는가&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;HTML을 배우게 되면 초반에 접하게 되는 것이 시멘틱 태그인데 &quot;시멘틱태그를 써야한다!&quot;는 이야기는 너무나도 많이 들어봤지만, 정작 왜 사용하는지에 대한 이해가 부족한 것 같아 다시 한 번 정&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jwss.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p id=&quot;c1-3&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1-3. 어디에 사용할지 헷갈리는 시멘틱 태그&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;article&amp;gt;&lt;/b&gt; : 문서 혹은 요소가 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;독립적으로&lt;/b&gt;&lt;/span&gt; 존재할 수 있을 때 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;section&amp;gt;&lt;/b&gt; : &lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;논리적으로 관계 있는&lt;/span&gt;&lt;/b&gt; 문서 혹은 요소를 구분할 때 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;div&amp;gt;&lt;/b&gt; : 요소간 &lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;논리적 관계와는 상관없이&lt;/span&gt;&lt;/b&gt; 요소를 나눠야할 때 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c1-4&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1-4. &amp;lt;article&amp;gt; &lt;/b&gt;vs&lt;b&gt; &amp;lt;&lt;span&gt;section&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span style=&quot;background-color: #faf7d2;&quot;&gt;형광펜&lt;/span&gt; &lt;/span&gt;표시된 부분은 공통점&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&amp;lt;article&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 내용이 독립적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;span style=&quot;background-color: #faf7d2; color: #333333;&quot;&gt;하위요소로 제목(h1~h6)을 포함하고 있어야한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 해당 페이지에서 다른 페이지나 다른 영역에 언제든지 독립적으로 갖다 붙힐 수 있는 영역을 그룹화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 사이트 안에서 독립적으로 구분해 배포 / 재사용 할 수 있는 구획에 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 게시판, 블로그 글, 매거진, 뉴스 기사 등에 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. &lt;span style=&quot;background-color: #faf7d2; color: #333333;&quot;&gt;&amp;lt;header&amp;gt; 요소와 &amp;lt;footer&amp;gt; 요소를 포함하기도 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&amp;lt;section&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 논리적으로 관련된 집합체&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;span style=&quot;background-color: #faf7d2; color: #333333;&quot;&gt;하위요소로 제목(h1~h6)을 포함하고 있어야한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;span style=&quot;background-color: #faf7d2; color: #333333;&quot;&gt;&amp;lt;header&amp;gt; 요소와 &amp;lt;footer&amp;gt; 요소를 포함하기도 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서로 관련 있는 내용을 모아놓는 &amp;lt;section&amp;gt; 안에 각각 독립된 내용을 가지는 &amp;lt;article&amp;gt;이 여러 개 들어가는 것은 부자연스러울 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;article&amp;gt; 안에 &amp;lt;section&amp;gt;이 들어가는 것이 자연스럽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;콘텐츠가 독립된 자체만으로도 의미가 있는가? ➡ &amp;lt;article&amp;gt; 사용&lt;/li&gt;
&lt;li&gt;콘텐츠가 주제에 관련된 것인가? ➡ &amp;lt;section&amp;gt; 사용&lt;/li&gt;
&lt;li&gt;콘텐츠가 각각 의미론적으로 관련이 없는가? ➡ &amp;lt;div&amp;gt; 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c2&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;c2&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. padding &lt;/b&gt;vs&lt;b&gt; margin&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;패딩은 내부 여백, 내 영역&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마진은 외부 여백, 내 영역이 아님&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c3-1&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3-1. 블록요소 &lt;/b&gt;vs&lt;b&gt; 인라인 요소 &lt;/b&gt;vs &lt;b&gt;인라인 블록요소&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 122px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style11&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 28px;&quot;&gt;
&lt;td style=&quot;width: 16.5116%; height: 28px; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 18.6047%; height: 28px; text-align: center;&quot;&gt;&lt;b&gt;기본 너비값&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.9534%; height: 28px; text-align: center;&quot;&gt;&lt;b&gt;요소 배치&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20.2908%; height: 28px; text-align: center;&quot;&gt;&lt;b&gt;너비값, 높이값&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25.6395%; text-align: center; height: 28px;&quot;&gt;&lt;b&gt;마진, 패딩&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 30px;&quot;&gt;
&lt;td style=&quot;width: 16.5116%; height: 30px; text-align: center;&quot;&gt;&lt;b&gt;블록 요소&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.6047%; height: 30px; text-align: center;&quot;&gt;100%&lt;/td&gt;
&lt;td style=&quot;width: 18.9534%; height: 30px; text-align: center;&quot;&gt;수직 배치&lt;/td&gt;
&lt;td style=&quot;width: 20.2908%; height: 30px; text-align: center;&quot;&gt;가질 수 있음&lt;/td&gt;
&lt;td style=&quot;width: 25.6395%; text-align: center; height: 30px;&quot;&gt;가질 수 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 31px;&quot;&gt;
&lt;td style=&quot;width: 16.5116%; height: 31px; text-align: center;&quot;&gt;&lt;b&gt;인라인 요소&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.6047%; height: 31px; text-align: center;&quot;&gt;콘텐츠 너비값&lt;/td&gt;
&lt;td style=&quot;width: 18.9534%; height: 31px; text-align: center;&quot;&gt;수평 배치&lt;/td&gt;
&lt;td style=&quot;width: 20.2908%; height: 31px; text-align: center;&quot;&gt;가질 수 없음&lt;/td&gt;
&lt;td style=&quot;width: 25.6395%; text-align: center; height: 31px;&quot;&gt;상하마진 가질 수 없음&lt;br /&gt;(좌우마진, 상하좌우 패딩은 가질 수 있음)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 33px;&quot;&gt;
&lt;td style=&quot;width: 16.5116%; height: 33px; text-align: center;&quot;&gt;&lt;b&gt;인라인 블록요소&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.6047%; height: 33px; text-align: center;&quot;&gt;콘텐츠 너비값&lt;/td&gt;
&lt;td style=&quot;width: 18.9534%; height: 33px; text-align: center;&quot;&gt;수평 배치&lt;/td&gt;
&lt;td style=&quot;width: 20.2908%; height: 33px; text-align: center;&quot;&gt;가질 수 있음&lt;/td&gt;
&lt;td style=&quot;width: 25.6395%; text-align: center; height: 33px;&quot;&gt;가질 수 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;⏩ 블록요소, 인라인요소, 인라인블록요소 차이 자세히 보기&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1670313889937&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[CSS 기초]  블록 요소(block element) ve 인라인 요소(inline element) vs 인라인 블록 요소 (inline-block element)&quot; data-og-description=&quot;HTML의 요소는 블록 요소와 인라인 요소, 인라인블록 요소로 분류된다. 블록 요소 (block element) 기본 너비값이 100% (폼 엘리먼트 제외) 너비값이 100%를 차지하기 때문에 각 요소가 수직으로 쌓인다. &quot; data-og-host=&quot;jwss.tistory.com&quot; data-og-source-url=&quot;https://jwss.tistory.com/10&quot; data-og-url=&quot;https://jwss.tistory.com/10&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cXx2nk/hyQNRLlYpa/QS1av4Va4BDWk2KA7brwf0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/c4hKFf/hyQNR5DEXx/W1c4Opdisbl8RWDoPa1ZwK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bnokCf/hyQNR5DEVD/cX6vKgo9b3ffZie3p4cH30/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot;&gt;&lt;a href=&quot;https://jwss.tistory.com/10&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jwss.tistory.com/10&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cXx2nk/hyQNRLlYpa/QS1av4Va4BDWk2KA7brwf0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/c4hKFf/hyQNR5DEXx/W1c4Opdisbl8RWDoPa1ZwK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bnokCf/hyQNR5DEVD/cX6vKgo9b3ffZie3p4cH30/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[CSS 기초] 블록 요소(block element) ve 인라인 요소(inline element) vs 인라인 블록 요소 (inline-block element)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;HTML의 요소는 블록 요소와 인라인 요소, 인라인블록 요소로 분류된다. 블록 요소 (block element) 기본 너비값이 100% (폼 엘리먼트 제외) 너비값이 100%를 차지하기 때문에 각 요소가 수직으로 쌓인다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jwss.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c3-2&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3-2. 인라인 블록 요소의 여백&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;(1) 인라인 블록요소 양옆 4px 여백&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1670313771353&quot; class=&quot;xml&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;span&amp;gt;인라인블록&amp;lt;/span&amp;gt;
&amp;lt;span&amp;gt;인라인블록&amp;lt;/span&amp;gt;
&amp;lt;span&amp;gt;인라인블록&amp;lt;/span&amp;gt;
&amp;lt;span&amp;gt;인라인블록&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZrjeC/btrSUBfT1vZ/8rshfYn3QP2TJMdrQrQiWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZrjeC/btrSUBfT1vZ/8rshfYn3QP2TJMdrQrQiWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZrjeC/btrSUBfT1vZ/8rshfYn3QP2TJMdrQrQiWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZrjeC%2FbtrSUBfT1vZ%2F8rshfYn3QP2TJMdrQrQiWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;526&quot; height=&quot;74&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인라인 블록요소는 내가 간격을 주지 않아도 자동으로 간격이 들어간다. 이것은 줄바꿈 때문에 생기는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;span 태그 다음 엔터를 치면서 자연스럽게 공간이 생기는데 엔터를 치지 않고 태그를 쭉 이으면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1670313771354&quot; class=&quot;xml&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; &amp;lt;span&amp;gt;인라인블록&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;인라인블록&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;인라인블록&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;인라인블록&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d3m2tL/btrSU94qu4r/H58k4EI0gUxyCwnnLAwQ0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d3m2tL/btrSU94qu4r/H58k4EI0gUxyCwnnLAwQ0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d3m2tL/btrSU94qu4r/H58k4EI0gUxyCwnnLAwQ0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd3m2tL%2FbtrSU94qu4r%2FH58k4EI0gUxyCwnnLAwQ0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;100&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이 여백이 없어지게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;(2) 인라인 블록요소에 overflow: hidden을 주게 될 경우&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A91s8/btrSUbaHv0i/CdJSXLQSyioq8FrKLTDkx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A91s8/btrSUbaHv0i/CdJSXLQSyioq8FrKLTDkx0/img.png&quot; data-alt=&quot;인라인블록 요소 (노란색 요소) 하단에 여백(회색부분)이 생김&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A91s8/btrSUbaHv0i/CdJSXLQSyioq8FrKLTDkx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA91s8%2FbtrSUbaHv0i%2FCdJSXLQSyioq8FrKLTDkx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;247&quot; height=&quot;186&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;344&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;인라인블록 요소 (노란색 요소) 하단에 여백(회색부분)이 생김&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;display: inline-block 요소에 overflow: hidden을 주게 되면 하단에 여백이 생기는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것은 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;vertical-align: top / middle / bottom&lt;/b&gt;&lt;/span&gt; 중 하나를 주면 사라진다.&lt;/p&gt;
&lt;p id=&quot;c4&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. css 명시도 (우선순위)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명시도란 브라우저가 특정 요소와 가장 연관된 속성을 찾는 수단으로, 명시도 점수가 높음에 따라 스타일이 적용되는 우선순위가 높아진다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;태그: 1점&lt;/li&gt;
&lt;li&gt;클래스: 10점&lt;/li&gt;
&lt;li&gt;가상클래스: 10점&lt;/li&gt;
&lt;li&gt;아이디: 100점&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;+ 구조 가상클래스 nth-child&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nth-child(n+4) : 4이상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nth-child(-n+4) : 4이하&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 가 붙냐 안붙냐로 이상 이하를 결정한다.&lt;/p&gt;
&lt;p id=&quot;c5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. css 속성 작성순서&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;css 속성 작성 순서.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1053&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TdARb/btrSVoAkwNP/UpobHbkGKESYJVuDWDzvTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TdARb/btrSVoAkwNP/UpobHbkGKESYJVuDWDzvTk/img.png&quot; data-alt=&quot;css 속성 작성순서&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TdARb/btrSVoAkwNP/UpobHbkGKESYJVuDWDzvTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTdARb%2FbtrSVoAkwNP%2FUpobHbkGKESYJVuDWDzvTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;475&quot; height=&quot;625&quot; data-filename=&quot;css 속성 작성 순서.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1053&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;css 속성 작성순서&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c6&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. 성질을 변하게 만드는 속성&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;position: fixed / position: absolute / flaot&lt;/b&gt;&lt;/span&gt;는 적용 시 요소가&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt; 인라인블록 요소로 변한다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 블록요소에 적용한다면 100%를 차지하던 너비가 콘텐츠 너비만큼으로 바뀌고 (너비를 따로 설정하지 않았을 경우)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상하마진을 가질 수 없는 인라인 요소는 너비값, 높이값, 상하마진을 가질 수 있게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, span은 인라인요소기 때문에 너비와 높이를 가질 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 position: absolute / position: fixed / float를 주면 인라인블록 요소의 성질을 가지기 때문에 스타일을 적용시킬 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c7&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;7. % 와&amp;nbsp; px의 차이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%는 기준이 있어야한다. %로 높이를 주고싶다면 부모의 높이가 있을 때 사용 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;px의 기준은 윈도우 창이기 때문에 기준이 필요하지 않다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;8. 가운데 배치&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;text-align: center는 인라인, 인라인 블록 요소만 가운데로 이동한다. (수평)&lt;/li&gt;
&lt;li&gt;position으로 요소를 가운데 배치할 경우 요소의 왼쪽 상단이 위치의 기준이 되므로, top: 50%; left: 50%; transform: translate(-50%, -50%) 를 해줘야한다. (수평 ,수직)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지 비율이 망가지면 img 태그에 objec-fit: cover 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c9&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;9. 리셋 속성 단축 키워드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1670318977627&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;m0 		-&amp;gt; margin:0 
p0 		-&amp;gt; padding:0

lisn		-&amp;gt; list-style: none

tdn		-&amp;gt; text-decoration: non

fi 		-&amp;gt; font inhrit 기본 폰트 설정을 상속받는다.

cri		-&amp;gt; color inhrit 본 폰트 컬러를 상속받는다.

lh1		-&amp;gt; line-height: 1; 기본 폰트 사이즈만큼 행간을 설정한다.

maw100p		-&amp;gt; max-width: 100%&lt;/code&gt;&lt;/pre&gt;
&lt;p id=&quot;c10&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;10. 기타 css 속성 단축 키워드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1670319340778&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;w100		-&amp;gt; width: 100px
W100p		-&amp;gt; width: 100%

h100		-&amp;gt; height: 100px
h100p:	 	-&amp;gt; height: 100%

mb10		-&amp;gt; margin-bottom: 10px
mr10		-&amp;gt; margin-right: 10px
m10-10-10-10	-&amp;gt; margin 10px 10px 10px 10px
m0-a		-&amp;gt; margin 0 auto

db		-&amp;gt; display: block
di		-&amp;gt; display: inline
dib		-&amp;gt; display: inline-block

bgc#f00 -&amp;gt; background-color: #f00

tac		-&amp;gt; text-align: center
vat		-&amp;gt; vertical-align:top



fz50	-&amp;gt; font-size: 50
fwb		-&amp;gt; font-weight: bold

lc		-&amp;gt; last-child

por		-&amp;gt; position: relative
poa		-&amp;gt; position: absolute
pof 	-&amp;gt; position:fixed

t50p 	-&amp;gt; top:50%
l50p 	-&amp;gt; left:50%


tftl 	-&amp;gt; transform:translate(x,y)
tftx 	-&amp;gt; transform:translateX(x)
tfty 	-&amp;gt; transform:translateY(y)

bdrs50p	-&amp;gt; border-radius: 50%&lt;/code&gt;&lt;/pre&gt;
&lt;p id=&quot;c11&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;11. Emmet &lt;/b&gt;(Zen Co ding)&lt;/h3&gt;
&lt;pre id=&quot;code_1670321966060&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ID, CLASS 속성
div#page.section.main
&amp;lt;div id=&quot;page&quot; class=&quot;section main&quot;&amp;gt;&amp;lt;/div&amp;gt;



엘리먼트 복제
li*3
&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;


넘버링 - $ 위치에 값이 1부터 1씩 증가 (1,2,3,4...)
li.item$*3
&amp;lt;li class=&quot;item1&quot;&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li class=&quot;item2&quot;&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li class=&quot;item3&quot;&amp;gt;&amp;lt;/li&amp;gt;
 

li.item$$$*2
&amp;lt;li class=&quot;item001&quot;&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li class=&quot;item002&quot;&amp;gt;&amp;lt;/li&amp;gt;



텍스트
p&amp;gt;{click}
&amp;lt;p&amp;gt;click&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c12&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;12. vscode 단축키&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;alt shift 아래키: &amp;nbsp;밑으로 복사&lt;/li&gt;
&lt;li&gt;alt 누르고 마우스로 선택: 커서 다중 선택&lt;/li&gt;
&lt;li&gt;드래그 하고 control + d: 동일한 모양을 다중 선택&lt;/li&gt;
&lt;li&gt;드래그한 다음, alt + 아래키 : 복사 이동&lt;/li&gt;
&lt;li&gt;shift + w : 태그로 묶기&lt;/li&gt;
&lt;li&gt;control shift p : 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;c13&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt; &amp;nbsp;이번 수업으로 알게된 점&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;- article 태그&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;국비 수업 때는 section 태그만 줄줄히 쓰고 article 태그를 써 본 적이 없어서 용도를 잘 몰랐었는데 이번 기회에 제대로 알게 됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;- 인라인블록 양옆 여백, overflow:hidden 시 생기는 아래여백&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;인라인블록 양 옆에 생기는 여백은 그냥 인라인블록이 갖는 특성인줄 알았는데 엔터 때문에 생기는 여백이었다니&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;그리고 인라인블록 요소만 overflow: hidden을 주면 아래에 여백이 생기는데 이걸 vertical-align으로 잡는 것도 처음 알았다.. text-align은 자주 쓰는데에 비해서 vertical-align은 묘하게 쓸 곳이 없네 라고 생각했는데 이런 곳에 쓰는구나.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;- 성질을 변하게 만드는 속성&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;position: absolute / position: fixed를 적용하면 요소가 인라인 블록 성질로 변한다는 건 인터넷 강의를 통해서 알고 있었는데 float도 그런지는 몰랐다. 레이아웃 짜는데 헷갈리게 만드는 3대장 아닐까&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;- 명시도&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;명시도에 대해서는 처음 들어봤다. 대충 셀렉터 우선순위가 있는건 알았는데 이걸 따로 명시도라고 부르는 명칭이 따로 있다는걸 알게됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;- 빠른 코딩방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;시안 보고 이걸 15분 내에 친다는걸 듣고 이게 되나? 했는데 속성 단축 키워드나 에밋을 활용하니 이게 된다. 신기하네..&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;속성 단축 키워드는 이제 어느 정도 익숙해진 것 같은데 에밋이나 vscode 단축키 같은 건 좀 더 익숙해져야 할 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;7분에 쳤다는 사람도 있다던데 그 사람 손가락이 스무개인거 아닌지&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;첫 수업이라 아는 내용도 많아서 따라갈만 했는데 나중 수업이 얼마나 하드할지 어렴풋이 보여서 살짝 걱정 됐다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;확실히 수업 속도가 빠르고 국비 수업에 비해서 중요한 요소, 실무에 필요한 요소 쏙쏙 골라서 수업에 압축 시킨 느낌이다. 수업을 녹화로 다시 볼 수 있기도 하고 정리된 노션 글도 있어서 체계적이라고 느꼈다. 나만 잘하면 되겠다^^ㅜ..........&lt;/p&gt;</description>
      <category>강의 정리/퍼블리싱 수업</category>
      <author>jwss</author>
      <guid isPermaLink="true">https://jwss.tistory.com/26</guid>
      <comments>https://jwss.tistory.com/26#entry26comment</comments>
      <pubDate>Tue, 6 Dec 2022 18:36:36 +0900</pubDate>
    </item>
  </channel>
</rss>