<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>shinstar_.log</title>
        <link>https://velog.io/</link>
        <description>안녕하세요 </description>
        <lastBuildDate>Sun, 03 Dec 2023 16:07:20 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>shinstar_.log</title>
            <url>https://velog.velcdn.com/images/shinstar_/profile/5b2cd777-e394-468b-a5cb-8160f0bc6c1d/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. shinstar_.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/shinstar_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[javascript]]></title>
            <link>https://velog.io/@shinstar_/javascript</link>
            <guid>https://velog.io/@shinstar_/javascript</guid>
            <pubDate>Sun, 03 Dec 2023 16:07:20 GMT</pubDate>
            <description><![CDATA[<h2 id="20-your-first-js-project-1111">2.0 Your First JS Project (11:11)</h2>
<h3 id="variables">variables</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/366fe227-c1ca-45aa-94d6-8c2458385cb5/image.png" alt=""></p>
<blockquote>
</blockquote>
<pre><code class="language-java">const a = 4 ; 
const b = 5 ; 
const myName = &quot;star&quot;
/**
 * a 의 값을 4로 변수 할당하고, 추후에 다른 숫자로 바꾸고 싶을 때 
 * 콘솔로그 안의 숫자를 바꾸는 대신 const a = 원하는 숫자로 바꿔주면 됨
 */
console.log(a + b);
console.log(a / b);
console.log(a * b);
console.log(&quot;hello &quot; + myName); =&gt; hello star 출력됨 ㅎ </code></pre>
<p>const = 상수, 바뀔 수 없는 값 
let = 바뀔 수 있는 값. 최초 한번만 선언하고<br>그 후로는 선언없이 변수를 수정가능 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/0e58f03e-3015-4510-8a79-7632d4209cb1/image.png" alt="">-&gt;myName은 star가 아닌 shinbyeolyi로 콘솔바뀜 </p>
<h3 id="데이터-타입---boolean-false-true---null">데이터 타입 - boolean( false, true ) , null</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/40d8557f-0f5c-47f0-987c-dd58a2caf7e5/image.png" alt=""><img src="https://velog.velcdn.com/images/shinstar_/post/5221a2f6-cd8b-47eb-acb2-dc3ec7ffa281/image.png" alt=""> </p>
<p>null은 variable 안에 어떤 것이 없다는 것을 확실히 하기 위해 사용하는것 
= 값이 없다 .   (null 과 undefined 헷갈리기 시작... )</p>
<h3 id="arrays">arrays</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/28fcc32f-4a57-4b8c-889b-825457b5f247/image.png" alt="">
이런식으로 나여랗게 되면 콘솔창에서 구분하기가 어려워짐 
-&gt; [ ]괄호와 쉼표로 어레이 배열하여 만들것 </p>
<pre><code class="language-java">
const daysOfWeek = [mon , tue , wed , thu , fri , sat , sun]; 
console.log(daysOfWeek);
</code></pre>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/0947a3d2-a9d9-4f40-b2b1-89b5140744d1/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/6a989210-6612-4096-9e91-0384448309ae/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/409a1f06-24f1-4fdb-85f9-ae44db7dcdad/image.png" alt=""></p>
<h3 id="데이터-타입---objects">데이터 타입 - Objects</h3>
<pre><code class="language-java">/**
 * Objects:
 * 
 */
//player[0] == name
//player[1] == points
const player = [&quot;nicco&quot;, 1212, false, &quot;little bit&quot;]
// 이런식으로 배열해버리면 주석을 달지 않는 이상 배열 안의 값이 어떤 의미인지 추론하기가 어려움 
</code></pre>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/82853e26-f716-4ba6-8224-17752714b6d8/image.png" alt=""></p>
<p>원하는 값을 가져오는 방법은2가지 ~~ <img src="https://velog.velcdn.com/images/shinstar_/post/d6b1182e-731d-415b-9b1d-29e466591dcb/image.png" alt=""></p>
<p>업데이트(수정) 하는 법 :10-&gt;20점
<img src="https://velog.velcdn.com/images/shinstar_/post/b2df6b6a-7465-41ee-b8cb-f19aeae597bd/image.png" alt="">
: 마지막 배열 추가 
<img src="https://velog.velcdn.com/images/shinstar_/post/afcca996-e48d-4ba5-8201-245d47170b91/image.png" alt=""></p>
<p>:현재값에 +@ 하기 
<img src="https://velog.velcdn.com/images/shinstar_/post/2e645a25-c65d-4743-9260-57658607fb6d/image.png" alt=""></p>
<pre><code class="language-java">player.points = player.points + 20 //현재 20점에서 +20점을 더하기

console.log(player.points); // 40 나옴 ~ ~  ~</code></pre>
<h3 id="functions">Functions</h3>
<h5 id="✅-argument-작성하는-방법">✅ argument 작성하는 방법</h5>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/b9f9c3cf-0fd2-46fb-b142-14e3840b58ea/image.png" alt="">
hello my name is + (이름) 나열할 때 
hello~ 부분을 반복적으로 적지않는 방법 . , </p>
<blockquote>
<p>1.function(){}
2.function 변수(이름,나이){
}
3.변수(&quot;nicco&quot;,10),(&quot;dal&quot;, 20 ),(&quot;byeol&quot;,30 ); 값 넣기 
4.fuction(nameOfPerson){
    console.log(&quot; hello~ &quot; + nameOfPerson + &quot; and I am &quot; + age)
}</p>
</blockquote>
<p>plus 변수의 값 지정하고 더하는 콘솔 만들기 </p>
<blockquote>
<p> function plus(firstNum,secondNum){
    console.log(firstNum + secondNum);
  }
plus(10,20);</p>
</blockquote>
<p>=30 
-&gt; fisrtNum, secondNum은 fucntion 안에서만 존재하는 값.,.,.,., 밖에다 쓰면 에러난다 </p>
<pre><code class="language-java">
const player = {
  name: &quot;nicco&quot;,
  sayHello:function(otherPersonName){
    console.log(&quot;hi &quot; + otherPersonName + &quot; nice to meet you&quot;);

  },
};

player.sayHello(&quot;byeol&quot;);
</code></pre>
<h3 id="조건문">조건문</h3>
<pre><code class="language-java">
/**condition  - isNaN  */
const age = parseInt(prompt(&quot;몇살이여?&quot;));
console.log(isNaN(age));

if(condition){
  //condition == true

}else{
// condition = false
};

if(isNaN(age)){
  //condition == true
  console.log(&quot;숫자로 적어줘&quot;)
}else{
// condition = false
}
</code></pre>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/87c68788-a2b0-4065-9853-71f6bf8cf18f/image.png" alt="">
=&gt;숫자로 입력하지 않으면 콘솔창에 확인표시가 나타난다 </p>
<pre><code class="language-java">
/**condition - if else -&gt; 
조건의 두가지 다 false의 값일 때 마지막 드세요~~ 가 나올 수 있다 
else가 나오기 위에선 위 조건문들이 다 true x x 
*/ 

const age = parseInt(prompt(&quot;몇살이여?&quot;));

if(isNaN(age)){
  console.log(&quot;숫자로 적어줘&quot;)

} else if (age &lt; 18) {
  console.log(&quot;넘 어립니다&quot;)
} else {
  console.log(&quot;오케이 드세요&quot;)

}</code></pre>
<pre><code class="language-java">/**condition
 *  - ifelse + &amp;&amp;(and) + ||(or)
 *  - 두가지 조건을 동시에 확인하기 
 * */ 
const age = parseInt(prompt(&quot;몇살이여?&quot;));

if(isNaN(age)){
  console.log(&quot;숫자로 적어줘&quot;)
} else if (age &lt; 18) {
  console.log(&quot;넘 어립니다&quot;)
} else if (age &gt;= 18 &amp;&amp; age &lt;= 50) {
  console.log(&quot;ㅇㅋ가능&quot;)
} else{ age &gt; 51
  console.log(&quot;안돼&quot;)
}
</code></pre>
<p>-&gt;마지막 else는 선택사항일 뿐 else if로 조건문을 마무리 해도 좋다 </p>
<p>-&gt; 음수의 경우를 입력했을 경우는? 
=&gt; 맨 처음 값에 or 을 넣어 0보다 작을 때 
조건을 추가한다 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/fdec6caf-0cfc-4960-971d-9c8070c62593/image.png" alt=""></p>
<h3 id="">||</h3>
<p>(하나만 트루여도 or은 전부 트루..)
true || true === true
false || true === true
true || false === true</p>
<p>(false가 되려면 or의 전부가 false)
false || false === false</p>
<h3 id="-1">&amp;&amp;</h3>
<p>true &amp;&amp; true === true (둘 다 트루여야<del>~ 트루</del>)</p>
<p>false &amp;&amp; true === false
true &amp;&amp; false === false
false &amp;&amp; false === false</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[ 자바스크립트의 기본적인 사용]]></title>
            <link>https://velog.io/@shinstar_/console%ED%99%9C%EC%9A%A9</link>
            <guid>https://velog.io/@shinstar_/console%ED%99%9C%EC%9A%A9</guid>
            <pubDate>Fri, 18 Aug 2023 13:20:05 GMT</pubDate>
            <description><![CDATA[<h2 id="lesson1-콘솔활용하기">lesson1. 콘솔활용하기</h2>
<pre><code class="language-java">console.log(  로그에_출력할_값  );

console.log(  값1, 값2, 값3...  );</code></pre>
<h3 id="💡브라우저-콘솔-사용해보기">💡브라우저 콘솔 사용해보기</h3>
<pre><code class="language-java">console.log({name: &#39;홍길동&#39;, age: 20, married: false});</code></pre>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/db8d0af4-7b47-4dfa-b335-3a91e18bcf97/image.png" alt=""></p>
<p>-
콘솔 비우기: Ctrl + L - 윈도우, 맥 모두</p>
<ol start="2">
<li><p>💻 Node.js의 REPL 사용해보기
Read Eval Print Loop
node로 자바스크립트 명령 입력 모드 진입 후 입력
모드 종료: ctrl + c 2회</p>
</li>
<li><p>Node.js 환경에서 .js파일로 실행하기
VS Code에서 프로젝트 폴더 열람
(원하는 파일명).js 파일 생성
코드 입력 후 저장
node (파일명)로 실행
Code Runner 확장 기능 사용</p>
</li>
</ol>
<p>윈도우: Ctrl + Alt + N
맥: control + option + N콘솔 비우기: Ctrl + L - 윈도우, 맥 모두</p>
<h3 id="💡-흔히-활용되는-console-기능들d">💡 흔히 활용되는 console 기능들d</h3>
<blockquote>
<p>console.log(&#39;로그 - 기본적인 출력&#39;);
console.info(&#39;로그 - 기능적으로는 log와 같음. 사용하기에 따라 용도 구분 가능&#39;);
console.warn(&#39;경고 - 문제가 될 수 있는 부분&#39;);
console.error(&#39;오류 - 에러 발생 상황&#39;);</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/30ba4b8e-8bea-467d-bcac-1324b07423fb/image.png" alt=""></p>
<p>( <a href="https://developer.mozilla.org/en-US/docs/Web/API/console">https://developer.mozilla.org/en-US/docs/Web/API/console</a> 참고할것 )</p>
<h2 id="lesson2-주석과-세미콜론">lesson2. 주석과 세미콜론</h2>
<p>주석 = comment 
= 컴퓨터는 무시하는 메시지로 사람에게 보여줄 목적으로 작성
코드에 대한 설명, 추후 진행해야 할 사항 등...</p>
<ul>
<li>윈도우: ctrl + /</li>
<li>맥: command + /</li>
</ul>
<p>세미콜론은 붙이나 안붙이나 큰 차이가 없으나 세미콜론을 붙여 구분하는것이 예외적 상황에 따른 오류를 막을수있음.. 
( <a href="https://www.youtube.com/watch?v=hJjYvVOEO7s&amp;t=19s">https://www.youtube.com/watch?v=hJjYvVOEO7s&amp;t=19s</a> 참고 ) </p>
<h2 id="lesson3-변수와-상수">lesson3. 변수와 상수</h2>
<pre><code>   let -&gt;  변수 , 담긴 값이 바뀔 수 있는 주머니

  const -&gt; 상수 , 값이 바뀔 수 없는 주머니</code></pre><pre><code class="language-java">
값들을 주머니에 담아 사용하기
const SALUTATION = &#39;Hello,&#39;;
let person = &#39;철수&#39;;

console.log(SALUTATION, person);</code></pre>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/6096128e-f597-4766-8e82-4829a58babc2/image.png" alt=""></p>
<p>경고창 띄우는 함수
alert()
console.log()</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/6538d94c-712b-4e88-be9c-1d5fb1f24a04/image.png" alt="">또한 자바스크립트에 이미 사용되고 있는 변수명을 조심하자 </p>
<h4 id="class수업-xx">class=&quot;수업&quot; xx</h4>
<p>( <a href="https://www.w3schools.com/js/js_reserved.asp">https://www.w3schools.com/js/js_reserved.asp</a>) </p>
<p>name = &quot;별이&quot;;
age = 30; </p>
<p>console.log(age)
!codepen[shinbyeolyi/embed/KKbKZpg?default-tab=html%2Cresult]</p>
<p>🪓🔨변수없이 작성하게되면 위험한 점이 발생한다 
ex: 다른 사람들과 프로젝트를 진행했을 때 중복해 썼을경우 
(name = &quot;별이&quot; -&gt;  name = &quot;민수&quot;  )
마지막으로 선언된 내용으로 덮어씌워진다 (&quot;민수&quot;)</p>
<pre><code>   let -&gt;  변수 , 담긴 값이 바뀔 수 있는 주머니

  const -&gt; 상수 , 값이 바뀔 수 없는 주머니</code></pre><p> 따라서 변수를 선언함으로 중복되는지 확인해야한다 
  <img src="https://velog.velcdn.com/images/shinstar_/post/b55b5b75-fe27-4882-ab96-6b26e5df0541/image.png" alt="">
  -&gt;이미 사용중이니 다른 명령어를 사용하라는 경고창 뜸 </p>
<p>  <strong>let</strong>은 <strong>변수</strong> 이기 때문에 한번 선언후에도 다른값으로 바꿀 수 있다 </p>
<p>  반면 <strong>const</strong>는 절대로 바뀌지 않는 상수라 수정이 불가함. 
  다른개발자들이 쉽게 알 수 있도록 <strong>대문자</strong>로 처리하는것이 좋다 </p>
<pre><code class="language-java">
const PI = 3.14;

const SPEED_LIMIT = 50;

const BIRTH_DAY = &#39;2000-01-01&#39;</code></pre>
<h4 id="정리">정리</h4>
<blockquote>
</blockquote>
<ol>
<li>변수는 문자와 숫자, $와 _ 만 사용 </li>
<li>첫글자는 숫자가 될 수 없다. </li>
<li>예약어는 사용할 수 없다.</li>
<li>가급적 상수는 대문자로 알려줄 것.</li>
<li>변수명은 읽기 쉽고 이해할 수 있게 선언 </li>
</ol>
<h3 id="문자형-string">문자형 string</h3>
<pre><code class="language-java">const name1 = &quot;별이&quot;;
const name2 = &#39;별이&#39;;
const name3 = `별이`;</code></pre>
<p>큰따옴표, 작은따옴표(문장안에 작은 따옴표가 들어간다면 역슬래시를 넣어줌), 벡틱으로 표현가능 (백틱은 문자의내부에 변수를 표현할 때 사용해주면 편리함 )</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/5c18080f-64b8-482a-92c7-51ca65149484/image.png" alt=""></p>
<h3 id="숫자형">숫자형</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/62f881c3-1a1d-4215-aeb8-b7a231dff810/image.png" alt=""></p>
<p>문자를 숫자로 나타내면 생기는 오류  = NaN<img src="https://velog.velcdn.com/images/shinstar_/post/a4e6bc5b-5853-4a39-b9c0-964238e7f6ff/image.png" alt=""></p>
<h3 id="boolean">Boolean</h3>
<p>논리적 요소를 나타냄 : true/false </p>
<h3 id="null">null</h3>
<p>존재하지않는 값을 의미 </p>
<h3 id="undefined">undefined</h3>
<p>값이 할당되지 않았음을 의미 (변수를 선언만 하고 아무것도 할당하지 않았을때)</p>
<h3 id="typeof-연산자">typeof 연산자</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/e58e9205-b5dc-4a96-85bd-e312887b5320/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[target="blank" target="_blank"의 차이점
]]></title>
            <link>https://velog.io/@shinstar_/targetblank-targetblank%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</link>
            <guid>https://velog.io/@shinstar_/targetblank-targetblank%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</guid>
            <pubDate>Thu, 10 Aug 2023 17:24:52 GMT</pubDate>
            <description><![CDATA[<p>target=&quot;blank&quot; 
=&gt;새창 열리지않고 바로 해당페이지로 넘어가게 처리됨 
target=&quot;_blank&quot;
=&gt;기존창은 그대로, 새창이 열리며 이동처리 </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[폰트 가져오기]]></title>
            <link>https://velog.io/@shinstar_/%ED%8F%B0%ED%8A%B8-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0</link>
            <guid>https://velog.io/@shinstar_/%ED%8F%B0%ED%8A%B8-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0</guid>
            <pubDate>Thu, 10 Aug 2023 17:20:35 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/shinstar_/post/664dd7f0-7fd7-4fef-a037-44d79ccb8d16/image.png" alt=""></p>
<p>1.개발자모드-네트워크-글꼴 누른 후 새로고침하면 사용된 글꼴을 확인할 수 있다 </p>
<p>-&gt; 해당폰트 더블클릭 하면 다운로드 완료 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/501784ef-ae09-470c-812b-b4ec0694a0b1/image.png" alt=""></p>
<p>2.assets-font파일을 생성 후 다운로드 받은 파일을 옮겨준다</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/8a59d7dd-1c1c-40a2-ae2d-ef3f2eae4cea/image.png" alt=""></p>
<p>3.font.css생성후 레이아웃css에 추가</p>
<h3 id="폰트의-종류">폰트의 종류</h3>
<p>1) ttf(win) - 트루 타입(지원범위가 작음)
2) otf(mac) - 오픈트루타입(지원범위가 작음)</p>
<p>3) eot - 익스플로어지원(지금은 사용 x)</p>
<p>4) woff - 웹오픈폰트포맷 / 모던브라우저
5) woff2 - 웹오픈폰트포맷 woff의 최대 50% / 20% 압축
(4,5번이 실제로 가장 많이 사용되는 폰트포맷)</p>
<p>6) svg - 모바일에서 사용(깨지지 않지만 잘 사용되진 않음)</p>
<p>폰트지원범위를 검색시 구글에 &#39;ttf지원범위&#39; 
파일변환시 구글검색 ex: &#39;ttf에서woff&#39;</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/647a875e-a58a-4970-b1c5-4089a6c8bbeb/image.png" alt=""></p>
<h3 id="fontcss-사용방법">font.css 사용방법</h3>
<h3 id="fontweight별-사이즈">FontWeight별 사이즈</h3>
<pre><code class="language-w100">w200 Extra-light
w300 Light
w400 Normal / regular / plain
w500 Medium
w600 Semi-bold
w700 Bold
w800 Extra-bold
w900 Black, the most thick</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[naver careers]]></title>
            <link>https://velog.io/@shinstar_/flex</link>
            <guid>https://velog.io/@shinstar_/flex</guid>
            <pubDate>Tue, 08 Aug 2023 06:19:53 GMT</pubDate>
            <description><![CDATA[<p>-사이트명 : naver careers
-사용언어 : html , css
-분류 : 반응형</p>
<h2 id="🔋-main-point">🔋 Main Point</h2>
<ul>
<li><input checked="" disabled="" type="checkbox"> max-width , min-width</li>
<li><input checked="" disabled="" type="checkbox"> button vs a 태그 차이는? </li>
<li><input checked="" disabled="" type="checkbox"> [form] Tag </li>
</ul>
<h3 id="1-max-width--min-width">1. max-width , min-width</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/07eafe91-57be-40f8-804b-014c98b94739/image.png" alt="">헤더 max-width 지정해주지 않았을 때 문제점<br>: 화면의 양 끝으로 한없이 뻗어져나갈수있다
(항상 화면비율을 100%로만 맞춰놔 실수하는것 중 하나)
max-width:1920px로 맞춰놨다 ㅎㅎ </p>
<p>반대로 축소시켰을 때 min-width를 주어 원하는 구간의 정렬이 깨지지 않도록 해주자 </p>
<h3 id="2-button-vs-a-태그-차이는">2. button vs a 태그 차이는?</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/428903b3-057b-4ed3-86a8-f63f5eaf7800/image.png" alt=""></p>
<p>button: 단순 클릭 용도로 사용됨 
a: 페이지이동할 때 사용 </p>
<p>=&gt; 처음에 마우스커서효과만 보고 a태그로 nav-gnb에 링크를 걸었었는데, 
화면 언어를 바꿔주는 버튼이기 때문에 버튼으로 수정해줬다. </p>
<p>버튼을 알아보다 input 타입 버튼을 알게됐는데 </p>
<pre><code>1. &lt;input type = button&gt;
&lt;button&gt; 에 비해서 디자인에 제약이 있다. (css 로는 디자인 가능)
2. &lt;button&gt;
텍스트 뿐만 아니라 이미지 or gif 요소를 자식으로 포함할 수 있다.
디자인 폭이 넓다.
submit 기능이 기본적으로 들어있다. 따라서 submit 하고 싶지 않다면 type = &quot;button&quot; 을 적어줘야 한다.
&lt;button&gt; 의 속성값
: type = &quot;submit&quot; 서버 전송
: type = &quot;reset&quot; 내용 초기화
: type = &quot;button&quot; 기능 구현에 사용, 자바스크립트 이벤트 실행 목적

3. 결론
기본 링크들은 &lt;a&gt; 태그
자바스크립트 이벤트를 실행시켜야 하는 요소는 &lt;button&gt; 태그
단순한 button 기능이라면 semantic tag 인 &lt;button&gt; 을 사용하자.</code></pre><p>이런 기능도 있다고 한다. </p>
<p>💫 (태그수정시 닫는태그도 같이 바꾸기) 
Auto Rename Tag &amp; Auto Close Tag
VScode의 HTML태그 확장 프로그램을 설치하면 태그수정시 좀더 편리하다 ㅎㅎ</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/8658d5f5-911f-4ecd-970c-bbcf777a5cce/image.png" alt=""></p>
<pre><code> &lt;div class=&quot;group-search&quot; &gt;
                    &lt;form action=&quot;&quot; method=&quot;get&quot;&gt;
                        &lt;fieldset&gt;
                            &lt;legend class=&quot;blind&quot;&gt;검색&lt;/legend&gt;
                            &lt;div class=&quot;search-bd&quot;&gt;
                                &lt;div class=&quot;input-wrap&quot;&gt;
                                    &lt;label for=&quot;keyword&quot; class=&quot;label keyword-label&quot;&gt;키워드&lt;/label&gt;
                                    &lt;input type=&quot;text&quot; id=&quot;keyword&quot; class=&quot;input&quot; &gt;
                                &lt;/div&gt;
                                &lt;div class=&quot;select-wrap&quot;&gt;
                                    &lt;label for=&quot;&quot; class=&quot;label&quot;&gt;법인&lt;/label&gt;
                                    &lt;select class=&quot;select&quot;&gt;
                                        &lt;option value=&quot;&quot; selected disabled&gt;법인선택&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;NAVER&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;NAVER Cloud&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;WORKS MOBILE&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;SNOW&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;NAVER LABS&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;NAVER WEBTOON&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;NAVER FINANCIAL&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;NAVER I&amp;S&lt;/option&gt;
                                    &lt;/select&gt;
                                &lt;/div&gt;
                                &lt;div class=&quot;select-wrap&quot;&gt;
                                    &lt;label for=&quot;&quot; class=&quot;label&quot;&gt;직군&lt;/label&gt;
                                    &lt;select class=&quot;select&quot;&gt;
                                        &lt;option value=&quot;&quot; selected disabled&gt;직군선택&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;Tech&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;Design&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;Service &amp; Business&lt;/option&gt;
                                        &lt;option value=&quot;&quot;&gt;Coporate&lt;/option&gt;
                                    &lt;/select&gt;
                                &lt;/div&gt;
                            &lt;button type=&quot;submit&quot; class=&quot;btn-submit&quot;&gt;검색&lt;/button&gt;
                            &lt;/div&gt;
                        &lt;/fieldset&gt;
                    &lt;/form&gt;
                &lt;/div&gt;</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[ilva]]></title>
            <link>https://velog.io/@shinstar_/ilva</link>
            <guid>https://velog.io/@shinstar_/ilva</guid>
            <pubDate>Wed, 05 Jul 2023 09:05:51 GMT</pubDate>
            <description><![CDATA[<p>-사이트명 : ilva
-사용언어 : html , css
-분류 : 적응형pc,</p>
<h2 id="🔋-main-point">🔋 Main Point</h2>
<ul>
<li><input checked="" disabled="" type="checkbox"> view port </li>
<li><input checked="" disabled="" type="checkbox"> 폰트 올라오는 효과</li>
<li><input checked="" disabled="" type="checkbox"> gsap</li>
<li><input checked="" disabled="" type="checkbox"> 스크롤실행시 visual이미지 파묻히는효과</li>
<li><input checked="" disabled="" type="checkbox"> 4-1.ease</li>
<li><input checked="" disabled="" type="checkbox"> clip-path:inset</li>
<li><input checked="" disabled="" type="checkbox"> mouseover (마우스오버)</li>
<li><input checked="" disabled="" type="checkbox"> 글자css</li>
</ul>
<h3 id="1-viewport">1. viewport</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/3e5e8699-ca0b-4e4d-8164-c7b5621bdf7f/image.png" alt="">메인 비주얼에 나오는 큰 글씨는 vh로 설정하면 화면이 줄어들때마다 일정한 비율로 주시될수 있다 
다른 영역에는 픽셀크기가 일정한게 좋기때문에 메인비주얼에 주로 사용한다 </p>
<p><a href="http://publishing.kr/vw/">http://publishing.kr/vw/</a> (px -&gt; vh 계산기) </p>
<p>=&gt; <img src="https://velog.velcdn.com/images/shinstar_/post/57d2d777-5e30-4089-acf0-36d16cf513a6/image.png" alt=""></p>
<h3 id="2-폰트-올라오는-효과">2. 폰트 올라오는 효과</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/8a305a80-ae64-4df7-98d5-a23a6f72e007/image.gif" alt=""></p>
<pre><code>1.title 내에 span태그를 만들어 
문장을 3줄로 나열해준다 .

&lt;h2 class=&quot;title&quot;&gt;
    &lt;span class=&quot;parent&quot;&gt;&lt;span&gt;NATURE,&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;parent&quot;&gt;&lt;span&gt;HARNESSED BY&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;parent&quot;&gt;&lt;span&gt;HAND.&lt;/span&gt;&lt;/span&gt;
&lt;h2&gt;

2.css .title에  
display: flex;
flex-direction: column;
적용시켜준 뒤 .parent 오버플로우 히든 적용 ! 

.sc-visual .title{
    display: flex;
    flex-direction: column;
    font-size: 8.8542vw;
    color: #fff;
    text-align: center;
    z-index: 1;
    padding: 0 90px;
}
.sc-visual .title .parent{overflow: hidden;}

3.gsap사용 ---&gt; 이미지 참조


</code></pre><h3 id="3-gsap">3. gsap</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/1fa5e634-1a56-43fa-9614-fc4b945daee6/image.png" alt=""> <a href="https://greensock.com/docs/v3/Installation?checked=core,scrollTrigger">https://greensock.com/docs/v3/Installation?checked=core,scrollTrigger</a> 참조하여 스크립트 추가</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/5837cc01-d037-4452-b57d-02430c4b63f5/image.png" alt=""></p>
<ul>
<li>gsap.from:전의 수치 -&gt; y축으로 100만큼 내려가있는 상태 -&gt;올라갈예정</li>
<li>gsap.to:후의 수치 -&gt; y축으로 100만큼 내려갈 예정
(상황에 맞에 to/from 구분해서 사용하면 된다 )</li>
<li>stagger:문장나열을 순차적으로 움직이는 효과 </li>
</ul>
<h3 id="3-1-gsap-set">3-1) gsap set</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/3f48ef1b-3486-48b3-bbbd-2519672f4b32/image.gif" alt="">
스크롤 할 때 아래에서 위로 띄워올라오는 형태인데, 
처음 화면에선 이미지가 보여선 안된다 
💡 gsap.set사용 ! </p>
<h3 id="4-스크롤실행시-visual이미지-파묻히는효과">4. 스크롤실행시 visual이미지 파묻히는효과</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/0a5c0df9-6f1c-4693-b5e0-ca9f6dfcf003/image.gif" alt=""></p>
<pre><code class="language-javascript">스크롤 실행시 비주얼이미지가 점점 내려가야 파묻히는 효과가 나타나는데 왜 내려가지? 
밑에 화면이 올라가는거 아닌가?하며 이해하기까지 한참 걸렸다 


 그래서 방법은
 .
 .
 .

 1.sc-intro부분에 pozition-relative 줄 것 
 (안주면 gsap효과 후 아래로 가려져버림)

 2. sc-visual에 y축 50%프로 가 내려오면 일정하게 파고들도록 설정 
 gsap.to(&#39;.sc-visual&#39;,{
    scrollTrigger:{
        trigger:&quot;.sc-visual&quot;, //기준점:&quot;.sc-visual&quot;
        start:&quot;0% 0%&quot;, //앞자리 % :트리거기준 시작지점 , 
                       //뒷자리 % : 윈도우 화면기준시작지점 -&gt; 두 지점이 만나면 실행
        end:&quot;100% 0%&quot;,//앞자리100%: 끝지점.
        scrub:0,//영역 전체가 내려갈때 딜레이 되는 수치 
    },
    yPercent:50,
    ease:&#39;none&#39;,//일정하게 
})

(표시자 설정시 markers:true,)
</code></pre>
<p>방아쇠 역할을 할 기준점을 sc-visual영역으로 잡고 
start 뒷자리 퍼센트만큼 스크롤될때 트리거가 실행된다 
ex: 20% 화면 내려왔을때부터 파묻히기 시작
<img src="https://velog.velcdn.com/images/shinstar_/post/b1828c48-04b3-459c-95b8-dc766a3dc863/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/c7d187c9-98e1-41c4-a1f0-c114a9963272/image.png" alt=""></p>
<h4 id="4-1ease">4-1.ease</h4>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/5a0dc20c-f6ef-4639-9e8a-9aa28f93c931/image.png" alt="">
  ease:&#39;none&#39;일정하게 표현할때 사용, 
  transition:ease 를 css에서 사용할 때 선의 굴곡을 조절하여 효과의 강세를 수정 할 수있다. (아직 ease 효과 나오는 홈페이지를 못봄..) </p>
<h3 id="5-clip-pathinset-호버--인셋">5. clip-path:inset (호버 + 인셋)</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/ae377256-5844-42b9-acfc-5f154dc2e07a/image.gif" alt=""> </p>
<blockquote>
<p>clip-path: inset(10px round 10px 10px 10px 10px)
화면에 마우스를 갖다대면 클리핑마스크를 씌운것처럼 지정한 테두리까지만 표현이 된다 </p>
</blockquote>
<pre><code class="language-javascript">.sc-prd .img{
    transition: 0.3s;
    clip-path: inset(0px round 0px 0px 0px 0px)
}
.sc-prd .img:hover{

    text-align: center;
    border-radius: 20px;
    transition: 0.3s;
    clip-path: inset(10px round 10px 10px 10px 10px)
}

(의문:원래 img에 직접설정하지않고 씌워놓은 a태그에 호버를 걸어야하는데
 거기에 걸면 이미지 사라짐.. why,,?)
</code></pre>
<h3 id="6마우스오버">6.마우스오버</h3>
<p>마우스오버를 하기 위해선 좌표를 잡아야한다 따라서 
좌표에대해 먼저 공부... </p>
<pre><code>1. clientX, clientY 
(💡💡💡어디서 확인하든 브라우저 화면기준이기때문에 
ex: 
왼쪽상단은 0,0     오른쪽 상단은 0,1920 
왼쪽하단은 0,800  오른쪽하단은 1920,800 )


위 메서드는 클라이언트 영역 내의 가로,세로 좌표를 제공합니다. 
여기서 클라이언트 영역은 현재 보이는 브라우저 화면이 기준이 됩니다.

clientX : 브라우저 페이지에서의 X좌표 위치를 반환하나 
스크롤은 무시하고 해당 페이지의 상단을 0으로 측정합니다.

clientY : 브라우저 페이지에서의 Y좌표 위치를 반환하나 
스크롤은 무시하고 해당 페이지의 상단을 0으로 측정합니다.

2. offsetX, offsetY (💡💡💡 내가 설정한 태그 내에서 기준!!!!!!)
위 메서드는 이벤트 대상이 기준이 됩니다. 
( 화면 중간에 있는 박스 내부에서 클릭한 위치를 찾을 때 해당 박스의 왼쪽 모서리 좌표가 0이됩니다. 
화면의 기준이 아닙니다)

전체 문서를 기준으로 합니다(스크롤 화면 포함)

offsetX : 이벤트 대상 객체에서의 상대적 마우스 x좌표 위치를 반환합니다.

offsetY : 이벤트 대상 객체에서의 상대적 마우스 y좌표 위치를 반환합니다.

3. pageX, pageY
(💡💡💡문서 전체 기준이기 때문에 긴 화면 한개 속에서 좌표를 측정한다 !! )
위 메서드는 전체 문서를 기준으로 x,y 좌표를 반환 합니다. 스크롤 화면을 포함해서 측정합니다.

pageX : 브라우저 페이지에서의 x좌표 위치를 반환합니다.

pageY : 브라우저 페이지에서의 Y좌표 위치를 반환합니다.

4. screenX, screenY
위 메서드는 모니터 화면을 기준으로 좌표를 제공합니다. 여기서 중요한 점은 브라우저 화면이 아니라 
자신의 모니터 화면 전체를 기준으로 좌표를 측정한다는 점입니다.

screenX : 전체 모니터 스크린에서의 x좌표 위치를 반환합니다.

screenY :전체 모니터 스크린에서의 y좌표 위치를 반환합니다.



아직 헷갈리신다면 한번 더 정리하겠습니다.

offset 메서드는 이벤트가 걸려 있는 DOM객체를 기준으로 좌표를 출력합니다. 이와 비슷한 메서드로 
layer가 있습니다. 이 메서드는 현재 파이어폭스에서만 사용합니다.

screen 메서드는 화면 출력 크기(자신의 모니터)가 기준인 절대 좌표입니다.
브라우저를 움직여도 값은 같습니다.

client 메서드는 브라우저가 기준인 좌표입니다. 현재 보이는 브라우저 화면 상에서 
어느 지점에 위치하는 지를 의미하기 때문에 스크롤 해도 값은 변하지 않습니다.

page 메서드는 문서가 기준입니다. client와 비슷하지만 이 메서드는 문서 전체 크기가 기준이라 
스크롤 시 값이 바뀝니다. (스크롤을 포함해서 측정합니다)

출처
http://megaton111.cafe24.com/
2016/11/29/clientx-offsetx-pagex-screenx%EC%9D%98-
%EC%B0%A8%EC%9D%B4%EC%A0%90/ 참조.. 
</code></pre><p>이해가 됐다면 다시 본론으로 돌아가 
지정한 화면 안에서 마우스오버가 되어야 하기 때문에 client를 활용한다 !</p>
<p>내가만들어야 하는건 
마우스를 따라다니는 이미지 , 그 안에 글자 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/e5214317-0914-4fb2-b79c-0202c287de6d/image.png" alt=""></p>
<pre><code class="language-java">1. 
span으로 이미지박스와 글자태그를 만들어준 뒤 
visibility: hidden;
opacity: 0; 처리 

why?-&gt; 처음엔 안보여야 함으로 히든처리 한 후 클래스.on이 들어갔을때 
visibility: hidden;
opacity: visible 처리해줄것 

2.
.sc-prd .prd-img{
    visibility: hidden;
    opacity: 0;

    position: fixed;
    top: 0;
    left: 0;
    width: 400px;height: 400px;

    margin-left: -200px;
    margin-top: -200px;


    transition: opacity 0.3s, visibility 0.3s;
    z-index: 2;
}
.sc-prd .circle{
    visibility: hidden;
    opacity: 0;

    position: fixed;
    top: 0;
    left: 0;
    /* background: #403a3a; */
    background: #f00;
    width: 20px;height: 20px;
    border-radius: 50%;
    transition: opacity 0.3s, visibility 0.3s;
    z-index: 2;
}

pointer-events: none; 
호버가 될때 따라다니며 이미지가 방해해서 깜빡거림-&gt;막아주기 위해 none처리

3.좌표를 알아놔야 따라다니지요.. 
 $(document).mousemove(function(e){
            xVal = e.clientX;
            yVal = e.clientY;

          gsap.to(&#39;.sc-prd .prd-img&#39;,1,{
                x: xVal,
                y: yVal
          })
          gsap.to(&#39;.sc-prd .circle&#39;,2,{
                x: xVal,
                y: yVal
          })

        })

  4.
   $(&#39;.sc-prd .img-box&#39;).hover(function(){
        $(&#39;.sc-prd .prd-img, .sc-prd .circle&#39;).addClass(&#39;on&#39;)
    },function(){
        $(&#39;.sc-prd .prd-img, .sc-prd .circle&#39;).removeClass(&#39;on&#39;)
    })
</code></pre>
<h3 id="7-글자css">7. 글자css</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/754ea1c8-6d7e-4b11-a78e-ef15c8f522bc/image.gif" alt=""></p>
<p>구현해내지 못했는데 정답은 애초에 똑같은 단어를 2개 만들어놓고 호버했을시 윗줄은 올라가서 가려지게, 아랫줄은 가려져있던게 위로 올라오는 css를 만들면 되는거였다 (간단하지만 내겐 한참 생각하게 만든.. 빌런중 하나였다 )</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/2dfd390e-7053-4839-9e65-73d31e20e4d5/image.png" alt="">
또한 리더기가 두번읽게하지 않도록 중복된 span태그는 aria-hidden처리를 한다 </p>
<pre><code class="language-javascript">
</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[reset css]]></title>
            <link>https://velog.io/@shinstar_/reset-css</link>
            <guid>https://velog.io/@shinstar_/reset-css</guid>
            <pubDate>Thu, 29 Jun 2023 10:33:05 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/shinstar_/post/5a66a775-b2d9-47f9-9847-a9e4252f847d/image.png" alt=""></p>
<p>나는 reset.css안에 무엇을 넣었나.. 까보는 시간을 가져보자 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/0ae98795-0336-4a3e-bf97-052937725b42/image.png" alt=""></p>
<h3 id="root">root:</h3>
<p>=&gt;변수 자체를 기초세팅하기 위해 사용하지만 
나중에 사용하도록 하자 (
4/21 2:29:00 
root 안에 서체가 길어 따로 치기 어려울때 미리 세팅해놓고 body 내에 font-family: var(--font-en); 이런식으으로 꺼내서 사용 ! )</p>
<h3 id="inherit">inherit</h3>
<p>=&gt;브라우저마다 갖고있는 고유 폰트사이즈들이 있어 font,color에 상속을 줌으로 사용하는 브라우저마다 일정하게 표현하기 위에 리셋에 포함시켰다. </p>
<h3 id="flex-shrink">flex-shrink</h3>
<p>=&gt;수축하지않도록 !  </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[발란]]></title>
            <link>https://velog.io/@shinstar_/%EB%B0%9C%EB%9E%80</link>
            <guid>https://velog.io/@shinstar_/%EB%B0%9C%EB%9E%80</guid>
            <pubDate>Tue, 27 Jun 2023 13:05:45 GMT</pubDate>
            <description><![CDATA[<p>발란 코딩</p>
<p>-사이트명 : 발란
-사용언어 : html , css
-분류 : 적응형pc, </p>
<h2 id="🔋-main-point">🔋 Main Point</h2>
<ul>
<li><input checked="" disabled="" type="checkbox"> 슬라이드 끝나면 버튼숨기기</li>
<li><input checked="" disabled="" type="checkbox"> 슬라이드 넘어가며 겹치는 효과주기</li>
<li><input checked="" disabled="" type="checkbox"> root에 자주 쓸 컬러 상속해주기 </li>
<li><input checked="" disabled="" type="checkbox"> 슬라이드 끝나면 버튼숨기기</li>
<li><input checked="" disabled="" type="checkbox"> 폰트어썸으로 화살표넣기</li>
</ul>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/88884d5c-7980-4fd5-b794-ac989a39a821/image.gif" alt=""></p>
<h3 id="1-슬라이드-끝나면-버튼숨기기">1. 슬라이드 끝나면 버튼숨기기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/b3cf57fa-a1d4-4266-af5c-39896422771a/image.png" alt="">
버튼 내 disabled 클래스명을 긁어와 끝 지점으로 갔을때 위치를 마이너스 시켜 화면밖으로 사라지는 효과를 줄수있다 
(부드럽게 넘길때는 .btn 클래스에  transition:0.3s 적용)</p>
<h3 id="2-슬라이드-넘어가며-겹치는-효과주기">2. 슬라이드 넘어가며 겹치는 효과주기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/72c900ef-371a-47a2-901f-151ca9c10704/image.gif" alt="">= 정답은<del>~</del> 
<a href="https://swiperjs.com/demos#parallax">https://swiperjs.com/demos#parallax</a></p>
<p>💡 Parallax (사이트 참조)
<img src="https://velog.velcdn.com/images/shinstar_/post/a788f547-a859-426b-a797-2db44d5c0632/image.png" alt="">1.명령어를 복붙해서 해당 이미지 박스에 추가하면된다 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/b967ffe9-f742-4dca-b3d1-4610869dcb0c/image.png" alt="">
2.    JS에는 parallax:true 넣어줄것 
<img src="https://velog.velcdn.com/images/shinstar_/post/c4925f59-2052-46b0-abef-8f7176a617e6/image.png" alt=""></p>
<ol start="3">
<li>넘치는 영역 잘라주기 overflow:hidden
<img src="https://velog.velcdn.com/images/shinstar_/post/23794843-28e6-4853-a16f-0d98097f20f3/image.png" alt=""></li>
</ol>
<h3 id="3-root에-자주-쓸-컬러-상속해주기">3. root에 자주 쓸 컬러 상속해주기</h3>
<p>발란 사이트에서 포인트로 사용되는 컬러명이 복잡하여 root에 입력해주고 필요할때마다 꺼내먹는다..(이 노래를 초콜릿처럼 꺼내 먹어요,,)</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/0dca3c93-7cf6-4a1e-a39a-8625aac971e9/image.png" alt=""></p>
<h3 id="4-슬라이드-끝나면-버튼-숨기기">4. 슬라이드 끝나면 버튼 숨기기</h3>
<h3 id="5폰트어썸으로-화살표-넣기">5.폰트어썸으로 화살표 넣기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/39dadaea-8b0a-40a4-9380-cb4b71b3c8d4/image.png" alt=""> <a href="https://cdnjs.com/libraries/font-awesome">https://cdnjs.com/libraries/font-awesome</a> 
복사해서 인덱스 맨 위에 넣어주고 
<img src="https://velog.velcdn.com/images/shinstar_/post/bd235146-7d0a-44a4-ac06-9d89545f2cb3/image.png" alt=""></p>
<p>폰트어썸 사이트에서 필요한 화살표 복붙하면 끝 ! 
<img src="https://velog.velcdn.com/images/shinstar_/post/14400178-3144-4270-9f0d-914674085bab/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[서울시청 ]]></title>
            <link>https://velog.io/@shinstar_/%EC%84%9C%EC%9A%B8%EC%8B%9C%EC%B2%AD</link>
            <guid>https://velog.io/@shinstar_/%EC%84%9C%EC%9A%B8%EC%8B%9C%EC%B2%AD</guid>
            <pubDate>Mon, 26 Jun 2023 10:48:39 GMT</pubDate>
            <description><![CDATA[<p>👌 서울특별시청 클론코딩</p>
<ul>
<li>사이트명: 서울특별시청</li>
<li>제작기간: 22.04.07 ~ 22.04.10 (4일 소요)</li>
<li>사용언어: html, css, js</li>
<li>분류: 적응형 PC, 클론코딩</li>
</ul>
<h3 id="💻-point">💻 POINT</h3>
<ul>
<li><input checked="" disabled="" type="checkbox"> 스프라이트 이미지 처리</li>
<li><input checked="" disabled="" type="checkbox"> skip-nav</li>
<li><input checked="" disabled="" type="checkbox"> 체크된 박스</li>
<li><input checked="" disabled="" type="checkbox"> 체크된 박스</li>
</ul>
<h3 id="1스프라이트-이미지-처리-is기법">1.스프라이트 이미지 처리 (IS기법)</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/d2e4fa9d-4938-4f18-aa70-780aec0adf9f/image.png" alt=""></p>
<p>주요서비스 부문엔 스프라이트 이미지로 처리가 되어있었는데 
분야별정보는 백그라운드이미지처리화가 되어있어 수정중에 스프라이트이미지로(IS)이미지를 모아 정리하여 좌표만 잡아주어 불러올수 있게끔 하였다 </p>
<h4 id="is기법-장단점">IS기법 장/단점</h4>
<p>장점: 트래픽이 확 줄기때문에 부하올 일이 적어진다 
이미지여러장을 한번에 가져올수있기때문에 관리가 용이함</p>
<p>단점:전체 이미지중 일부가 변경되었을때 스프라이트 이미지를 통째로 교체해야하기때문에 이미지교체가 잦은 경우의 오히려 사용이 불편해질수있다 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/87e33e0a-575c-4129-9bad-84e60b555ff3/image.png" alt=""></p>
<p>쉽게 바뀌지 않는 카테고리 이미지등에 사용하면 좋을것같다 </p>
<h3 id="2skip-nav-사용">2.skip-nav 사용</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/59ea20ea-a7ba-4546-a749-ed22bf9b8258/image.png" alt=""></p>
<pre><code>1. 스킵 네비게이션의 위치는 가능하면 최대한 body태그 맨 처음으로 위치해야 한다.

✔ 이유는 스킵 네비게이션의 목적이 네비게이션 영역을 스킵하기 위해서 
혹은 주요 서비스로 페이지 초입에서 바로 접근하기 위해 사용을 하기 때문에 
네비게이션 영역 뒤에나 컨텐츠 영역 뒤에 위치하게 되면 
스킵 네비게이션을 쓰는 목적이 사라지기 때문이다.



2. 스킵 네비게이션은 페이지 구석구석 여러번 사용하는 것이 아니라 처음에 한번만 사용해야 한다.

✔ 과한 스킵 네비게이션의 사용은 페이지의 구조와 페이지 이용을 더 복잡하게 할 뿐이다.


3. 스킵 네비게이션은 비장애인 사용자들이 페이지를 이용할 때 화면에서 보이지 않게 작업해야한다. 

✔ 키보드나 스크린리더로 페이지를 tab 하였을 때 스킵 네비게이션이 노출되고 사용될 수 있게 해야한다.
그렇기 때문에 페이지에 맨 처음 접근하게 되면 일반적인 상황에서는 스킵 네비게이션을 확인할 수 없다. 
그리고 그러한 이유로 스킵 네비게이션에 따로 css 스타일을 입히지 않아도 된다고 생각할 수 있다.
하지만 보통의 상황에서는 스킵 네비게이션 링크에 tab이 되었을 경우 tab이 활성화 된 링크에 
css 스타일 효과를 줘서 화면에 노출되게끔 처리하는 것이 많이들 사용하는 방법이고 좋은 방법이라 생각한다.
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[안다르]]></title>
            <link>https://velog.io/@shinstar_/%EC%95%88%EB%8B%A4%EB%A5%B4</link>
            <guid>https://velog.io/@shinstar_/%EC%95%88%EB%8B%A4%EB%A5%B4</guid>
            <pubDate>Tue, 20 Jun 2023 10:36:50 GMT</pubDate>
            <description><![CDATA[<p>💻안다르 클론코딩 </p>
<p>-사이트명 : 안다르 
-사용언어 : html , css
-분류 : 적응형pc, 클론코딩</p>
<h2 id="🔋-main-point">🔋 Main Point</h2>
<ul>
<li><input disabled="" type="checkbox"> 마우스 스크롤 시 상단헤더&amp;gnb고정</li>
<li><input disabled="" type="checkbox"> 메뉴 선택 시 나오는 side nav 와 아코디언메뉴 구성</li>
<li><input disabled="" type="checkbox"> 반복되는 공통 디테일 css</li>
<li><input disabled="" type="checkbox"> 배너명 동일화하기</li>
</ul>
<h3 id="📌배너명-동일화하기">📌배너명 동일화하기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/f392d954-2a4c-4d70-8a3e-8923902e7a8f/image.png" alt=""></p>
<pre><code>✔ 문제점
- [x] sc-banner1 , sc-banner2 로 클래스명 다르게줌

💡
1.배너가 여러개더라도 같은양식이라면 sc-banner로 한번에 꾸밀것 </code></pre><h3 id="📌잘못된-영역-positionabsolute">📌잘못된 영역 position:absolute</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/0b2e513c-2a3f-4a3c-944b-870aea9eb24d/image.png" alt=""></p>
<pre><code>✔ 문제점
- [x] 텍스트박스에 포지션 앱솔줌

💡
1.
.sc-banner .group-banner a{
    position: relative;
} 준 뒤 
.sc-banner .group-banner img{
    position: absolute;
    top: 0;left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}
이미지에 앱솔루트시키고 z-index로 낮춰주면 텍스트도 보이게된다 .
높이와 너비를 갖게되는건 텍스트영역이 잡혀있기 때문에 가져갈수있다 

</code></pre><h3 id="📌footer영역잡기">📌footer영역잡기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/61d12f08-936b-494e-9c5e-d1878c86aed3/image.png" alt=""></p>
<pre><code>💡 group-*** 으로 통일화 해줄것</code></pre><p><img src="https://velog.velcdn.com/images/shinstar_/post/611c821b-dfe9-493f-bba9-78aeced7b383/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[서울시청]]></title>
            <link>https://velog.io/@shinstar_/%EC%84%9C%EC%9A%B8%EC%8B%9C</link>
            <guid>https://velog.io/@shinstar_/%EC%84%9C%EC%9A%B8%EC%8B%9C</guid>
            <pubDate>Mon, 19 Jun 2023 13:45:56 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/shinstar_/post/fbc81891-73cf-4fda-a225-ee95e7bae2b5/image.png" alt="">
💻서울시청 클론코딩 </p>
<p>-사이트명 : 서울시청 
-사용언어 : html , css
-분류 : 적응형pc, 클론코딩</p>
<h2 id="🔋-main-point">🔋 Main Point</h2>
<ul>
<li><input disabled="" type="checkbox"> 스크린리더를 위한 웹 접근성</li>
<li><input disabled="" type="checkbox"> WAI-ARIA &amp; 사용방법</li>
<li><input disabled="" type="checkbox"> 탭메뉴 슬라이드 </li>
<li><input disabled="" type="checkbox"> 접근성소스 skip-nav
1-1) WAI-ARIA
1-2) 스킵 네비게이션
1-3) 탭 메뉴 tab keydown으로 닫는 기능</li>
</ul>
<h3 id="1-스크린리더를-위한-웹-접근성">1. 스크린리더를 위한 웹 접근성</h3>
<p>스크린리더<br>=&gt;화면을 볼 수 없는 시각장애인이 컴퓨터를 사용할 때 화면에 나타나는 정보들을 음성으로 출력해주는 화면낭독 소프트웨어다. 시각장애인들에게 컴퓨터의 화면과 자신이 입력한 키보드 정보, 그리고 마우스 좌표 등을 음성으로 알려 주어 컴퓨터를 사용할 수 있도록 도와주는 소프트웨어이다.</p>
<p>PC형 스크린리더는 전맹시각장애인이 주로 사용하며, 웹스크린리더는 저시력시각장애인과 난독증과 같은 학습장애, 인지장애인과 노인, 다문화가족 등의 웹접근성을 지원하기위해 사용된다. 최근 애플사의 아이폰에 적용된 보이스오버와 같은 스마트기기에 내장된 모바일 스크린리더도 다수 활용되고 있다.</p>
<p>마우스 없이 키보드의 단축키만으로 모든 기능을 제어해야 하고, 이에 따라 키보드를 이용한 동작 구현을 잘 대응해줘야 한다.</p>
<h3 id="2-wai-aria">2. WAI-ARIA</h3>
<p> HTML 요소에 추가적으로 의미를 부여할 수 있게 해준다. 보조적으로 사용하면, 웹 접근성을 향상시킬 수 있다. 정리하자면, 다음과 같은 상황에서 WAI-ARIA를 사용하면 웹 접근성을 효과적으로 향상시킬 수 있을 것이다.</p>
<p>시맨틱 요소만으로 의미를 충분히 부여할 수 없는 상황에 WAI-ARIA를 사용하면 HTML 요소에 추가적인 의미를 부여하여 더 원활하게 페이지를 탐색 할 수 있게 도와준다.</p>
<p>‘시맨틱 요소만으로 의미를 충분히 부여할 수 없는 상황’이라는 것은 시맨틱 요소만으로 충분한 상황에서는 WAI-ARIA를 사용하지 않아야 한다는 의미</p>
<p>WAI-ARIA는 보조적인 역할로만 사용</p>
<p>WAI-ARIA를 남용해선 안 되며, 시맨틱한 HTML을 작성하는 것이 최우선</p>
<h3 id="2-1wai-aria-사용방법">2-1.WAI-ARIA 사용방법</h3>
<p>WAI-ARIA는 HTML 태그 내부에 속성(attribute)을 추가함으로써 의미를 부여해줄 수 있다.</p>
<p>WAI-ARIA의 속성에는 크게 세 가지 분류가 있다.</p>
<p>역할(role) : HTML 요소의 역할을 정의하는 속성</p>
<p>상태(state) : 요소의 현재 상태를 나타내는 속성</p>
<p>속성(property) : 요소의 특징을 정의하는 속성(attribute)</p>
<p>✔ 역할(role) 의 예시</p>
<pre><code>&lt;div role=&quot;button&quot;&gt;div이지만 button으로 사용되는 요소&lt;/div&gt;</code></pre><p>✔ 역할(role) 의 예시</p>
<pre><code>&lt;div role=&quot;tabList&quot;&gt;
  &lt;li role=&quot;tab&quot; aria-selected=&quot;true&quot;&gt;Tab1&lt;/li&gt;
  &lt;li role=&quot;tab&quot; aria-selected=&quot;false&quot;&gt;Tab2&lt;/li&gt;
  &lt;li role=&quot;tab&quot; aria-selected=&quot;false&quot;&gt;Tab3&lt;/li&gt;
&lt;/div&gt;

&lt;div role=&quot;tabpanel&quot;&gt;Tab menu ONE&lt;/div&gt;
&lt;div role=&quot;tabpanel&quot;&gt;Tab menu TWO&lt;/div&gt;
&lt;div role=&quot;tabpanel&quot;&gt;Tab menu THREE&lt;/div&gt;</code></pre><p>✔ 속성(property) 의 예시</p>
<pre><code>img의 이미지가 닫기와 검색의 아이콘일 경우 
&lt;button aria-label=&quot;닫기&quot;/&gt; &lt;img src=&quot;X.png&quot; /&gt; &lt;/button&gt;
&lt;button aria-label=&quot;검색&quot;/&gt; &lt;img src=&quot;돋보기.png&quot; /&gt; &lt;/button&gt;</code></pre><p> 웹 접근성을 확보할 때 가장 중요한 것은 시맨틱한 HTML을 작성하는 것임을 항상 기억하자. 앞서 말했듯, WAI-ARIA는 보조적인 역할로만 사용해야 합니다.</p>
<h3 id="3-탭메뉴-슬라이드">3. 탭메뉴 슬라이드</h3>
<p> <img src="https://velog.velcdn.com/images/shinstar_/post/f71b83ff-573a-44fd-bbf2-f338dc942f29/image.png" alt=""></p>
<p>주요뉴스와 시민참여 탭메뉴를 눌렀을 때 지정한 슬라이드값으로 갈 수 있게 세팅해줬다 
<img src="https://velog.velcdn.com/images/shinstar_/post/986395ba-d8b8-47e2-838a-80d7806ca8e2/image.png" alt="">
주요뉴스 탭은 1번째 슬라이드로,
시민참여 탭을 누를 경우 3번째 슬라이드로 향하게 지정한것 </p>
<pre><code class="language-java">$(&#39;.sc-visual .group-nav button&#39;).click(function(){
    idx=$(this).data(&#39;index&#39;);
  $(this).addClass(&#39;active&#39;).siblings().removeClass(&#39;active&#39;)
  visualSlide.slideToLoop( idx )
})</code></pre>
<h3 id="3-접근성소스-skip-nav">3. 접근성소스 skip-nav</h3>
<p> tab키 사용시 화면 nav부터 쭉 내려가기에 본문에 빨리 접근하기 어렵기 때문에 
 본문으로 바로 갈 수 있도록 컨테이너에 id=main을 연결하여 바로갈수 있게 처리할수있다 
<img src="https://velog.velcdn.com/images/shinstar_/post/a09585f2-afdd-40d5-b42c-edb0e44d99fb/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[레코픽]]></title>
            <link>https://velog.io/@shinstar_/%EB%A0%88%EC%BD%94%ED%94%BD</link>
            <guid>https://velog.io/@shinstar_/%EB%A0%88%EC%BD%94%ED%94%BD</guid>
            <pubDate>Sat, 27 May 2023 01:26:13 GMT</pubDate>
            <description><![CDATA[<h2 id="🔋-main-point">🔋 Main Point</h2>
<ul>
<li><input checked="" disabled="" type="checkbox"> 스크롤시 두번째 헤더 fixed 고정시키기</li>
<li><input checked="" disabled="" type="checkbox"> 너비 주지 말것 </li>
<li><input checked="" disabled="" type="checkbox"> sc-visual 내 absolute 공중부양(position:relative없음)</li>
<li><input checked="" disabled="" type="checkbox"> 타임라인 사용하여 순차효과주기 </li>
<li><input checked="" disabled="" type="checkbox"> 스크롤시, 순차적으로 글씨 나오게하기</li>
<li><input checked="" disabled="" type="checkbox"> 타이핑 효과</li>
<li><input checked="" disabled="" type="checkbox"> 이미지 그라디언트 효과 </li>
<li><input checked="" disabled="" type="checkbox"> 순차적으로 글씨, 이미지 순서대로 나열</li>
<li><input checked="" disabled="" type="checkbox"> 슬라이드 애니메이션(클래스명만 주는법)</li>
<li><input checked="" disabled="" type="checkbox"> 슬라이드 애니메이션2 (클래스명만 주는법2)</li>
</ul>
<h3 id="1-스크롤시-두번째-헤더-fixed-고정시키기">1. 스크롤시 두번째 헤더 fixed 고정시키기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/747cc64f-164b-4c41-8c0f-c5137e20e9ce/image.png" alt=""></p>
<pre><code class="language-javascript">
  /**스크롤이벤트*/ 
    $(window).scroll(function(){
        curr = $(this).scrollTop();
        if(curr &gt; 10){
            $(&#39;.header&#39;).addClass(&#39;fixed&#39;)

        }else{
            $(&#39;.header&#39;).removeClass(&#39;fixed&#39;)
        }
   });
   $(window).trigger(&#39;scroll&#39;); //스크롤 강제실행
</code></pre>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/4562022e-4826-4333-9ca7-149ee0c4bb11/image.png" alt=""></p>
<h3 id="2너비-주지-말것">2.너비 주지 말것</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/f6ec5559-de22-44d2-805c-87775f15f905/image.png" alt=""></p>
<p>컨테이너와 sc-visual에 너비를 줬는데, 쓸모없음 </p>
<h3 id="3sc-visual-내-absolute-공중부양positionrelative없음">3.sc-visual 내 absolute 공중부양(position:relative없음)</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/2872bc79-b99d-4996-8e76-248d67e71bee/image.png" alt="">
=&gt;바로 위 부모가 아니더라도 위에 relative 선언 후 absolute bottom:0 처리하면 딱 붙음 
=&gt;flex jscc처리 빠짐! 가운데정렬 까먹지말것 
<img src="https://velog.velcdn.com/images/shinstar_/post/a5b1a746-3cf0-4775-b940-141b3ebafa21/image.png" alt=""></p>
<h3 id="4타임라인-사용하여-순차효과주기">4.타임라인 사용하여 순차효과주기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/e0d37ed3-aaeb-4b2c-90f1-3747e4e8546b/image.png" alt="">
<code>타임라인</code></p>
<pre><code>1.타임라인 순서 정하기 (텍스트-&gt;이미지 2,3,4-&gt;가입신청 버튼)
2. visualMotio=gsap.timeline({})명령 후 
입력한 순차대로 화면에 구현됨 
3.나올 방향에 따라 x축과 y축 값 입력 
4.동시에 나와야 하는 이미지는 addLabel을 사용하여 묶어줄 것 
5.뻗어나가는 이미지 구현 시 시간차를 두고싶다면 addLabel 뒤에 +=0.1 이용</code></pre><p><img src="https://velog.velcdn.com/images/shinstar_/post/d1d3ea31-86d5-4acb-a0af-cb4d69368a53/image.png" alt="">
<img src="https://velog.velcdn.com/images/shinstar_/post/6146c271-5575-4f4c-b8d9-c88ca7b236a7/image.png" alt=""></p>
<h3 id="5스크롤시-순차적으로-글씨-나오게하기">5.스크롤시, 순차적으로 글씨 나오게하기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/a08ddc00-38c5-4ee9-a350-0798692ff82a/image.gif" alt=""></p>
<h3 id="6타이핑-효과">6.타이핑 효과</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/a92afeca-3f2f-4b53-92ea-9a7ebcce158c/image.gif" alt="">
<img src="https://velog.velcdn.com/images/shinstar_/post/37fa1f5a-ce59-4db3-9ce5-db64153e3697/image.png" alt=""></p>
<pre><code>i태그로 한글자씩 입력후</code></pre><h3 id="7이미지-그라디언트-효과">7.이미지 그라디언트 효과</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/5f2ff530-abae-41b0-adf0-4ad01bb7a0b8/image.png" alt=""></p>
<pre><code class="language-javascript">1.이미지영역에 after값 만들어준 뒤 그라디언트 효과 넣기
2.밑에 태그영역 같이 흐려지기때문에 z-index로 올려줄것 

</code></pre>
<p>(before)
<img src="https://velog.velcdn.com/images/shinstar_/post/d0e1457f-2126-4620-a3b1-57d207b5acea/image.png" alt="">
(after)
<img src="https://velog.velcdn.com/images/shinstar_/post/fc191938-0e53-425d-9b48-52ba0812b979/image.png" alt=""></p>
<h3 id="8순차적으로-글씨-이미지-순서대로-나열">8.순차적으로 글씨, 이미지 순서대로 나열</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/59488f68-720e-4dbd-938b-1d118d36bbd1/image.png" alt="">
처음에는 위 화면을 구현하지 못해서 최대한 비슷하게 나열해봤다</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/46b6cfe9-2f60-4c25-923e-8f534838c7f6/image.png" alt=""> <img src="https://velog.velcdn.com/images/shinstar_/post/d18afcd2-12f4-4e28-92dc-4cb5434b3692/image.png" alt=""></p>
<pre><code>✔ 문제점
- [x] 글씨와 이미지 줄간격이 맞지 않음 (이미지영역내 width:2200px줘버려서 흐트러짐)
- [x] 3번 이미지 마진이나 트랜스폼을 활용x

💡
1.width:2200px제거 후 max-width:1228px설정 
2 두줄처리를 위해 dive:line1,2생성 </code></pre><p><img src="https://velog.velcdn.com/images/shinstar_/post/366ba153-4ea2-4294-aa1b-c1369ac9028a/image.png" alt=""></p>
<pre><code>💡
3.line에 display:flex
</code></pre><p><img src="https://velog.velcdn.com/images/shinstar_/post/0364d74d-4490-43e6-ad4f-1b68a38eb706/image.png" alt="">(넘친영역)
<img src="https://velog.velcdn.com/images/shinstar_/post/f90c05be-2339-40e2-a2af-b5210ea23ac7/image.png" alt=""></p>
<pre><code>💡
4.line2에 margin:left넣어주고 효과 넣기 
</code></pre><pre><code></code></pre><h3 id="9-슬라이드-애니메이션클래스명만-주는법">9. 슬라이드 애니메이션(클래스명만 주는법)</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/5be801af-9022-4ded-90ed-48756f71b6a5/image.png" alt=""> 2번째 페이지로 넘겼을 때 화면이 하나씩 넘어가도록 설정하고 싶었다 </p>
<p>-&gt; 1.슬라이드 체인지 됐을때 클래스명 넣기 
<img src="https://velog.velcdn.com/images/shinstar_/post/6c27af1d-308d-4e70-85bb-a87ddb3982a8/image.png" alt=""></p>
<p>2.on이 들어간 css를 따로 꾸며줌 
<img src="https://velog.velcdn.com/images/shinstar_/post/a7822dac-b7c5-48fb-b02f-4d2570f56e1f/image.png" alt=""></p>
<h3 id="10-슬라이드-애니메이션2-클래스명만-주는법2">10. 슬라이드 애니메이션2 (클래스명만 주는법2)</h3>
<h3 id=""></h3>
<p>여기서 궁금증이 또 생겼다 ., 
<img src="https://velog.velcdn.com/images/shinstar_/post/5a125e52-6d74-4e73-b84e-19e2de79d549/image.png" alt="">
스크롤트리거가 시작되어 클래스명이 생기고 1번 y축으로 움직이는 효과는 실행되었는데 1번이 끝난 후 2번x축으로는 어떻게 움직이지? </p>
<p>=transition-delay
<img src="https://velog.velcdn.com/images/shinstar_/post/aea92adf-0c4d-4d15-be76-2b9bf1e1a1c1/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[pantheone]]></title>
            <link>https://velog.io/@shinstar_/pantheone</link>
            <guid>https://velog.io/@shinstar_/pantheone</guid>
            <pubDate>Mon, 22 May 2023 15:47:15 GMT</pubDate>
            <description><![CDATA[<h3 id="글씨-효과-아래에서-위로-1번째-방법문제점">글씨 효과 (아래에서 위로) :1번째 방법&amp;문제점</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/9dd068e3-8fc1-4a8a-9400-de44cdf9d483/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/1eab6e0b-f04f-4fc3-a113-2011ba32c455/image.png" alt=""></p>
<pre><code>1.span에 부모요소를 한번 더 씌워준뒤 overflow: hidden;처리 
span은 block처리 해준 뒤 transform적용 

(https://greensock.com/scrolltrigger/에서 스크롤트리거 사용함 / 옛날엔 매직스크롤..)</code></pre><pre><code class="language-javascript">2. gsap.to(&#39;.sc-visual .title .parent span&#39;,1,{ /**1초동안 0.1초 간격으로 실행 */
    yPercent:-100,
    stagger:0.1 /**0.1.초 간격으로 실행 */

    });
</code></pre>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/26ce2783-543b-46ba-aad3-0c6638b3e0a2/image.png" alt=""></p>
<p><strong>문제점 -&gt; 화면비율을 줄였을 때 완전히 사라져있지 않음</strong>
=&gt;폰트사이즈가 계속 변하기 때문 </p>
<h3 id="글씨-효과-아래에서-위로-2번째-방법">글씨 효과 (아래에서 위로) :2번째 방법</h3>
<pre><code>![](https://velog.velcdn.com/images/shinstar_/post/33d79093-b3c1-4e6e-85bb-50f1085ac84c/image.png)
1.기존에 넣은 transform을 제거한 뒤 
2.gsap.to-&gt;gsap.from으로 바꾸고  yPercent:100값으로 변경하면 화면비율이 작아져도 이미지사라지는데 방해없음 </code></pre><pre><code class="language-javascript">gsap.from(&#39;.sc-visual .title .parent span&#39;,1,{ /**1초동안 0.1초 간격으로 실행 */
    yPercent:100,
    stagger:0.1 /**0.1.초 간격으로 실행 */
})


</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[접근성소스]]></title>
            <link>https://velog.io/@shinstar_/%EC%A0%91%EA%B7%BC%EC%84%B1%EC%86%8C%EC%8A%A4</link>
            <guid>https://velog.io/@shinstar_/%EC%A0%91%EA%B7%BC%EC%84%B1%EC%86%8C%EC%8A%A4</guid>
            <pubDate>Tue, 16 May 2023 06:23:33 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/shinstar_/post/4f33ee8b-f73e-4d34-be1c-a02df2522dd6/image.png" alt=""></p>
<p>main class에 id를주고 
skip-nav생성하여 본문으로 바로 넘어갈수있게 만드는 장치 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/2f476cab-1b61-4932-bad3-5f8244fa2a3f/image.png" alt=""></p>
<blockquote>
<p>translateY(-100%)해주면 화면에서 사라지기 때문에 
포커스되거나 액티브 되었을 때 0%로 변환시켜 화면에 나올수있도록한다 </p>
</blockquote>
<p>mark-up정리 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/45a0418d-49ea-4780-aa35-fdacc635342c/image.png" alt=""></p>
<p>1.헤더를 두 섹션으로 나눌 때 
group-top, group-bottom으로 나눌것 
(혹은 inner1,2)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[👑리바트몰 수정 ]]></title>
            <link>https://velog.io/@shinstar_/%EB%A6%AC%EB%B0%94%ED%8A%B8%EB%AA%B0-%EC%88%98%EC%A0%95</link>
            <guid>https://velog.io/@shinstar_/%EB%A6%AC%EB%B0%94%ED%8A%B8%EB%AA%B0-%EC%88%98%EC%A0%95</guid>
            <pubDate>Tue, 16 May 2023 06:22:48 GMT</pubDate>
            <description><![CDATA[<h3 id="1visual-슬라이드-내-이미지-화면비율">1.visual 슬라이드 내 이미지 화면비율</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/041107a8-768e-4ed2-b150-05f3f2ad2c01/image.png" alt=""></p>
<p>화면 줄였을 때 이미지비율이 맞지않았다 
-&gt;img 내 object-fit 추가한 후 </p>
<p><a href="https://velog.velcdn.com/images/shinstar_/post/4032621a-e600-4cde-9c85-4324261f3094/image.png"></a></p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/10b32b75-44fc-48b0-9d2a-6141d2ffeb7c/image.png" alt=""></p>
<p>-&gt;비주얼 슬라이드에 100vh화면 주사율 맞추기</p>
<blockquote>
</blockquote>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/6d2411d1-e40e-449f-b81e-8e96fd039aaa/image.png" alt="">
-&gt;비주얼슬라이드 내 이미 position:relative포함되어있음 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/8151ed03-2de9-471e-81ad-fabd3dbddb7c/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/842080f8-0f75-4033-ae8e-0a421674a1d0/image.png" alt="">
슬라이드 내 높이가 빠져있음 </p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/3c6a2563-4a92-4bf1-905c-c3e38df2b857/image.png" alt=""></p>
<p>-&gt;
.sc-visual .visual-slide a{ } 생성해서 높이100%,
이미지박스-이미지 높이100%줄것
<img src="https://velog.velcdn.com/images/shinstar_/post/8151ed03-2de9-471e-81ad-fabd3dbddb7c/image.png" alt="">(before-&gt;after)<img src="https://velog.velcdn.com/images/shinstar_/post/50c9286e-bf0c-4e70-bdef-bbaa29a4d450/image.png" alt=""></p>
<hr>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/bd623617-b974-4c77-804f-d2e511d561f8/image.png" alt=""></p>
<h3 id="2기본으로-제공된-스와이퍼버튼-사용하지않고-직접-만들기">2.기본으로 제공된 스와이퍼버튼 사용하지않고 직접 만들기</h3>
<blockquote>
<p>div class=&quot;swiper-button-next&quot;
div class=&quot;swiper-button-prev&quot;</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/9ea8e6b5-1f49-4c7c-bac1-02a4f9f85848/image.png" alt=""></p>
<ol>
<li><a href="https://fa-v6.hung1001.com/">https://fa-v6.hung1001.com/</a> -&gt;document아래에 js붙여온 후 사용 </li>
</ol>
<p>-&gt;foin-awsome 사용 </p>
<p>2.폰트어썸 -&gt; 사용하고싶은 화살표 가져오고 css로 꾸며주기</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/b968be41-5365-4cf3-b659-5a44bd99741e/image.png" alt=""></p>
<h3 id="3슬라이드-안에-슬라이드-만들기">3.슬라이드 안에 슬라이드 만들기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/e6f2547f-2b7a-4861-9f4b-d111044cee92/image.png" alt=""></p>
<pre><code>    1.큰 슬라이드 2장 안에 작은 슬라이드를 생성한다 
    -&gt;큰 슬라이드는 움직이는 반면 작은 슬라이드도 개별움직임을 주기위해 
    옵션에 상속값 nested:true를 넣어준다 </code></pre><pre><code class="language-javascript">const miniSlide = new Swiper(&quot;.mini-slide&quot;, {
      nested:true,
      slidesPerView:8,
      spaceBetween:3,
    });</code></pre>
<p>-</p>
<pre><code>    🔎 큰 슬라이드는 마우스로 움직이고 싶지않을때
    = touchRatio: 사용 </code></pre><pre><code class="language-javascript">const brandSlide = new Swiper(&quot;.brand-slide&quot;, {
    touchRatio:0,
      navigation: {
        nextEl: &quot;.swiper-button-next&quot;,
        prevEl: &quot;.swiper-button-prev&quot;,
      },
      slidesPerView:2,
      spaceBetween:24,

    });
</code></pre>
<h3 id="3-미니-슬라이드-내-pagination위치-바꾸기">3. 미니 슬라이드 내 pagination위치 바꾸기</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/90a86e17-f566-4e62-90bb-142173cb79b8/image.png" alt=""></p>
<p>why??
<img src="https://velog.velcdn.com/images/shinstar_/post/4614c3db-1c8d-484e-a250-c0551fec25ab/image.png" alt=""></p>
<pre><code>    swiper내 기존 position:relative가 들어가있고,
    swiper-pagination-progressbar에 absolute top:0 ,left:0 적용되어있음 </code></pre><p> <img src="https://velog.velcdn.com/images/shinstar_/post/90a79976-dbec-48d0-af92-6201989b0e9f/image.png" alt=""></p>
<pre><code>        top:auto, bottom:0 준 뒤 
        padding-bottom:10px 으로 간격 넓힘  </code></pre><h3 id="4정사각형사이즈로-배열">4.정사각형사이즈로 배열</h3>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/b80ac441-0f22-4e68-b01f-073486ec1d4d/image.png" alt="">
 <img src="https://velog.velcdn.com/images/shinstar_/post/7dfdce60-4de4-458e-9cc6-11ddb7d3fa16/image.png" alt=""></p>
<pre><code>    img-box 내에 padding-bottom:100% 준 뒤 
    넘치지않게 over-flow:hidden

    img에는 top:0 left:0 width:100% height:100% object-fit:cover!
    가장 쉽게 정사각형 만들 수 있음. .. </code></pre><ul>
<li><input checked="" disabled="" type="checkbox"> 정사각형을 만들어야된다고 width와 height에 지정값 450px씩 부여함 -&gt; xxx </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[메뉴슬라이드 만들기]]></title>
            <link>https://velog.io/@shinstar_/%EB%A9%94%EB%89%B4%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%93%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
            <guid>https://velog.io/@shinstar_/%EB%A9%94%EB%89%B4%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%93%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0</guid>
            <pubDate>Wed, 26 Apr 2023 15:14:44 GMT</pubDate>
            <description><![CDATA[<blockquote>
<!DOCTYPE html>
</blockquote>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>

<pre><code>    /* 삼단바 누르면 메뉴슬라이드나옴 */
    *{margin: 0;padding: 0;font: inherit;color: inherit;}
    ul{list-style: none;}


    .menu{
        position: fixed;
        top: 0;left: -100%;
        width: 100%;height: 100%;
        background: #f00;
        transition: 0.3s;
    }

    .menu.on{
        left: 0;
    }

&lt;/style&gt;</code></pre></head>
<body>

<pre><code>&lt;button class=&quot;btn1&quot;&gt;메뉴버튼1&lt;/button&gt;
&lt;a href=&quot;&quot; class=&quot;btn2&quot;&gt;메뉴버튼2&lt;/a&gt;

&lt;div class=&quot;menu&quot;&gt;
    &lt;a href=&quot;&quot; class=&quot;close&quot;&gt;닫기&lt;/a&gt;
&lt;/div&gt;



&lt;script src=&quot;./jquery-3.6.4.min.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
    $(function(){//로드 후 실행.. 

        $(&#39;.btn1&#39;).click(function(){
            $(&#39;.menu&#39;).addClass(&#39;on&#39;)
        })

        $(&#39;.btn2&#39;).click(function(e){//e:이벤트
            e.preventDefault();//링크이벤트막기
            $(&#39;.menu&#39;).addClass(&#39;on&#39;)
        })

        $(&#39;.close&#39;).click(function(e){//e:이벤트
            e.preventDefault();//링크이벤트막기
            $(&#39;.menu&#39;).removeClass(&#39;on&#39;)
        })
    })//지우지 마세요..
&lt;/script&gt;</code></pre></body>
</html>]]></description>
        </item>
        <item>
            <title><![CDATA[var , const , let]]></title>
            <link>https://velog.io/@shinstar_/var-const-let</link>
            <guid>https://velog.io/@shinstar_/var-const-let</guid>
            <pubDate>Wed, 26 Apr 2023 14:40:54 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>(2015이전) 
var [es5]</p>
</blockquote>
<blockquote>
<p>(2015이후)
const [es6] - 상수, 재할당 불가 
ex: const maxLevel = 99; 로 지정했다면 
    maxLevel = 100 불가 </p>
</blockquote>
<blockquote>
<p>let [es6] - 재할당 가능한 변수 선언문
ex: let maxLevel = 99; 로 지정했다면 
    let maxLevel = 100 불가<br>    (하지만 maxLevel=100 앞에 let 지우면 재할당 가능) </p>
</blockquote>
<pre><code>-&gt; 모든 선언문 앞에 const 쓰되 재할당 가능할 시에 let사용</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[시멘틱마크업]]></title>
            <link>https://velog.io/@shinstar_/%EC%8B%9C%EB%A9%98%ED%8B%B1%EB%A7%88%ED%81%AC%EC%97%85</link>
            <guid>https://velog.io/@shinstar_/%EC%8B%9C%EB%A9%98%ED%8B%B1%EB%A7%88%ED%81%AC%EC%97%85</guid>
            <pubDate>Wed, 05 Apr 2023 06:25:02 GMT</pubDate>
            <description><![CDATA[<p><code>시멘틱 마크업</code>
:마크업 할 때는 의미에 맞는 태그, 요소를 사용하는 것이고 문서를 표현할 때는 구조화를 잘 해주는 것이다.</p>
<p>정해진 약속대로 코드를 작성하게 되면 
결국 기계뿐 아니라 사람도 이해하기 쉬운 코드가 된다.</p>
<p><strong>이제는 태그자체에 의미가있는 시멘틱태그로 마크업구성</strong></p>
<p><strong>SEO 최적화에 유리.</strong></p>
<p><strong>웹 접근성에 효율적</strong></p>
<p><strong>유지보수의 용이성</strong></p>
<blockquote>
<ul>
<li>HTML5 에 새로 생긴 semantic 요소들  <article>
  <aside>
        <figcaption>
  <figure>
  <footer>
  <header>
  <main>
  <mark>
  <nav>
  <section>
  <time>
</li>
</ul>
</blockquote>
<blockquote>
<p>[section, header, gnb, footer] - 상위요소 
     group-000
          000-area
              000-wrap
                000-box <br>
      [a] 
      링크 link-000
      작동 btn-000
      [ul] 
      000-list
      [li]
      000-item</p>
</blockquote>
<p>   클래스명 주는방법</p>
<pre><code> `영역클래스작성`

  의미없이 영역을 구성할 때 
  group-flex
  column-left, column-right
  col-left, col-right
  row-top, row-bottom

  의미있게 영역 구성할 때 

  section-event[sc.event]-섹션
  group
  event-area - 영역잡아줄때 [섹션급이 아니면 area부터 시작]
  event-wrap - 작은단위
  event-box  - 더작은단위

  리스트클래스 작성

  ul-&gt; event-list
  li-&gt; event-item 

  a태그에 클레스 줄땐 목적에 맞게
  link-목적 → 링크이동
  btn-더보기 →링크이동(x) 스크립트작동</code></pre><blockquote>
<p>fieldset :  form에 대한 영역
그 영역끼리 묶어줌
form 태그에서 연관된 요소들을 그룹으로 묶을 때사용함</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/555534c2-ca8a-4759-8658-3a571134e8cf/image.png" alt=""></p>
<p>  <img src="https://velog.velcdn.com/images/shinstar_/post/72bcb7b0-29da-40f1-be96-7d4485da9778/image.png" alt=""></p>
<p>구독한 언론사, 전체 언론사 link아닌 tap형으로 바꾸기 
     <img src="https://velog.velcdn.com/images/shinstar_/post/e07513ac-6ea8-4ca1-975d-6bd7a1aa8fd7/image.png" alt=""></p>
<p>role=&quot;taplist&quot;  -&gt;리더기가 탭목록이라고 읽음<br>role = &quot;tap&quot; area-selected=&quot;false&quot;
      -&gt;선택되지 않은 탭
role = &quot;tap&quot; area-selected=&quot;true&quot;
      -&gt;선택된 탭</p>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/4444caa8-c64b-496e-8cdc-95e2ed61123e/image.png" alt=""></p>
<p>디자인태그 i</p>
<blockquote>
<pre><code>  i.vt-line.vt$*5 :수직으로 5줄 
  i.hr.line.hr$*3 :수평으로 3줄
  =6x4 24칸 생성 </code></pre></blockquote>
<p><img src="https://velog.velcdn.com/images/shinstar_/post/3cf6ee72-cd47-43ea-a4bf-246dbb245454/image.png" alt="">p cass= &quot;login-msg&quot; : 로그인메시지
      a태그로감싸고 link-000생성
      아이디,비밀번호 찾기 , 회원가입에 link-000 클래스생성 <img src="https://velog.velcdn.com/images/shinstar_/post/9773b079-7b77-4493-b900-855e64ab114d/image.png" alt=""></p>
<pre><code>  *개발자모드* 
  ctrl+i 단순키는것
  ctrl+shift+c 타겟잡기마우스커서 갖다대면 포인터가 반응함 </code></pre><p>   [ir기법] : 대체텍스트처리기법
      -텍스트이미지처리
      -리더기가 읽을땐 텍스트를 읽지만 비장애인은 이미지로 볼 수 있음 
      -백그라운드 이미지로 가져옴 
      -규모가 작은프로젝트에 활용</p>
<p>   [is기법] : 스프라이트 이미지 
      -통신이 적어 서버부하 적음,
      -백그라운드포지션으로 모아놓은이미지 내에 필요한 이미지의좌표잡아줌</p>
<p>   [img태그] - 시시때때로 바뀌는영역에 적용. 즉 데이터
   [bg처리]- 순수한배경,ir처리,로고,아이콘,자주 바뀌지 않는 이미지들 </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS 기초(2)]]></title>
            <link>https://velog.io/@shinstar_/CSS-%EA%B8%B0%EC%B4%882</link>
            <guid>https://velog.io/@shinstar_/CSS-%EA%B8%B0%EC%B4%882</guid>
            <pubDate>Thu, 23 Feb 2023 13:33:31 GMT</pubDate>
            <description><![CDATA[<p><code>반응선택자</code> : 마우스의 반응에 따른 속성을 설정할 수 있다
ex: hover등 
<img src="https://velog.velcdn.com/images/shinstar_/post/afadaad8-4f9a-48a6-9a4e-315c1673ab4d/image.png" alt=""></p>
<p><code>상태선택자</code> : 상태에 따라서 css속성이 변하는 설정을 할 수 있다
 <img src="https://velog.velcdn.com/images/shinstar_/post/007d81fe-08d0-45bd-8817-5477ddd27890/image.png" alt=""></p>
<blockquote>
</blockquote>
<pre><code> &lt;style&gt;
  input:focus{
    border:2px solid #f8264d;
    padding:10px;
  }
&lt;/style&gt;</code></pre><p><code>구조선택자</code> : 상태에 따라서 CSS속성이 변하는 설정을 할 수 있다 .
<img src="https://velog.velcdn.com/images/shinstar_/post/f40941ef-d87f-417f-9356-cec59b0f9de0/image.png" alt=""></p>
<blockquote>
   <style>
        #content{width:300px;}
        ul li{
            list-style:none;
            border:1px solid #cccccc;
            padding:10px;
            background-color: grey;
            font-size: 20px;
        }
        ul li a {
            color:#000000;
        }
        ul li:nth-child(2n+1){
            background-color: pink;
        }
        ul li:first-child, ul li:last-child{
            background-color:green;
        }
        ul li:first-child{
            border-radius:10px 10px 0 0 ;
        }
        ul li:last-child{
            border-radius:0 0 10px 10px ;
        }
    </style>
</blockquote>
<p><code>문자선택자</code>:특정 문자 또는 문자열을 선택하여 css속성을 설정할 수 있다.  </p>
<blockquote>
<p>::first-letter { }, ::first-line { } </p>
</blockquote>
<p><code>링크선택자</code>:문서에서 링크(href)되어 있는 문자를 선택하여 CSS속성을 설정할 수 있다.</p>
<blockquote>
<p>a::after{content:&#39;-&#39; attr(href);}
야후 - http:<a href="http://www.yahoo.com">www.yahoo.com</a></p>
</blockquote>
<p><code>부정선택자</code>:나를 제외한 모든 태그에 CSS속성을 적용할 수 있다. </p>
<blockquote>
<p>li:not(.클래스명)background-color:yellow;}</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[web & HTML]]></title>
            <link>https://velog.io/@shinstar_/web-HTML</link>
            <guid>https://velog.io/@shinstar_/web-HTML</guid>
            <pubDate>Thu, 23 Feb 2023 07:02:48 GMT</pubDate>
            <description><![CDATA[<p>Web: www (world wide web) 
-전세계 컴퓨터를 연결하여 정보공유를 하는데 주 목적. 
-연결되어있는 상태를 네트워크 연결되어있다고 함.
-1개 이상의 사이트가 연결되어있는 인터넷 형태 </p>
<h4 id="httpwwwsbaseoulkr80krindex"><a href="http://www.sba.seoul.kr:80/kr/index">http://www.sba.seoul.kr:80/kr/index</a></h4>
<p>프로토콜: http, FTP, SMTP, POP(메일), DHCP(할당된 아이피주소가 변동되게함)</p>
]]></description>
        </item>
    </channel>
</rss>