<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>숨만쉬어도 귀여운타입:D</title>
    <link>https://getgrovy.tistory.com/</link>
    <description>카페인 중독</description>
    <language>ko</language>
    <pubDate>Sat, 27 Jun 2026 13:01:55 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>grovy</managingEditor>
    <image>
      <title>숨만쉬어도 귀여운타입:D</title>
      <url>https://tistory1.daumcdn.net/tistory/6086932/attach/a750cb210fdc418e81831eb1f2734757</url>
      <link>https://getgrovy.tistory.com</link>
    </image>
    <item>
      <title>자바스크립트 패럴랙스-08, 09 가로스크롤효과</title>
      <link>https://getgrovy.tistory.com/136</link>
      <description>&lt;p&gt;&lt;iframe src=&quot;https://getgrovy.github.io/web2023/javascript/paralax/parallaxEffect08.html&quot; width=&quot;2000px&quot; height=&quot;800px&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;패럴랙스효과를 나타내기&amp;nbsp;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;a style=&quot;background-color: #e6f5ff; color: #0070d1; text-align: start;&quot; href=&quot;https://github.com/getGrovy/web2023/blob/master/javascript/paralax/parallaxEffect01.html&quot;&gt;&amp;nbsp;전체 소스는 요기&amp;nbsp;&lt;/a&gt;&lt;/h3&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;a style=&quot;background-color: #e6f5ff; color: #0070d1; text-align: start;&quot; href=&quot;https://github.com/getGrovy/web2023/blob/master/javascript/paralax/css/paralax.css&quot;&gt;css 소스는 요기&amp;nbsp;&lt;/a&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;body를 볼게요 !&amp;nbsp;&lt;/h4&gt;
&lt;pre id=&quot;code_1680538932979&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;main id=&quot;main&quot;&amp;gt;
        &amp;lt;div class=&quot;parallaxs__wrap&quot;&amp;gt;
            &amp;lt;section id=&quot;section1&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;01&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section1 --&amp;gt;
            &amp;lt;section id=&quot;section2&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;02&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section2 --&amp;gt;
            &amp;lt;section id=&quot;section3&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;03&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section3 --&amp;gt;
            &amp;lt;section id=&quot;section4&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;04&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section4 --&amp;gt;
            &amp;lt;section id=&quot;section5&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;05&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section5 --&amp;gt;
            &amp;lt;section id=&quot;section6&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;06&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section6 --&amp;gt;
            &amp;lt;section id=&quot;section7&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;07&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section7 --&amp;gt;
            &amp;lt;section id=&quot;section8&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;08&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section8 --&amp;gt;
            &amp;lt;section id=&quot;section9&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;09&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section9 --&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/main&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위처럼 body영역엔 이미지만 넣어줬어요 !&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따로 css를 전부 빼서 작업했어요&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;script&amp;nbsp; 부분을 볼게용&lt;/h4&gt;
&lt;pre id=&quot;code_1680539127626&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/gsap.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script&amp;gt;
        const parallaxCont = document.querySelector(&quot;.parallaxs__wrap&quot;);
        function scroll(){
            let scrollTop = window.pageYOffset;
            let parallaxWidth = parallaxCont.offsetWidth;
            document.body.style.height=parallaxWidth+'px';

            let viewWidth = parallaxWidth-window.innerWidth;
            let viewHeight = parallaxWidth-window.innerHeight;
            let goLeft = scrollTop* (viewWidth/viewHeight);

            gsap.to(parallaxCont, {left:-goLeft, ease:&quot;power4.out&quot;})

            document.querySelector(&quot;.scroll span&quot;).innerHTML=Math.round(scrollTop);
            requestAnimationFrame(scroll);
        }
        scroll();
    &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; 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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;아래는 세로&amp;gt;&amp;gt;가로&amp;gt;&amp;gt;세로 효과를 볼거에요 !&amp;nbsp;&lt;/h4&gt;
&lt;pre id=&quot;code_1685554102510&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    &amp;lt;main id=&quot;main&quot;&amp;gt;
        &amp;lt;div class=&quot;parallaxs__wrap&quot;&amp;gt;
            &amp;lt;section id=&quot;section1&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;01&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section1 --&amp;gt;
            &amp;lt;section id=&quot;section2&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;02&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section2 --&amp;gt;
            &amp;lt;section id=&quot;section3&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;03&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section3 --&amp;gt;
            &amp;lt;section id=&quot;section4&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;div class=&quot;sec4&quot;&amp;gt;
                    &amp;lt;article&amp;gt;&amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;04-1&amp;lt;/span&amp;gt;&amp;lt;/article&amp;gt;
                    &amp;lt;article&amp;gt;&amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;04-2&amp;lt;/span&amp;gt;&amp;lt;/article&amp;gt;
                    &amp;lt;article&amp;gt;&amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;04-3&amp;lt;/span&amp;gt;&amp;lt;/article&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section4 --&amp;gt;
            &amp;lt;section id=&quot;section5&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;05&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section5 --&amp;gt;
            &amp;lt;section id=&quot;section6&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;06&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section6 --&amp;gt;
            &amp;lt;section id=&quot;section7&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;07&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section7 --&amp;gt;
            &amp;lt;section id=&quot;section8&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;08&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section8 --&amp;gt;
            &amp;lt;section id=&quot;section9&quot; class=&quot;parallaxs__item&quot;&amp;gt;
                &amp;lt;span class=&quot;parallaxs__item__num&quot;&amp;gt;09&amp;lt;/span&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //section9 --&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/main&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;가로스크롤하는부분은 sec4div에 3개의 화면이 보이게 했어요&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1685554164821&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/gsap.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script&amp;gt;
        const secion4 = document.querySelector(&quot;#section4&quot;).offsetTop;
        function scroll(){
            let scrollTop = window.pageYOffset;
            let goLeft = scrollTop - document.querySelector(&quot;#section4&quot;).offsetTop
            if(scrollTop &amp;gt;= secion4){
                gsap.to(&quot;.sec4&quot;, {left: -goLeft, ease: &quot;linear&quot;})
            }
            document.querySelector(&quot;.scroll span&quot;).innerHTML = Math.round(scrollTop);
            requestAnimationFrame(scroll);
        }
        scroll();
    &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 세로 길이값에서 4번째div의 높이에 온다면&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;gsap를 이용해서 가로로 이동시켜 줍니다 이게 왜 되냐면&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;section은 세로가 400vh이고 이 400vh를 스크롤할때&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;.sec4에서 flex로 3개의 화면을 붙여 옆으로 이동시킵니다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보이는건 sec4에서 position:fixed효과로 article이 옆으로 나와요&lt;/p&gt;
&lt;pre id=&quot;code_1685555103301&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#section4 {
    background-color: #444;
    height: 400vh;
    z-index: 4000;
}
#section4 .sec4 {
    position: fixed;
    left: 0;
    top: 0;
    width: 400vh;
    height: 100%;
    display: flex;
}
#section4 .sec4 article {
    width: 200vh;
    height: 100vh;
    position: relative;
}&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;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;가로방향으로 4-1 4-2 4-3이 차례대로 이동하는모습만 보이고&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2537&quot; data-origin-height=&quot;1256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6WwnN/btsibpolWYz/HKh49Drbv97yIsqYcrzwEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6WwnN/btsibpolWYz/HKh49Drbv97yIsqYcrzwEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6WwnN/btsibpolWYz/HKh49Drbv97yIsqYcrzwEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6WwnN%2FbtsibpolWYz%2FHKh49Drbv97yIsqYcrzwEk%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;2537&quot; height=&quot;1256&quot; data-origin-width=&quot;2537&quot; data-origin-height=&quot;1256&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;</description>
      <category>페럴렉스 가로효과</category>
      <category>페럴렉스 세로 가로 세로</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/136</guid>
      <comments>https://getgrovy.tistory.com/136#entry136comment</comments>
      <pubDate>Thu, 1 Jun 2023 02:45:34 +0900</pubDate>
    </item>
    <item>
      <title>포폴용 참고 사이트 !</title>
      <link>https://getgrovy.tistory.com/135</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.hellomonday.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.hellomonday.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685396176637&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;Hello Monday&quot; data-og-description=&quot;Hello Monday is a creative studio in New York, Copenhagen, and Aarhus that handcrafts digital (and magical) products, brands, and experiences.&quot; data-og-host=&quot;www.hellomonday.com&quot; data-og-source-url=&quot;https://www.hellomonday.com/&quot; data-og-url=&quot;https://www.hellomonday.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/blj8Wp/hySPeXhYOP/4Kl4otuN01B6Ck0wjYjrP0/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/nrcST/hySPgANTOb/GsRQKMP20QiNvMnTXoxxdk/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/38bfJ/hySPfhAPvI/RDWC9Mg92V6WlXIQIg0KJK/img.jpg?width=1280&amp;amp;height=960&amp;amp;face=0_0_1280_960&quot;&gt;&lt;a href=&quot;https://www.hellomonday.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.hellomonday.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/blj8Wp/hySPeXhYOP/4Kl4otuN01B6Ck0wjYjrP0/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/nrcST/hySPgANTOb/GsRQKMP20QiNvMnTXoxxdk/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/38bfJ/hySPfhAPvI/RDWC9Mg92V6WlXIQIg0KJK/img.jpg?width=1280&amp;amp;height=960&amp;amp;face=0_0_1280_960');&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;Hello Monday&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Hello Monday is a creative studio in New York, Copenhagen, and Aarhus that handcrafts digital (and magical) products, brands, and experiences.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.hellomonday.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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://wantedfornothing.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://wantedfornothing.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685396383028&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;Wanted For Nothing | Top Rated Web Design Agency Los Angeles&quot; data-og-description=&quot;Wanted for Nothing is a Los Angeles based tactical design agency that focuses on UX/UI, websites, custom web applications and eCommerce solutions.&quot; data-og-host=&quot;wantedfornothing.com&quot; data-og-source-url=&quot;https://wantedfornothing.com/&quot; data-og-url=&quot;https://wantedfornothing.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bVv3EO/hySPmA1sq6/Mai8u71aPu3ImZG4UkMmP0/img.png?width=224&amp;amp;height=224&amp;amp;face=0_0_224_224,https://scrap.kakaocdn.net/dn/f6oSQ/hySNedyHfk/bFhOpxQkGkMcebbZueOeU1/img.jpg?width=1696&amp;amp;height=1678&amp;amp;face=908_675_1363_934&quot;&gt;&lt;a href=&quot;https://wantedfornothing.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wantedfornothing.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bVv3EO/hySPmA1sq6/Mai8u71aPu3ImZG4UkMmP0/img.png?width=224&amp;amp;height=224&amp;amp;face=0_0_224_224,https://scrap.kakaocdn.net/dn/f6oSQ/hySNedyHfk/bFhOpxQkGkMcebbZueOeU1/img.jpg?width=1696&amp;amp;height=1678&amp;amp;face=908_675_1363_934');&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;Wanted For Nothing | Top Rated Web Design Agency Los Angeles&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Wanted for Nothing is a Los Angeles based tactical design agency that focuses on UX/UI, websites, custom web applications and eCommerce solutions.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wantedfornothing.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 data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.tmvdesignstudio.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.tmvdesignstudio.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685396567142&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;TMV STUDIO DESIGN&amp;reg;&quot; data-og-description=&quot;With our deep understanding of user experience and Design, we are committed to creating websites that not only look unique but also function flawlessly. Our expertise in Webflow and Figma allows us to build powerful and responsive experiences that are tail&quot; data-og-host=&quot;www.tmvdesignstudio.com&quot; data-og-source-url=&quot;https://www.tmvdesignstudio.com/&quot; data-og-url=&quot;https://www.tmvdesignstudio.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bB74Ac/hySPoZUhjS/d8YQrrPkfDygKLBegR1lJK/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=954_207_1182_456,https://scrap.kakaocdn.net/dn/cfFR1E/hySPsutmer/Nt6cEGQoI94ipG0A46jID1/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/cdGp6a/hySPqwEmeE/JiTMcBPRzytoJ3WX6RIqY1/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=867_462_933_534&quot;&gt;&lt;a href=&quot;https://www.tmvdesignstudio.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.tmvdesignstudio.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bB74Ac/hySPoZUhjS/d8YQrrPkfDygKLBegR1lJK/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=954_207_1182_456,https://scrap.kakaocdn.net/dn/cfFR1E/hySPsutmer/Nt6cEGQoI94ipG0A46jID1/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/cdGp6a/hySPqwEmeE/JiTMcBPRzytoJ3WX6RIqY1/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=867_462_933_534');&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;TMV STUDIO DESIGN&amp;reg;&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;With our deep understanding of user experience and Design, we are committed to creating websites that not only look unique but also function flawlessly. Our expertise in Webflow and Figma allows us to build powerful and responsive experiences that are tail&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.tmvdesignstudio.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;&lt;a href=&quot;https://abeautifulmess.co/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://abeautifulmess.co/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685396974513&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;Home | A Beautiful Mess&quot; data-og-description=&quot;from nothing, something beautiful was born, like it was a miracle. mother dearest, you are radiant.&quot; data-og-host=&quot;abeautifulmess.co&quot; data-og-source-url=&quot;https://abeautifulmess.co/&quot; data-og-url=&quot;https://abeautifulmess.co/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://abeautifulmess.co/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://abeautifulmess.co/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;Home | A Beautiful Mess&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;from nothing, something beautiful was born, like it was a miracle. mother dearest, you are radiant.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;abeautifulmess.co&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;img에 이질감이 특이한 사이트!&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;&lt;a href=&quot;https://valkyrae.basement.studio/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://valkyrae.basement.studio/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685397136894&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;Valkyrae Store&quot; data-og-description=&quot;Debut clothing line from creator Valkyrae Radiant Spirits Collection // One week only.&quot; data-og-host=&quot;valkyrae.basement.studio&quot; data-og-source-url=&quot;https://valkyrae.basement.studio/&quot; data-og-url=&quot;https://valkyrae.vercel.app/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bhXifS/hySPg1SoSp/emLdKauRSkrcZus9yxmUVk/img.png?width=1200&amp;amp;height=642&amp;amp;face=0_0_1200_642,https://scrap.kakaocdn.net/dn/bMafmA/hySPf9JEZF/vUNpagmVKL2kH5WMo5Hfnk/img.png?width=1200&amp;amp;height=642&amp;amp;face=0_0_1200_642,https://scrap.kakaocdn.net/dn/dkdej2/hySNahT0o7/wYHiUU93KbIv3Tsz6gKi2k/img.jpg?width=3840&amp;amp;height=2134&amp;amp;face=0_0_3840_2134&quot;&gt;&lt;a href=&quot;https://valkyrae.basement.studio/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://valkyrae.basement.studio/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bhXifS/hySPg1SoSp/emLdKauRSkrcZus9yxmUVk/img.png?width=1200&amp;amp;height=642&amp;amp;face=0_0_1200_642,https://scrap.kakaocdn.net/dn/bMafmA/hySPf9JEZF/vUNpagmVKL2kH5WMo5Hfnk/img.png?width=1200&amp;amp;height=642&amp;amp;face=0_0_1200_642,https://scrap.kakaocdn.net/dn/dkdej2/hySNahT0o7/wYHiUU93KbIv3Tsz6gKi2k/img.jpg?width=3840&amp;amp;height=2134&amp;amp;face=0_0_3840_2134');&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;Valkyrae Store&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Debut clothing line from creator Valkyrae Radiant Spirits Collection // One week only.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;valkyrae.basement.studio&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.samuelsiebler.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.samuelsiebler.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685397295481&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;time to meet sam&quot; data-og-description=&quot;I'm Samuel Siebler or simply Sam, an award-winning freelance Digital Designer. My goal is to create outstanding digital experiences, improve every day and have fun. I'm Samuel Siebler or simply Sam, an award-winning freelance Digital Designer. I focus on c&quot; data-og-host=&quot;www.samuelsiebler.com&quot; data-og-source-url=&quot;https://www.samuelsiebler.com/&quot; data-og-url=&quot;https://www.samuelsiebler.com/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.samuelsiebler.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.samuelsiebler.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;time to meet sam&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I'm Samuel Siebler or simply Sam, an award-winning freelance Digital Designer. My goal is to create outstanding digital experiences, improve every day and have fun. I'm Samuel Siebler or simply Sam, an award-winning freelance Digital Designer. I focus on c&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.samuelsiebler.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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.brucemaudesign.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.brucemaudesign.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685397491398&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;Bruce Mau Design&quot; data-og-description=&quot;BMD works across disciplines, sectors and cultures to create unmistakable brand experiences that propel organizations forward.&quot; data-og-host=&quot;www.brucemaudesign.com&quot; data-og-source-url=&quot;https://www.brucemaudesign.com/&quot; data-og-url=&quot;https://www.brucemaudesign.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bEHpe6/hySNbumYsA/cTLADNeQKJQbFYZAf3dq91/img.jpg?width=448&amp;amp;height=220&amp;amp;face=0_0_448_220,https://scrap.kakaocdn.net/dn/cQgskW/hySNb8Zswn/lYcBFyRrDFNSVQhCRrMk90/img.jpg?width=448&amp;amp;height=220&amp;amp;face=0_0_448_220,https://scrap.kakaocdn.net/dn/WMGbt/hySNcUnyv1/LQKKc3ucEPlvL0iKDanoDk/img.jpg?width=1024&amp;amp;height=608&amp;amp;face=0_0_1024_608&quot;&gt;&lt;a href=&quot;https://www.brucemaudesign.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.brucemaudesign.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bEHpe6/hySNbumYsA/cTLADNeQKJQbFYZAf3dq91/img.jpg?width=448&amp;amp;height=220&amp;amp;face=0_0_448_220,https://scrap.kakaocdn.net/dn/cQgskW/hySNb8Zswn/lYcBFyRrDFNSVQhCRrMk90/img.jpg?width=448&amp;amp;height=220&amp;amp;face=0_0_448_220,https://scrap.kakaocdn.net/dn/WMGbt/hySNcUnyv1/LQKKc3ucEPlvL0iKDanoDk/img.jpg?width=1024&amp;amp;height=608&amp;amp;face=0_0_1024_608');&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;Bruce Mau Design&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;BMD works across disciplines, sectors and cultures to create unmistakable brand experiences that propel organizations forward.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.brucemaudesign.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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://thebrandstorm.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://thebrandstorm.com&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685397665733&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;TheBrandstorm - Brand Architects&quot; data-og-description=&quot;We create, develop and produce brand architecture. This vision, associated with creation, has consistently been the key to the success of the company. From then on, the development of concepts of brand architecture and retail design have been rolling out w&quot; data-og-host=&quot;thebrandstorm.com&quot; data-og-source-url=&quot;https://thebrandstorm.com/&quot; data-og-url=&quot;https://thebrandstorm.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cfJzxx/hySM6mhl4R/JIYBlKzRP61SNriS2oq6W1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://thebrandstorm.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://thebrandstorm.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cfJzxx/hySM6mhl4R/JIYBlKzRP61SNriS2oq6W1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;TheBrandstorm - Brand Architects&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;We create, develop and produce brand architecture. This vision, associated with creation, has consistently been the key to the success of the company. From then on, the development of concepts of brand architecture and retail design have been rolling out w&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;thebrandstorm.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작시 문구 change 효과 가 멋진 사이트 !&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;a href=&quot;https://oasisgracebay.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://oasisgracebay.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685397861586&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;The Oasis at Grace Bay&quot; data-og-description=&quot;Welcome to The Oasis at Grace Bay, where contemporary, modern design meets luxurious and affordable accommodations.&quot; data-og-host=&quot;oasisgracebay.com&quot; data-og-source-url=&quot;https://oasisgracebay.com/&quot; data-og-url=&quot;https://oasisgracebay.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bmbjkz/hySPdYn6NP/z1RjL1rVlBkkcqmBg3kQp0/img.jpg?width=1903&amp;amp;height=1269&amp;amp;face=0_0_1903_1269,https://scrap.kakaocdn.net/dn/h2ng6/hySM76BqRp/2vmZDb7HckyQeHPt9MiifK/img.jpg?width=665&amp;amp;height=820&amp;amp;face=0_0_665_820,https://scrap.kakaocdn.net/dn/caQy8W/hySM9Djf5q/qJKRctoKOOAfWtT0NkUTs0/img.jpg?width=665&amp;amp;height=820&amp;amp;face=0_0_665_820&quot;&gt;&lt;a href=&quot;https://oasisgracebay.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://oasisgracebay.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bmbjkz/hySPdYn6NP/z1RjL1rVlBkkcqmBg3kQp0/img.jpg?width=1903&amp;amp;height=1269&amp;amp;face=0_0_1903_1269,https://scrap.kakaocdn.net/dn/h2ng6/hySM76BqRp/2vmZDb7HckyQeHPt9MiifK/img.jpg?width=665&amp;amp;height=820&amp;amp;face=0_0_665_820,https://scrap.kakaocdn.net/dn/caQy8W/hySM9Djf5q/qJKRctoKOOAfWtT0NkUTs0/img.jpg?width=665&amp;amp;height=820&amp;amp;face=0_0_665_820');&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;The Oasis at Grace Bay&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Welcome to The Oasis at Grace Bay, where contemporary, modern design meets luxurious and affordable accommodations.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;oasisgracebay.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;&lt;a href=&quot;https://react.gg/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://react.gg/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685398262419&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;The interactive way to master modern React &amp;ndash;&amp;nbsp;react.gg&quot; data-og-description=&quot;The interactive way to master modern React &amp;mdash; from the team at ui.dev.&quot; data-og-host=&quot;react.gg&quot; data-og-source-url=&quot;https://react.gg/&quot; data-og-url=&quot;https://react.gg&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/nj4Bt/hySPmnuCcX/o5hNOxi3wb7a8Kl2QyC72K/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/glXhy/hySM8xDJhU/126ajmzNReyfZaFLJlIwi0/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://react.gg/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://react.gg/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/nj4Bt/hySPmnuCcX/o5hNOxi3wb7a8Kl2QyC72K/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/glXhy/hySM8xDJhU/126ajmzNReyfZaFLJlIwi0/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;The interactive way to master modern React &amp;ndash;&amp;nbsp;react.gg&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The interactive way to master modern React &amp;mdash; from the team at ui.dev.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;react.gg&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://igma.im/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://igma.im/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1685398656078&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;design, digital, web, art direction, web development&quot; data-og-title=&quot;Igor Mahr &amp;mdash; Design and Development&quot; data-og-description=&quot;Design and Development&quot; data-og-host=&quot;igma.im&quot; data-og-source-url=&quot;https://igma.im/&quot; data-og-url=&quot;https://igma.im/igma.im&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/zNbmI/hySNdlrflp/kWAZJJKGR1svYrOPXtDkG0/img.png?width=1074&amp;amp;height=480&amp;amp;face=0_0_1074_480&quot;&gt;&lt;a href=&quot;https://igma.im/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://igma.im/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/zNbmI/hySNdlrflp/kWAZJJKGR1svYrOPXtDkG0/img.png?width=1074&amp;amp;height=480&amp;amp;face=0_0_1074_480');&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;Igor Mahr &amp;mdash; Design and Development&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Design and Development&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;igma.im&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;&lt;a href=&quot;https://optimistcreativeindia.com/our-story&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://optimistcreativeindia.com/our-story&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떻게 만든지 모르겠는 사이트 !&amp;nbsp;&lt;/p&gt;</description>
      <category>html</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/135</guid>
      <comments>https://getgrovy.tistory.com/135#entry135comment</comments>
      <pubDate>Sun, 28 May 2023 22:11:53 +0900</pubDate>
    </item>
    <item>
      <title>웹디자인 기능사 연습문제 3</title>
      <link>https://getgrovy.tistory.com/131</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;웹디 실기 연습사이트를 만들어 봤어요 !&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;iframe src=&quot;https://getgrovy.github.io/web2023/webd/site03/index.html&quot; width=&quot;2000px&quot; height=&quot;800px&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1076&quot; data-origin-height=&quot;1229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFHvzy/btsgGiD0V6q/6s50XbrfLKWkK4QTUep7Qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFHvzy/btsgGiD0V6q/6s50XbrfLKWkK4QTUep7Qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFHvzy/btsgGiD0V6q/6s50XbrfLKWkK4QTUep7Qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFHvzy%2FbtsgGiD0V6q%2F6s50XbrfLKWkK4QTUep7Qk%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;1076&quot; height=&quot;1229&quot; data-origin-width=&quot;1076&quot; data-origin-height=&quot;1229&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;iframe으로 가져오니 화면이 짤리네요 ㅜㅜㅜ&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;a href=&quot;https://github.com/getGrovy/web2023/tree/master/webd/site03&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;요기&lt;/a&gt;루&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684686301186&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(function(){
    let currentIndex = 0;
    $(&quot;.sliderWrap&quot;).append($(&quot;.slider&quot;).first().clone(true));
    setInterval(function(){
        currentIndex++;
        $(&quot;.sliderWrap&quot;).animate({marginLeft:-100*currentIndex + &quot;%&quot;},600);
        if(currentIndex == 3){
            setTimeout(function(){
                $(&quot;.sliderWrap&quot;).animate({marginLeft:0},0);
                currentIndex = 0 ;
            },700)
        }
    },3000);

    $(&quot;.nav &amp;gt; ul &amp;gt; li&quot;).mouseover(function(){
        $(this).find(&quot;.submenu&quot;).stop().slideDown(200);
    });
    $(&quot;.nav &amp;gt; ul &amp;gt; li&quot;).mouseout(function(){
        $(this).find(&quot;.submenu&quot;).stop().slideUp(200);
    });

});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 이미지를 jquery를 이용해서 처리했어요 슬라이드&amp;amp;sub메뉴를 요렇게 처리했습니다.&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>html</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/131</guid>
      <comments>https://getgrovy.tistory.com/131#entry131comment</comments>
      <pubDate>Fri, 19 May 2023 23:36:30 +0900</pubDate>
    </item>
    <item>
      <title>PHPPHP + MAMP사이트 만들기 - 기초5 (회원가입유효성 ajax체크)</title>
      <link>https://getgrovy.tistory.com/129</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Ajax를 이용해서 각 input 박스를 체크해봤어요 !&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;모든소스는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;color: #0070d1; text-align: start;&quot; href=&quot;https://github.com/getGrovy/php2023-2&quot;&gt;요기&lt;/a&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;746&quot; data-origin-height=&quot;902&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7QXsv/btsf4fHB47E/vnRTNIB2LkNGenk62txHK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7QXsv/btsf4fHB47E/vnRTNIB2LkNGenk62txHK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7QXsv/btsf4fHB47E/vnRTNIB2LkNGenk62txHK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7QXsv%2Fbtsf4fHB47E%2FvnRTNIB2LkNGenk62txHK0%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;746&quot; height=&quot;902&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;902&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;아래 이미지처럼 포커스를 out 했을때 작동하게 만들었어요 !&amp;nbsp;&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;583&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dHccTf/btsf6C97wmT/p7QAScqQ3W5pKUz91w0imk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dHccTf/btsf6C97wmT/p7QAScqQ3W5pKUz91w0imk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dHccTf/btsf6C97wmT/p7QAScqQ3W5pKUz91w0imk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdHccTf%2Fbtsf6C97wmT%2Fp7QAScqQ3W5pKUz91w0imk%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;583&quot; height=&quot;159&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;php 부분을 볼게요 html과 똑같아요 !&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684172320432&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;join__form&quot;&amp;gt;
    &amp;lt;form action=&quot;#&quot; name=&quot;#&quot; method=&quot;post&quot; onsubmit=&quot;return joinChecks()&quot;&amp;gt;
        &amp;lt;fieldset&amp;gt;
            &amp;lt;legend class=&quot;blind&quot;&amp;gt;회원가입 영역&amp;lt;/legend&amp;gt;
            &amp;lt;div&amp;gt;
                &amp;lt;label for=&quot;memberID&quot;&amp;gt;&amp;lt;/label&amp;gt;
                &amp;lt;input type=&quot;text&quot; id=&quot;memberID&quot; name=&quot;memberID&quot; class=&quot;inputStyle&quot; placeholder=&quot;아이디&quot;&amp;gt;
                &amp;lt;p class=&quot;joinChkmsg&quot; id=&quot;memberIDComment&quot;&amp;gt;&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;
                &amp;lt;label for=&quot;youPass&quot;&amp;gt;&amp;lt;/label&amp;gt;
                &amp;lt;input type=&quot;password&quot; id=&quot;youPass&quot; name=&quot;youPass&quot; class=&quot;inputStyle&quot; placeholder=&quot;비밀번호&quot;&amp;gt;
                &amp;lt;p class=&quot;joinChkmsg&quot; id=&quot;youPassComment&quot;&amp;gt;&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;
                &amp;lt;label for=&quot;youPassC&quot;&amp;gt;&amp;lt;/label&amp;gt; 
                &amp;lt;input type=&quot;password&quot; id=&quot;youPassC&quot; name=&quot;youPassC&quot; class=&quot;inputStyle&quot; placeholder=&quot;비밀번호 확인&quot;&amp;gt;
                &amp;lt;p class=&quot;joinChkmsg&quot; id=&quot;youPassCComment&quot;&amp;gt;&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;
                &amp;lt;label for=&quot;youName&quot;&amp;gt;&amp;lt;/label&amp;gt;
                &amp;lt;input type=&quot;text&quot; id=&quot;youName&quot; name=&quot;youName&quot; class=&quot;inputStyle&quot; placeholder=&quot;이름&quot;&amp;gt;
                &amp;lt;p class=&quot;joinChkmsg&quot; id=&quot;youNameComment&quot;&amp;gt;&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;
                &amp;lt;label for=&quot;youPhone&quot;&amp;gt;&amp;lt;/label&amp;gt;
                &amp;lt;input type=&quot;text&quot; id=&quot;youPhone&quot; name=&quot;youPhone&quot; class=&quot;inputStyle&quot; placeholder=&quot;휴대폰번호&quot;&amp;gt;
                &amp;lt;span id=&quot;chkPhone&quot;&amp;gt;&amp;lt;/span&amp;gt;
                &amp;lt;p class=&quot;joinChkmsg&quot; id=&quot;youPhoneComment&quot;&amp;gt;&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;
                &amp;lt;label for=&quot;nickName&quot;&amp;gt;&amp;lt;/label&amp;gt;
                &amp;lt;input type=&quot;text&quot; id=&quot;nickName&quot; name=&quot;nickName&quot; class=&quot;inputStyle&quot; placeholder=&quot;닉네임&quot;&amp;gt;
                &amp;lt;span id=&quot;chkNickName&quot;&amp;gt;&amp;lt;/span&amp;gt;
                &amp;lt;p class=&quot;joinChkmsg&quot; id=&quot;nickNameComment&quot;&amp;gt;&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;
                &amp;lt;label for=&quot;youBirth&quot;&amp;gt;&amp;lt;/label&amp;gt;
                &amp;lt;input type=&quot;text&quot; id=&quot;youBirth&quot; name=&quot;youBirth&quot; class=&quot;inputStyle&quot; placeholder=&quot;생년월일&quot;&amp;gt;
                &amp;lt;p class=&quot;joinChkmsg&quot; id=&quot;youBirthComment&quot;&amp;gt;&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;
                &amp;lt;label for=&quot;youGender&quot;&amp;gt;&amp;lt;/label&amp;gt;
                &amp;lt;select type=&quot;text&quot; id=&quot;youGender&quot; name=&quot;youGender&quot; class=&quot;inputStyle&quot; placeholder=&quot;성별&quot;&amp;gt;
                    &amp;lt;option value=&quot;&quot;&amp;gt;성별 선택&amp;lt;/option&amp;gt;
                    &amp;lt;option value=&quot;1&quot;&amp;gt;남&amp;lt;/option&amp;gt;
                    &amp;lt;option value=&quot;2&quot;&amp;gt;여&amp;lt;/option&amp;gt;
                &amp;lt;/select&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;button type=&quot;submit&quot; class=&quot;btnStyle3&quot;&amp;gt;회원가입 완료&amp;lt;/button&amp;gt;
        &amp;lt;/fieldset&amp;gt;
    &amp;lt;/form&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 각각의 id값을 각각의 input박스에 설정해줬어요 !&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684172392745&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://code.jquery.com/jquery-3.6.4.js&quot; integrity=&quot;sha256-a9jBBRygX1Bh5lt8GZjXDzyOB+bWve9EiO7tROUtj/E=&quot; crossorigin=&quot;anonymous&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;

    let isEmailCheck = false;
    let isNickCheck = false;
    let isPhoneCheck = false;
    let isNameCheck = false;
    let isBirthCheck = false;
    let isPassCheck = false;


    // 아이디 유효성 검사
    function chkMemberId(){
        isEmailCheck = false;
        let getmemberID =  RegExp(/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([\-.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i);
        $(&quot;#memberIDComment&quot;).addClass(&quot;red&quot;);
        if($(&quot;#memberID&quot;).val() == ''){
            $(&quot;#memberIDComment&quot;).text(&quot;* 아이디를 입력해주세요!&quot;);
            $(&quot;#memberID&quot;).focus();
            return false;
        }else if(!getmemberID.test($(&quot;#memberID&quot;).val())){
            $(&quot;#memberIDComment&quot;).text(&quot;* 아이디 형식에 맞게 작성해주세요! aaa@gmail.com&quot;);
            $(&quot;#memberID&quot;).val('');
            $(&quot;#memberID&quot;).focus();
            return false;
        }

        $.ajax({
            type : &quot;POST&quot;,
            url : &quot;joinCheck.php&quot;,
            data : {&quot;youEmail&quot; : $(&quot;#memberID&quot;).val(), &quot;type&quot; : &quot;isMemberIdChk&quot;},
            dataType : &quot;json&quot;,
            success : function(data){
                if(data.result == &quot;good&quot;){
                    $(&quot;#memberIDComment&quot;).text(&quot;* 사용 가능한 아이디 입니다&quot;);
                    $(&quot;#memberIDComment&quot;).removeClass(&quot;red&quot;);
                    $(&quot;#memberIDComment&quot;).addClass(&quot;green&quot;);
                     isEmailCheck = true;
                }else {
                    $(&quot;#memberIDComment&quot;).text(&quot;* 사용 중인 아이디 입니다&quot;);
                    $(&quot;#memberID&quot;).val('');
                     isEmailCheck = false;
                     return false;           
                }
            },
            error : function(request, status, error){
                console.log(&quot;request&quot; + request);
                console.log(&quot;status&quot; + status);
                console.log(&quot;error&quot; + error);
            }
        });


    }
    // 닉네임 유효성
    function chkNickName(){
        isNickCheck = false;
        // 닉네임 유효성 검사
        $(&quot;#nickNameComment&quot;).addClass(&quot;red&quot;);
        let getnickName = RegExp(/^[가-힣|0-9]+$/);
        if($(&quot;#nickName&quot;).val() == ''){
            $(&quot;#nickNameComment&quot;).text(&quot;* 닉네임을 입력해주세요!&quot;);
            $(&quot;#nickName&quot;).focus();
            return false;
        }else if(!getnickName.test($(&quot;#nickName&quot;).val())){
            $(&quot;#nickNameComment&quot;).text(&quot;* 닉네임은 한글 또는 숫자만 사용 가능합니다.&quot;);
            $(&quot;#nickName&quot;).val('');
            $(&quot;#nickName&quot;).focus();
            return false;
        }else{
            $(&quot;#nickNameComment&quot;).removeClass(&quot;red&quot;);
            $(&quot;#nickNameComment&quot;).addClass(&quot;green&quot;);
            $(&quot;#nickNameComment&quot;).text(&quot;* 사용가능한 닉네임 입니다.&quot;);
        }
        $.ajax({
            type : &quot;POST&quot;,
            url : &quot;joinCheck.php&quot;,
            data : {&quot;nickName&quot; : $(&quot;#nickName&quot;).val(), &quot;type&quot; : &quot;isNickCheck&quot;},
            dataType : &quot;json&quot;,
            success : function(data){
                if(data.result == &quot;good&quot;){
                    $(&quot;#nickNameComment&quot;).text(&quot;* 사용 가능한 닉네임 입니다&quot;);
                    $(&quot;#nickNameComment&quot;).removeClass(&quot;red&quot;);
                    $(&quot;#nickNameComment&quot;).addClass(&quot;green&quot;);
                     isNickCheck = true;
                }else {
                    $(&quot;#nickName&quot;).val('');
                    $(&quot;#nickNameComment&quot;).text(&quot;* 사용 중인 닉네임 입니다&quot;);
                    $(&quot;#nickNameComment&quot;).removeClass(&quot;green&quot;);
                    $(&quot;#nickNameComment&quot;).addClass(&quot;red&quot;);
                     isNickCheck = false;
                     return false;  
                }
            },
            error : function(request, status, error){
                console.log(&quot;request&quot; + request);
                console.log(&quot;status&quot; + status);
                console.log(&quot;error&quot; + error);
            }
        });

    }
    // 핸드폰 유효성
    function chkYouPhone(){
        isPhoneCheck = false;
         $(&quot;#youPhoneComment&quot;).addClass(&quot;red&quot;);
        let getYouPhone = RegExp(/01[016789]-[^0][0-9]{3,4}-[0-9]{4}/);
        if($(&quot;#youPhone&quot;).val() == ''){
            $(&quot;#youPhoneComment&quot;).text(&quot;* 연락처를 입력해주세요!&quot;);
            $(&quot;#youPhone&quot;).focus();
            return false;
        }else if(!getYouPhone.test($(&quot;#youPhone&quot;).val())){
            $(&quot;#youPhoneComment&quot;).text(&quot;* 휴대폰 번호가 정확하지 않습니다.(000-0000-0000)&quot;);
            $(&quot;#youPhone&quot;).val('');
            $(&quot;#youPhone&quot;).focus();
            return false;
        }
        $.ajax({
            type : &quot;POST&quot;,
            url : &quot;joinCheck.php&quot;,
            data : {&quot;youPhone&quot; : $(&quot;#youPhone&quot;).val(), &quot;type&quot; : &quot;isPhoneCheck&quot;},
            dataType : &quot;json&quot;,
            success : function(data){
                if(data.result == &quot;good&quot;){
                    $(&quot;#youPhoneComment&quot;).text(&quot;* 사용 가능한 전화번호 입니다&quot;);
                    $(&quot;#youPhoneComment&quot;).removeClass(&quot;red&quot;);
                    $(&quot;#youPhoneComment&quot;).addClass(&quot;green&quot;);
                    isPhoneCheck = true;
                }else {
                    $(&quot;#youPhone&quot;).val('');
                    $(&quot;#youPhoneComment&quot;).removeClass(&quot;green&quot;);
                    $(&quot;#youPhoneComment&quot;).addClass(&quot;red&quot;);
                    $(&quot;#youPhoneComment&quot;).text(&quot;* 사용 중인 전화번호 입니다&quot;);
                    isPhoneCheck = false;
                    return false;  
                }
            },
            error : function(request, status, error){
                console.log(&quot;request&quot; + request);
                console.log(&quot;status&quot; + status);
                console.log(&quot;error&quot; + error);
            }
        });


    }
    // 비밀번호 유효성 검사
    function chkYouPass(){
        isPassCheck=false;

        let getYouPass = $(&quot;#youPass&quot;).val();
        let getYouPassNum = getYouPass.search(/[0-9]/g);
        let getYouPassEng = getYouPass.search(/[a-z]/ig);
        let getYouPassSpe = getYouPass.search(/[`~!@@#$%^&amp;amp;*|₩₩₩'₩&quot;;:₩/?]/gi);

        $(&quot;#youPassComment&quot;).addClass(&quot;red&quot;);
        if($(&quot;#youPass&quot;).val() == ''){
            $(&quot;#youPassComment&quot;).text(&quot;* 비밀번호를 입력해주세요!&quot;);
            $(&quot;#youPass&quot;).focus();
            return false;
            // 8~20자이내, 공백X, 영문, 숫자, 특수문자
        }else if(getYouPass.length &amp;lt; 8 || getYouPass.length &amp;gt; 20){
            $(&quot;#youPassComment&quot;).text(&quot; * 8자리 ~ 20자리 이내로 입력해주세요&quot;);
            $(&quot;#youPass&quot;).focus();
            return false;
        } else if (getYouPass.search(/\s/) != -1){
            $(&quot;#youPassComment&quot;).text(&quot;* 비밀번호는 공백없이 입력해주세요!&quot;);
            $(&quot;#youPass&quot;).focus();
            return false;
        } else if (getYouPassNum &amp;lt; 0 || getYouPassEng &amp;lt; 0 || getYouPassSpe &amp;lt; 0 ){
            $(&quot;#youPassComment&quot;).text(&quot;* 영문, 숫자, 특수문자를 혼합하여 입력해주세요!&quot;);
            $(&quot;#youPass&quot;).focus();
            return false;
        }else{
            $(&quot;#youPassComment&quot;).removeClass(&quot;red&quot;);
            $(&quot;#youPassComment&quot;).addClass(&quot;green&quot;);
            $(&quot;#youPassComment&quot;).text(&quot;* 사용가능합니다&quot;);
        }
        // 비밀번호 확인 유효성 검사
        $(&quot;#youPassCComment&quot;).addClass(&quot;red&quot;);
        if($(&quot;#youPassC&quot;).val() == ''){
            $(&quot;#youPassCComment&quot;).text(&quot;* 확인 비밀번호를 입력해주세요!&quot;);
            $(&quot;#youPassC&quot;).focus();
            return false;
            // 비밀번호 동일한지 체크
        }else if($(&quot;#youPass&quot;).val() !== $(&quot;#youPassC&quot;).val()){
            $(&quot;#youPassCComment&quot;).text(&quot;* 비밀번호가 일치하지 않습니다.&quot;);
            return false;
        }else{
            $(&quot;#youPassCComment&quot;).text(&quot;&quot;);
            isPassCheck = true;
        }
    }
    //이름 유효성 검사
    function chkYouName(){
        isNameCheck=false;
        $(&quot;#youNameComment&quot;).addClass(&quot;red&quot;);
        let getYouName = RegExp(/^[가-힣]+$/);
        if($(&quot;#youName&quot;).val() == ''){
            $(&quot;#youNameComment&quot;).text(&quot;* 이름을 입력해주세요!&quot;);
            $(&quot;#youName&quot;).focus();
            return false;
        }else if(!getYouName.test($(&quot;#youName&quot;).val())){
            $(&quot;#youNameComment&quot;).text(&quot;* 이름은 한글만 사용 가능합니다.&quot;);
            $(&quot;#youName&quot;).val('');
            $(&quot;#youName&quot;).focus();
            return false;
        }else if($(&quot;#youName&quot;).val().length &amp;lt; 2 || $(&quot;#youName&quot;).val().length &amp;gt; 10){
            $(&quot;#youNameComment&quot;).text(&quot;* 이름은 2~10글자까지만 가능합니다.&quot;);
            $(&quot;#youName&quot;).val('');
            $(&quot;#youName&quot;).focus();
            return false;
        }else{
            $(&quot;#youNameComment&quot;).removeClass(&quot;red&quot;);
            $(&quot;#youNameComment&quot;).addClass(&quot;green&quot;);
            $(&quot;#youNameComment&quot;).text(&quot;* 사용가능합니다&quot;);
            isNameCheck = true;
        }
    }
    // 생년월일 유효성 검사
    function chkYouBirth(){
        isBirthCheck = false;
        $(&quot;#youBirthComment&quot;).addClass(&quot;red&quot;);
        let getYouBirth = RegExp(/^(19[0-9][0-9]|20\d{2})-(0[0-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/);
        if($(&quot;#youBirth&quot;).val() == ''){
            $(&quot;#youBirthComment&quot;).text(&quot;* 생년월일을 입력해주세요!&quot;);
            $(&quot;#youBirth&quot;).focus();
            return false;
        }else if(!getYouBirth.test($(&quot;#youBirth&quot;).val())){
            $(&quot;#youBirthComment&quot;).text(&quot;* 생년월일 형식이 정확하지 않습니다.(YYYY-MM-DD)&quot;);
            $(&quot;#youBirth&quot;).val('');
            $(&quot;#youBirth&quot;).focus();
            return false;
        }else{
            $(&quot;#youBirthComment&quot;).removeClass(&quot;red&quot;);
            $(&quot;#youBirthComment&quot;).addClass(&quot;green&quot;);
            $(&quot;#youBirthComment&quot;).text(&quot;* 사용가능합니다 !&quot;);
            isBirthCheck = true;
        }
    }

    // 윈도우 로드시 window.onload 함수 쓴것과 같음
    // 각 input스타일에서 포커스아웃할때(바깥클릭 and tab클릭)실행되게 해놓은 함수
    $( document ).ready(function() {
        $('#memberID').blur(function(){
            chkMemberId();
        });
        $('#youPass, #youPassC').blur(function(){
            chkYouPass();
        });
        $('#youName').blur(function(){
            chkYouName();
        });
        $('#youPhone').blur(function(){
            chkYouPhone();
        });
        $('#nickName').blur(function(){
            chkNickName();
        });
        $('#youBirth').blur(function(){
            chkYouBirth();
        });
    }); 


    function joinChecks(){
        if (!isEmailCheck || !isNickCheck || !isPhoneCheck || !isNameCheck || !isBirthCheck || !isPassCheck) {
        // 위 변수 중 하나라도 false일 때 실행되는 코드
        switch (false) {
                case isEmailCheck:
                    // isEmailCheck가 false일 때 실행되는 코드
                    chkMemberId();
                    break;
                case isPassCheck:
                    // isPassCheck가 false일 때 실행되는 코드
                    chkYouPass();
                    break;
                case isNameCheck:
                    // isNameCheck가 false일 때 실행되는 코드
                    chkYouName();
                    break;
                case isPhoneCheck:
                    // isPhoneCheck가 false일 때 실행되는 코드
                    chkYouPhone();
                    break;
                case isNickCheck:
                    // isNickCheck가 false일 때 실행되는 코드
                    chkNickName();
                    break;
                case isBirthCheck:
                    // isBirthCheck가 false일 때 실행되는 코드
                    chkYouBirth();
                    break;
                default:
                    break;
            }
            return false;
        }
    }
&amp;lt;/script&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;p data-ke-size=&quot;size16&quot;&gt;ajax를 사용하였을때 focus를 하니까 ...&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sql 실행중에 tab키가 눌려 포커스가 변경되어 로직이 꼬이기도 했어요 ... 그래서 다 빼버린&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;ajax를 써서 체크하는 부분의 php도 보고갈게요 !&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;type에 따라 각각의 sql을 실행되요 !&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684172553625&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    include &quot;../connect/connect.php&quot;;
    $type = $_POST['type'];
    $jsonResult = &quot;bad&quot;;
    
    if( $type == &quot;isMemberIdChk&quot;){
        $youEmail = $connect -&amp;gt; real_escape_string(trim($_POST['youEmail']));
        $sql = &quot;SELECT youEmail FROM members2 WHERE youEmail = '{$youEmail}'&quot;;
    }
    if( $type == &quot;isNickCheck&quot;){
        $nickName = $connect -&amp;gt; real_escape_string(trim($_POST['nickName']));
        $sql = &quot;SELECT nickName FROM members2 WHERE nickName = '{$nickName}'&quot;;
    }
    if( $type == &quot;isPhoneCheck&quot;){
        $youPhone = $connect -&amp;gt; real_escape_string(trim($_POST['youPhone']));
        $sql = &quot;SELECT youPhone FROM members2 WHERE youPhone = '{$youPhone}'&quot;;
    }
    $result = $connect -&amp;gt; query($sql);
    if( $result -&amp;gt; num_rows == 0 ){
        $jsonResult = &quot;good&quot;;
    }
    echo json_encode(array(&quot;result&quot; =&amp;gt; $jsonResult));
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>php ajax</category>
      <category>php ajax 유효성체크</category>
      <category>비밀번호 정규식</category>
      <category>이메일 정규식</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/129</guid>
      <comments>https://getgrovy.tistory.com/129#entry129comment</comments>
      <pubDate>Mon, 15 May 2023 23:58:29 +0900</pubDate>
    </item>
    <item>
      <title>PHP - Ajax 써보기</title>
      <link>https://getgrovy.tistory.com/128</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;PHP에서 Ajax를 써볼게요&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 PHP소스 일부분이에요&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684086394789&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;main&amp;gt;
    &amp;lt;div class=&quot;over&quot;&amp;gt;
        &amp;lt;label for=&quot;youEmail&quot; class=&quot;required&quot;&amp;gt;이메일&amp;lt;/label&amp;gt;
        &amp;lt;input type=&quot;email&quot; id=&quot;youEmail&quot; name=&quot;youEmail&quot; class=&quot;inputStyle&quot;  placeholder=&quot;이메일을 적어주세요&quot; &amp;gt;
        &amp;lt;a href=&quot;#a&quot; class=&quot;youCheck btnStyle2&quot; onclick='emailChecking()'&amp;gt;이메일 중복검사&amp;lt;/a&amp;gt;
        &amp;lt;p class=&quot;msg&quot; id=&quot;youEmailComment&quot;&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;!-- 이메일이 존재합니다. --&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&quot;over&quot;&amp;gt;
        &amp;lt;label for=&quot;youNick&quot; class=&quot;required&quot;&amp;gt;닉네임&amp;lt;/label&amp;gt;
        &amp;lt;input type=&quot;text&quot; id=&quot;youNick&quot; name=&quot;youNick&quot; class=&quot;inputStyle&quot;  placeholder=&quot;닉네임을 적어주세요&quot; &amp;gt;
        &amp;lt;a href=&quot;#a&quot; class=&quot;youCheck btnStyle2&quot;&amp;gt;닉네임 중복검사&amp;lt;/a&amp;gt;
        &amp;lt;p class=&quot;msg&quot; id=&quot;youNickComment&quot;&amp;gt;&amp;lt;/p&amp;gt; &amp;lt;!--닉네임이 존재합니다. --&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/main&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에 onclick이벤트에서 jquery를 이용해서 ajax를 써볼거에요 !&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684086465920&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://code.jquery.com/jquery-3.6.4.js&quot; integrity=&quot;sha256-a9jBBRygX1Bh5lt8GZjXDzyOB+bWve9EiO7tROUtj/E=&quot; crossorigin=&quot;anonymous&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;
    let isEmailCheck = false;
    function emailChecking(){
        let youEmail = $(&quot;#youEmail&quot;).val();

        if(youEmail == null || youEmail ==''){
            $(&quot;#youEmailComment&quot;).text(&quot; * 이메일을 입력해 주세요&quot;);
        }else{
            $.ajax({
                type : &quot;POST&quot;,
                url : &quot;joinCheck.php&quot;,
                data : {&quot;youEmail&quot; : youEmail , &quot;type&quot;:isEmailCheck},
                dataType : &quot;json&quot;,

                success : function(data){
                    if(data.result == &quot;good&quot;){
                        $(&quot;#youEmailComment&quot;).text(&quot;사용가능한 이메일입니다.&quot;);
                        isEmailCheck = true;
                    }else{
                        $(&quot;#youEmailComment&quot;).text(&quot;이미 사용중인 이메일입니다.&quot;);
                        isEmailCheck = false;
                    }
                },
                error : function(requst, status, error){
                    console.log(&quot;requst : &quot; + requst);
                    console.log(&quot;status : &quot; + status);
                    console.log(&quot;error : &quot; + error);
                }
            })
        }
    }

&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요렇게 $.ajax를 써서 호출을 해주구요&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ajax문법을 써서 joinCheck를 호출했어요 !&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684086537230&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    include &quot;../connect/connect.php&quot;;

    // Select youEmail from adminMembers where youEmail = {}

    $type = $_POST['type'];
    $jsonResult = &quot;bad&quot;;
    
    if($type == &quot;isEmailCheck&quot;){
        $email = $_POST['youEmail'];
        $youEmail = $connect -&amp;gt; real_escape_string(trim($email));
        $sql.= &quot;SELECT adminEmail from adminmembers where adminEmail = '{$youEmail}'&quot;;
    }

    $result = $connect -&amp;gt; query($sql);
    
    if($result -&amp;gt; num_rows ==0){
        $jsonResult = &quot;good&quot;;
    }
    echo json_encode(array(&quot;result&quot; =&amp;gt; $jsonResult));
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요긴 joinCheck.php입니다&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;내용을 간략히 말하자면 이메일을 조회해서 값이 있다면 bad를 반환 없다면 good을 반환하는 로직이에요 !&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;&lt;a href=&quot;https://github.com/getGrovy/php2023-1/blob/57c284111eb2d6af4da2b48349957e1a5dbfc92f/admin/joinSave.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;요기에 !&amp;nbsp;&lt;/a&gt;&lt;/p&gt;</description>
      <category>jQuery Ajax</category>
      <category>php ajax</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/128</guid>
      <comments>https://getgrovy.tistory.com/128#entry128comment</comments>
      <pubDate>Sun, 14 May 2023 23:55:09 +0900</pubDate>
    </item>
    <item>
      <title>웹디자인 기능사 연습문제 2</title>
      <link>https://getgrovy.tistory.com/127</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;2023웹디 기능사 실기문제를 만들어볼거에요&lt;/h2&gt;
&lt;p&gt;&lt;iframe src=&quot;https://getgrovy.github.io/web2023/webd/site/index.html&quot; width=&quot;2000px&quot; height=&quot;800px&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&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;요 레이아웃을 보구 만들었어요&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;785&quot; data-origin-height=&quot;783&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LAFuD/btsfdbHInRZ/JjXgJKSO8MMKaGhbB4BGS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LAFuD/btsfdbHInRZ/JjXgJKSO8MMKaGhbB4BGS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LAFuD/btsfdbHInRZ/JjXgJKSO8MMKaGhbB4BGS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLAFuD%2FbtsfdbHInRZ%2FJjXgJKSO8MMKaGhbB4BGS1%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;785&quot; height=&quot;783&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;783&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;html부분&lt;/p&gt;
&lt;pre id=&quot;code_1684085174255&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;ko&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;title&amp;gt;강원천문대&amp;lt;/title&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/style.css&quot;&amp;gt;
    &amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script src=&quot;script/script.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;div class=&quot;wrap&quot;&amp;gt;
        &amp;lt;div id=&quot;header&quot;&amp;gt;
            &amp;lt;div class=&quot;header__left&quot;&amp;gt;
                &amp;lt;h1 class=&quot;logo&quot;&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;강원천문대&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&quot;header__right&quot;&amp;gt;
                &amp;lt;ul&amp;gt;
                    &amp;lt;li&amp;gt;
                        &amp;lt;a href=&quot;#&quot;&amp;gt;강원천문대&amp;lt;/a&amp;gt;
                        &amp;lt;ul class=&quot;submenu&quot;&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;천문대 소개&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;인사말&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;오시는길&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;/ul&amp;gt;
                    &amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;
                        &amp;lt;a href=&quot;#&quot;&amp;gt;이용안내&amp;lt;/a&amp;gt;
                        &amp;lt;ul class=&quot;submenu&quot;&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;프로그램&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;관람시간표&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;이달의 별자리&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;/ul&amp;gt;
                    &amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;
                        &amp;lt;a href=&quot;#&quot;&amp;gt;천문대예약&amp;lt;/a&amp;gt;
                        &amp;lt;ul class=&quot;submenu&quot;&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;예약하기&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;예약확인&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;예약취소&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;/ul&amp;gt;
                    &amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;
                        &amp;lt;a href=&quot;#&quot;&amp;gt;커뮤니티&amp;lt;/a&amp;gt;
                        &amp;lt;ul class=&quot;submenu&quot;&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;공지사항&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;방문후기&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;자유게시판&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;/ul&amp;gt;
                    &amp;lt;/li&amp;gt;
                &amp;lt;/ul&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div id=&quot;slider&quot;&amp;gt;
            &amp;lt;div class=&quot;sliderWrap&quot;&amp;gt;
                &amp;lt;div class=&quot;slider&quot;&amp;gt;
                    &amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;images/slider01.jpg&quot; alt=&quot;천문과학교육관 시 소개&quot;&amp;gt;&amp;lt;/a&amp;gt;
                    &amp;lt;div class=&quot;text&quot;&amp;gt;
                        &amp;lt;h2&amp;gt;천문과학교육관 시설 소개&amp;lt;/h2&amp;gt;
                        &amp;lt;p&amp;gt;영상강의실로 놀러오세요!&amp;lt;/p&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;div class=&quot;slider&quot;&amp;gt;
                    &amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;images/slider02.jpg&quot; alt=&quot;천문과학교육관 이용 안내&quot;&amp;gt;&amp;lt;/a&amp;gt;
                    &amp;lt;div class=&quot;text&quot;&amp;gt;
                        &amp;lt;h2&amp;gt;천문과학교육관 이용 안내&amp;lt;/h2&amp;gt;
                        &amp;lt;p&amp;gt;어린이를 위한 천문 과학관!&amp;lt;/p&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;div class=&quot;slider&quot;&amp;gt;
                    &amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;images/slider03.jpg&quot; alt=&quot;천문과학교육관 소개&quot;&amp;gt;&amp;lt;/a&amp;gt;
                    &amp;lt;div class=&quot;text&quot;&amp;gt;
                        &amp;lt;h2&amp;gt;별을 보는 고요한 정상&amp;lt;/h2&amp;gt;
                        &amp;lt;p&amp;gt;강원천문대로 놀러오세요!&amp;lt;/p&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div id=&quot;contents&quot;&amp;gt;
            &amp;lt;section class=&quot;info&quot;&amp;gt;
                &amp;lt;h3 class=&quot;info-menu&quot;&amp;gt;
                    &amp;lt;a href=&quot;#&quot; class=&quot;active&quot;&amp;gt;공지사항&amp;lt;/a&amp;gt; |
                    &amp;lt;a href=&quot;#&quot;&amp;gt;갤러리&amp;lt;/a&amp;gt;
                &amp;lt;/h3&amp;gt;
                &amp;lt;div class=&quot;info-cont&quot;&amp;gt;
                    &amp;lt;ul class=&quot;notice&quot;&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;강원천문대 2023년 휴관일 안내&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;2023.05.11&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;강원천문대 2023년 온라인 예매&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;2023.05.10&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;강원천문대 휴관일 및 이벤트 안내&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;2023.05.09&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;강원천문대 휴관일 안내&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;2023.05.08&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                    &amp;lt;/ul&amp;gt;
                    &amp;lt;ul class=&quot;gallery&quot;&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;images/gallery01.jpg&quot; alt=&quot;천문대1&quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;images/gallery02.jpg&quot; alt=&quot;천문대2&quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;images/gallery03.jpg&quot; alt=&quot;천문대3&quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                    &amp;lt;/ul&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- //content1 --&amp;gt;
            &amp;lt;section class=&quot;banner&quot;&amp;gt;
                &amp;lt;h3&amp;gt;강원천문대 온라인 예매하기&amp;lt;/h3&amp;gt;
                &amp;lt;a href=&quot;#&quot;&amp;gt;예매하기&amp;lt;/a&amp;gt;
            &amp;lt;/section&amp;gt;
            &amp;lt;!-- banner --&amp;gt;
            &amp;lt;article class=&quot;link&quot;&amp;gt;
                &amp;lt;h3&amp;gt;이달의 별자리&amp;lt;/h3&amp;gt;
                &amp;lt;a href=&quot;#&quot;&amp;gt;바로가기&amp;lt;/a&amp;gt;
            &amp;lt;/article&amp;gt;
            &amp;lt;!-- link --&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div id=&quot;footer&quot;&amp;gt;
            &amp;lt;div class=&quot;footer1&quot;&amp;gt;
                &amp;lt;h4&amp;gt;강원천문대&amp;lt;/h4&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&quot;footer2&quot;&amp;gt;
                &amp;lt;div class=&quot;footer2-1&quot;&amp;gt;
                    &amp;lt;ul&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;개인정보처리방침&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;저작권보호정책&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;이메일무단수집거부&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;cctv설치 및 운영지침&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                    &amp;lt;/ul&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;div class=&quot;footer2-2&quot;&amp;gt;
                    COPYRIGHT &amp;amp;copy; 2023 All Right Reserved
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;script src=&quot;script/script.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;css 부분&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684085125035&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@charset &quot;UTF-8&quot;;
* {
    margin: 0;
    padding: 0;
    color: #333333;
}
li {
    list-style: none;
}
a {
    text-decoration: none;
    color: #333333;
}
img {
    vertical-align: top;
}
.wrap{
    width: 1200px;
    margin: 0 auto;
}
/* header */

#header {
    width: 1200px;
    display: flex;
    background-color: #0C51A6;
}
.header__left {
    width: 20%;
    height: 100px;
}
.header__left a {
    display: inline-block;
    padding: 30px 40px;
    color: #fff;
}
.header__right {
    z-index: 1000;
    width: 80%;
    height: 100px;
    text-align: right;
}
.header__right &amp;gt; ul {
    margin-top: 24px;
}
.header__right &amp;gt; ul &amp;gt; li {
    display: inline-block;
    position: relative;
    
}
.header__right &amp;gt; ul &amp;gt; li &amp;gt; a {
    padding: 15px 45px;
    background-color: #052B5A;
    color: #fff;
    display: block;
}
.header__right &amp;gt; ul &amp;gt; li &amp;gt; a:hover {
    background-color: #021B3A;
}
.header__right &amp;gt; ul &amp;gt; li &amp;gt; ul {
    display: none;
    text-align: center;
    background-color: #fff;
    position: absolute;
    width: 100%;
    top:51px;
    left: 0;
    
    /* z-index: 1000; */
}
.header__right &amp;gt; ul &amp;gt; li &amp;gt; ul &amp;gt; li &amp;gt; a {
    padding: 10px 20px;
    display: block;
}
.header__right &amp;gt; ul &amp;gt; li &amp;gt; ul &amp;gt; li &amp;gt; a:hover {
    background-color: #6189B9;
}
/* slider */
#slider {
    width: 1200px;
    height: 300px;
    background-color: #BD9494;
}
#slider .sliderWrap {
    position: relative;
}
#slider .sliderWrap .slider {
    position: absolute;
    left: 0;
    top :0;
}
#slider .sliderWrap .slider img{
    vertical-align: top;
}
#slider .sliderWrap .slider .text {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    background-color: rgba(0,0,0,0.4);
    padding: 20px 30px;
}
#slider .sliderWrap .slider .text h2 {
    color: #fff;
}
#slider .sliderWrap .slider .text p {
    color: #fff;
}
/* banner */
#contents {
    width: 1200px;
    height: 200px;
    display: flex;
}
#contents .info {
    width: 400px;
    height: 200px;
    background-color: #78ADCC;
    padding: 20px;
    box-sizing: border-box;
}
#contents .info h3 {
    margin-bottom: 10px;
    font-size: 22px;
}
#contents .info h3 a.active {
    text-decoration: underline;
}

#contents .info .notice li {
    display: flex;
}
#contents .info .notice li a {
    width: 75%;
    font-size: 16px;
    line-height: 1.8;
}
#contents .info .notice li a:hover {
    text-decoration: underline;
}
#contents .info .notice li span {
    width: 25%;
    text-align: right;
}
#contents .info .gallery {
    display: flex;
    
}
#contents .info .gallery li{
    padding-top: 3px;
    margin-right: 17px;
}



.content1 {
    width: 33.3333%;
    height: 200px;
    background-color: #92D3E7;
}
.banner {
    width: 33.3333%;
    height: 200px;
    background-color: #3F8AA1;
    background-image: url(../images/banner.jpg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}
.banner h3 {
    color: #fff;
}
.banner a {
    background-color: rgba(255,255,255,0.4);
    border-radius: 50px;
    padding: 10px 20px;
    margin-top: 10px;
}
.banner a:hover {
    background-color: rgba(112, 102, 252, 0.4);
}
.link {
    width: 33.3333%;
    height: 200px;
    background-image: url(../images/link.jpg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}
.link h3 {
    color: #fff;
}
.link a{
    background-color: rgba(255,255,255,0.4);
    border-radius: 50px;
    padding: 10px 20px;
    margin-top: 10px;
}
.link a:hover{
    background-color: rgba(112, 102, 252, 0.4);
}
/* footer */
#footer {
    width: 1200px;
    display: flex;
    height: 100px;
    background-color: rgb(66, 100, 250);
}
.footer1 {
    width: 20%;
    height: 100px;
    
}
.footer1 h4 {
    font-size: 30px;
    color: #cdcdcd;
    padding: 30px 30px;
}
.footer2 {
    width: 80%;
    height: 100px;
}
.footer2-1 {
    width: 100%;
    height: 50px;
    text-align: center;
}
.footer2-1 li{
    display: inline-block;
    border-right: 1px solid #fff;
}
.footer2-1 li:last-child{
    border: 0;
}
.footer2-1 ul{
    padding-top: 10px;
}
.footer2-1 ul a{
    padding: 10px;
    color:  #fff;

}
.footer2-1 ul a:hover{
    text-decoration: underline;
}
.footer2-2 {
    width: 100%;
    height: 50px;
    text-align: center;
    padding-top: 10px;
    box-sizing: border-box;
    color:  #fff;

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 자바스크립트 부분&lt;/p&gt;
&lt;pre id=&quot;code_1684085283657&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(document).ready(function(){  
    // 메뉴 : 하나씩 나오기
    $(&quot;.header__right &amp;gt; ul &amp;gt; li&quot;).mouseover(function(){
        $(this).find(&quot;.submenu&quot;).stop().slideDown(200);
    }) 
    $(&quot;.header__right &amp;gt; ul &amp;gt; li&quot;).mouseout(function(){
         $(this).find(&quot;.submenu&quot;).stop().slideUp(200);
    }) 

    // $(&quot;.header__right &amp;gt; ul &amp;gt; li&quot;).focusin(function(){
    //     $(this).find(&quot;.submenu&quot;).stop().slideDown(200);
    // }) 
    // $(&quot;.header__right &amp;gt; ul &amp;gt; li&quot;).focusout(function(){
    //      $(this).find(&quot;.submenu&quot;).stop().slideUp(200);
    // }) 
    
    // 슬라이드효과
    let currentIndex = 0;
    const slider = $(&quot;.slider&quot;);
    //모든이미지 숨김 첫이미지만 나옴
    slider.hide().first().show(); 

    setInterval(function(){
        let nextIndex = (currentIndex + 1) % slider.length;

        slider.eq(currentIndex).fadeOut(1200);
        slider.eq(nextIndex).fadeIn(1200);

        currentIndex = nextIndex;
    },3000)

    // 탭매뉴 
    const tabBtn = $(&quot;.info-menu &amp;gt; a&quot;);
    const tabCont = $(&quot;.info-cont &amp;gt; ul&quot;);
    tabCont.hide().eq(0).show();

    tabBtn.on(&quot;click&quot;,function(){
        const index = $(this).index();
        $(this).addClass(&quot;active&quot;).siblings().removeClass(&quot;active&quot;);
        tabCont.eq(index).show().siblings().hide();
    })
    
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메뉴&amp;nbsp;:&amp;nbsp;하나씩&amp;nbsp;나오기 &lt;br /&gt;.header__right&amp;nbsp;클래스&amp;nbsp;하위의&amp;nbsp;ul&amp;nbsp;태그의&amp;nbsp;하위&amp;nbsp;li&amp;nbsp;태그에&amp;nbsp;마우스를&amp;nbsp;올리면,&amp;nbsp;해당&amp;nbsp;li&amp;nbsp;태그&amp;nbsp;하위의&amp;nbsp;.submenu&amp;nbsp;클래스를&amp;nbsp;슬라이드&amp;nbsp;다운&amp;nbsp;시킨다. &lt;br /&gt;.header__right&amp;nbsp;클래스&amp;nbsp;하위의&amp;nbsp;ul&amp;nbsp;태그의&amp;nbsp;하위&amp;nbsp;li&amp;nbsp;태그에서&amp;nbsp;마우스를&amp;nbsp;뗄&amp;nbsp;때,&amp;nbsp;해당&amp;nbsp;li&amp;nbsp;태그&amp;nbsp;하위의&amp;nbsp;.submenu&amp;nbsp;클래스를&amp;nbsp;슬라이드&amp;nbsp;업&amp;nbsp;시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;슬라이드&amp;nbsp;효과 &lt;br /&gt;slider&amp;nbsp;클래스를&amp;nbsp;가진&amp;nbsp;요소를&amp;nbsp;찾아서&amp;nbsp;모두&amp;nbsp;숨기고,&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;이미지만&amp;nbsp;보이도록&amp;nbsp;한다. &lt;br /&gt;3초마다,&amp;nbsp;현재&amp;nbsp;이미지(currentIndex)를&amp;nbsp;기준으로&amp;nbsp;다음&amp;nbsp;이미지(nextIndex)를&amp;nbsp;결정한다. &lt;br /&gt;현재&amp;nbsp;이미지는&amp;nbsp;1.2초&amp;nbsp;동안&amp;nbsp;페이드&amp;nbsp;아웃되고,&amp;nbsp;다음&amp;nbsp;이미지는&amp;nbsp;1.2초&amp;nbsp;동안&amp;nbsp;페이드&amp;nbsp;인된다. &lt;br /&gt;currentIndex&amp;nbsp;변수를&amp;nbsp;nextIndex로&amp;nbsp;업데이트한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;탭 메뉴 ( 공지사항 )&lt;br /&gt;.info-menu&amp;nbsp;클래스&amp;nbsp;하위의&amp;nbsp;a&amp;nbsp;태그를&amp;nbsp;클릭하면,&amp;nbsp;클릭한&amp;nbsp;a&amp;nbsp;태그의&amp;nbsp;인덱스&amp;nbsp;값을&amp;nbsp;가져와서&amp;nbsp;해당&amp;nbsp;인덱스&amp;nbsp;값을&amp;nbsp;가진&amp;nbsp;.info-cont&amp;nbsp;클래스&amp;nbsp;하위&amp;nbsp;ul&amp;nbsp;태그만&amp;nbsp;보이고,&amp;nbsp;나머지는&amp;nbsp;숨긴다. &lt;br /&gt;클릭한&amp;nbsp;a&amp;nbsp;태그에는&amp;nbsp;active&amp;nbsp;클래스를&amp;nbsp;추가하고,&amp;nbsp;나머지&amp;nbsp;a&amp;nbsp;태그에서는&amp;nbsp;active&amp;nbsp;클래스를&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;포인트 !&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;html을 먼저 만들고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;css로 슬라이드가 보여질 화면과 sub메뉴를 완성시킨뒤&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;script를 작업해야 에러잡기도 쉽고 코드 짜기도 쉬워요 !&amp;nbsp;&lt;/p&gt;</description>
      <category>html</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/127</guid>
      <comments>https://getgrovy.tistory.com/127#entry127comment</comments>
      <pubDate>Sat, 13 May 2023 23:39:39 +0900</pubDate>
    </item>
    <item>
      <title>웹디자인 기능사 연습문제 1</title>
      <link>https://getgrovy.tistory.com/126</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;2023웹디 기능사 실기문제를 만들어볼거에요&lt;/h2&gt;
&lt;p&gt;&lt;iframe src=&quot;https://getgrovy.github.io/web2023/webd/site02/index.html&quot; width=&quot;2000px&quot; height=&quot;800px&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&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;요 레이아웃을 보구 만들었어요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;782&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NvMqW/btsfpepurVg/tKPdBNjZZ5Llv1YLX7PY8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NvMqW/btsfpepurVg/tKPdBNjZZ5Llv1YLX7PY8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NvMqW/btsfpepurVg/tKPdBNjZZ5Llv1YLX7PY8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNvMqW%2FbtsfpepurVg%2FtKPdBNjZZ5Llv1YLX7PY8K%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;729&quot; height=&quot;782&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;782&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;&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;html부분&lt;/p&gt;
&lt;pre id=&quot;code_1684085174255&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;ko&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;title&amp;gt;산업대학교&amp;lt;/title&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/style.css&quot;&amp;gt;
    &amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script src=&quot;script/script.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;div class=&quot;wrap&quot;&amp;gt;
        &amp;lt;header id=&quot;header&quot;&amp;gt;
            &amp;lt;div class=&quot;container&quot;&amp;gt;
                &amp;lt;h1 class=&quot;logo&quot;&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;산업대학교&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;
                &amp;lt;nav class=&quot;nav&quot;&amp;gt;
                    &amp;lt;ul&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;대학소개&amp;lt;/a&amp;gt;
                            &amp;lt;ul class=&quot;submenu&quot;&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;총장인사말&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;학교소개&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;홍보관&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;캠퍼스안내&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;/ul&amp;gt;
                        &amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;입학안내&amp;lt;/a&amp;gt;
                            &amp;lt;ul class=&quot;submenu&quot;&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;수시모집&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;정시모집&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;편입학&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;재외국인&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;/ul&amp;gt;
                        &amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;정보서비스&amp;lt;/a&amp;gt;
                            &amp;lt;ul class=&quot;submenu&quot;&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;정보알림&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;정보공개&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;정보서비스안내&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;/ul&amp;gt;
                        &amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;커뮤니티&amp;lt;/a&amp;gt;
                            &amp;lt;ul class=&quot;submenu&quot;&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;공지사항&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;참여게시판&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                                &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;자료실&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;/ul&amp;gt;
                        &amp;lt;/li&amp;gt;
                    &amp;lt;/ul&amp;gt;
                &amp;lt;/nav&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/header&amp;gt;
        &amp;lt;!-- header --&amp;gt;
        &amp;lt;aside id=&quot;slider&quot;&amp;gt;
            &amp;lt;div class=&quot;container&quot;&amp;gt;
                &amp;lt;div class=&quot;sliderWrap&quot;&amp;gt;
                    &amp;lt;div class=&quot;slider s1&quot;&amp;gt;
                        &amp;lt;img src=&quot;image/slider01.jpg&quot; alt=&quot;미래를 이끄는 열정&quot;&amp;gt;
                        &amp;lt;div class=&quot;text&quot;&amp;gt;
                            &amp;lt;h2&amp;gt;미래를 이끄는 &amp;lt;strong&amp;gt;열정&amp;lt;/strong&amp;gt;&amp;lt;/h2&amp;gt;
                            &amp;lt;p&amp;gt;산업대학교&amp;lt;/p&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;div class=&quot;slider s2&quot;&amp;gt;
                        &amp;lt;img src=&quot;image/slider02.jpg&quot; alt=&quot;미래를 이끄는 열정&quot;&amp;gt;
                        &amp;lt;div class=&quot;text&quot;&amp;gt;
                            &amp;lt;h2&amp;gt;미래를 이끄는 &amp;lt;strong&amp;gt;열정&amp;lt;/strong&amp;gt;&amp;lt;/h2&amp;gt;
                            &amp;lt;p&amp;gt;산업대학교&amp;lt;/p&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;div class=&quot;slider s3&quot;&amp;gt;
                        &amp;lt;img src=&quot;image/slider03.jpg&quot; alt=&quot;미래를 이끄는 열정&quot;&amp;gt;
                        &amp;lt;div class=&quot;text&quot;&amp;gt;
                            &amp;lt;h2&amp;gt;미래를 이끄는 &amp;lt;strong&amp;gt;열정&amp;lt;/strong&amp;gt;&amp;lt;/h2&amp;gt;
                            &amp;lt;p&amp;gt;산업대학교&amp;lt;/p&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/aside&amp;gt;
        &amp;lt;!-- slider --&amp;gt;
        &amp;lt;main id=&quot;main&quot;&amp;gt;
            &amp;lt;div class=&quot;container&quot;&amp;gt;
                &amp;lt;section class=&quot;notice&quot;&amp;gt;
                    &amp;lt;h3&amp;gt;공지사항&amp;lt;/h3&amp;gt;
                    &amp;lt;ul&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;2023년 신입생 모집중&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;2023.05.01&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;융합전공멘토링 학생 모집&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;2023.05.02&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;학과 및 학년 별 참여&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;2023.05.03&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;졸업생 취업박람회&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;2023.05.04&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
                    &amp;lt;/ul&amp;gt;
                &amp;lt;/section&amp;gt;
                &amp;lt;!-- notice --&amp;gt;
                &amp;lt;section class=&quot;gallery&quot;&amp;gt;
                    &amp;lt;h3&amp;gt;우리학교풍경&amp;lt;/h3&amp;gt;
                    &amp;lt;ul&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;image/gallery01.jpg&quot; alt=&quot;우리학교 풍경&quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;image/gallery03.jpg&quot; alt=&quot;우리학교 풍경&quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;image/gallery02.jpg&quot; alt=&quot;우리학교 풍경&quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                    &amp;lt;/ul&amp;gt;
                &amp;lt;/section&amp;gt;
                &amp;lt;!-- gallery --&amp;gt;
                &amp;lt;article class=&quot;banner&quot;&amp;gt;
                    &amp;lt;h3&amp;gt;산업대학교 &amp;lt;br&amp;gt;2023&amp;lt;br&amp;gt;체육대전&amp;lt;/h3&amp;gt;
                    &amp;lt;a href=&quot;#&quot;&amp;gt;바로가기&amp;lt;/a&amp;gt;
                &amp;lt;/article&amp;gt;
                &amp;lt;!-- banner --&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/main&amp;gt;
        &amp;lt;!-- main --&amp;gt;
        &amp;lt;footer id=&quot;footer&quot;&amp;gt;
            &amp;lt;div class=&quot;container&quot;&amp;gt;
                &amp;lt;div class=&quot;footer1&quot;&amp;gt;
                    &amp;lt;div class=&quot;footer1-1&quot;&amp;gt;
                        &amp;lt;ul&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;개인정보처리방침&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;정보 공개&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                            &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;홈페이지 운영지침&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                        &amp;lt;/ul&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;div class=&quot;footer1-2&quot;&amp;gt;
                        15073 경기도 안산시 산기대학로 237 (정왕동) 산업대학교 COPYRIGHT(C) ALL RIGHTS RESERVED.
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;div class=&quot;footer2&quot;&amp;gt;
                    &amp;lt;select name=&quot;&quot; id=&quot;&quot;&amp;gt;
                        &amp;lt;option &amp;gt;패밀리 사이트&amp;lt;/option&amp;gt;
                        &amp;lt;option value=&quot;1&quot;&amp;gt;서울 산업대학교&amp;lt;/option&amp;gt;
                        &amp;lt;option value=&quot;2&quot;&amp;gt;안양 산업대학교&amp;lt;/option&amp;gt;
                        &amp;lt;option value=&quot;3&quot;&amp;gt;부산 산업대학교&amp;lt;/option&amp;gt;
                    &amp;lt;/select&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/footer&amp;gt;
        &amp;lt;!-- footer --&amp;gt;
    &amp;lt;/div&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;css 부분&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684085125035&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;;

* {
    margin: 0;
    padding: 0;
    color: #333;
}
.wrap{
    width: 100%;
}
a {
    text-decoration: none;
    color: #333;
}
li {
    list-style: none;
}
img { 
    vertical-align: top;
}
/* container */
.container {
    width: 1200px;
    margin: 0 auto;
    height: inherit;
    
}
/* header */
#header {
    width: 100%;
    height: 100px;
    background-color: #EFEFEF;
    position: relative;
    z-index: 1000;
}
#header .container {
    display: flex;
    align-items: end;
    position: relative;
}
#header .container::after {
    content: '';
    width: 100%;
    height: 0;
    background-color: rgba(0,0,0,0.8);
    position: absolute;
    left: 0;
    top: 100px;
    z-index: -1;
    transition: all 0.4s;
}
#header .container.on::after {
    height: 160px;
}
#header .container .logo {
    width: 20%;
    padding: 30px 0;
}
#header .container .nav {
    width: 80%;
    text-align: right;
}
#header .container .nav &amp;gt; ul {
    display: flex;
    justify-content: right;
}
#header .container .nav &amp;gt; ul &amp;gt; li {
    position: relative;
}
#header .container .nav &amp;gt; ul &amp;gt; li &amp;gt; a {
    display: block;
    padding: 15px 40px;
    background-color: #FFE194;
}
#header .container .nav &amp;gt; ul &amp;gt; li &amp;gt; a:hover {
    background-color: #FFD66F;
}
#header .container .nav &amp;gt; ul &amp;gt; li &amp;gt; ul {
    position: absolute;
    left: 0;
    top: 50px;
    text-align: center;
    width: 100%;
    display: none;
}
#header .container .nav &amp;gt; ul &amp;gt; li &amp;gt; ul &amp;gt; li &amp;gt; a {
    padding: 10px;
    box-sizing: border-box;
    display: inline-block;
    width: 100%;
    text-align: center;
    color: #fff;
}
#header .container .nav &amp;gt; ul &amp;gt; li &amp;gt; ul &amp;gt; li &amp;gt; a:hover {
    background-color: #D9B352;
}
/* slider */
#slider{
    width: 100%;
    height: 300px;
    background-color: #bbb;
}
#slider .container{
    overflow: hidden;
}
#slider .sliderWrap{
    display: flex;
    width: 4800px;
}
#slider .sliderWrap .slider{
    position: relative;
    width: 1200px;
}
#slider .sliderWrap .slider img{}
#slider .sliderWrap .slider .text{
    position: absolute;
    left: 5%;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(0, 0, 0, 0.4);
    padding: 20px 40px;
}
#slider .sliderWrap .slider .text h2{
    font-size: 24px;
    color: #fff;
    margin-bottom: 4px;
}
#slider .sliderWrap .slider .text h2 strong{
    color: aqua;
}
#slider .sliderWrap .slider .text p{
    font-size: 16px;
    color: #fff;
}
/* main */
#main{
    width: 100%;
    height: 200px;
    background-color: #ccc;
}
#main .container{
    display: flex;
}
#main .container .notice{
    width: 400px;
    padding: 25px 20px;
    background-color: #dfc7c7;
}
#main .container .notice h3{
    font-size: 24px;
    margin-bottom: 10px;
}
#main .container .notice li{
    display: flex;
    line-height: 1.8;
    position: relative;
    padding-left: 10px;
}
#main .container .notice li::before{
    content: '';
    width: 5px;
    height: 5px;
    background-color: #fff;
    position: absolute;
    left: 0;
    top: 11px;
    border-radius: 50%;
}
#main .container .notice li a{
    width: 70%;
}
#main .container .notice li a:hover{
    text-decoration: underline;
}
#main .container .notice li span{
    width: 30%;
    /* background-color: #ccc; */
    text-align: right;
}
#main .container .gallery{
    width: 400px;
    padding: 25px 20px;
    
}
#main .container .gallery h3{
    font-size: 24px;
    margin-bottom: 10px;
}
#main .container .gallery ul{
    display: flex;
}

#main .container .banner{
    width: 400px;
    background-image: url(../image/banner.jpg);
    text-align: center;
    position: relative;
}
#main .container .banner h3{
    margin-top: 40px;
    font-size: 24px;
    color: #3a2727;
}
#main .container .banner a{
    background-color: rgba(0, 0, 0, 0.1);
    color: #fff;
    padding: 10px 20px;
    display: inline-block;
    border-radius: 40px;
}
/* footer */
#footer{
    width: 100%;
    height: 100px;
    background-color: #ddd;
}
#footer .container {
    display: flex;
}

#footer .container .footer1 {
    width: 80%;
    ;
}
#footer .container .footer1 .footer1-1 {
    width: 100%;
    height: 50px;
}
#footer .container .footer1 .footer1-1 li{
    display: inline;
    border-right: 1px solid #333;
}
#footer .container .footer1 .footer1-1 li:last-child{
    border: 0;
}
#footer .container .footer1 .footer1-1 li a{
    padding: 15px 10px;
    display: inline-block;
}
#footer .container .footer1 .footer1-2 {
    width: 100%;
    height: 50px;
    padding-top: 15px;
    box-sizing: border-box;
}
#footer .container .footer2 {
    width: 20%;
}
#footer .container .footer2 select{
    margin-top: 34px;
    width: 100%;
    height: 30px;

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 자바스크립트 부분&lt;/p&gt;
&lt;pre id=&quot;code_1684085283657&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(function(){
    //메뉴
    $(&quot;.nav &amp;gt; ul &amp;gt; li&quot;).mouseover(function(){
        $(&quot;.nav &amp;gt; ul &amp;gt; li &amp;gt; ul&quot;).stop().fadeIn(400);
        $(&quot;#header .container&quot;).addClass(&quot;on&quot;);
    });
    $(&quot;.nav &amp;gt; ul &amp;gt; li&quot;).mouseout(function(){
        $(&quot;.nav &amp;gt; ul &amp;gt; li &amp;gt; ul&quot;).stop().fadeOut(100);
        $(&quot;#header .container&quot;).removeClass(&quot;on&quot;);
    });
    //슬라이드
    let currentIndex = 0;
    const $sliderWrap = $(&quot;.sliderWrap&quot;);  //이미지 부모 : 움직이는 영역
    const $slider = $(&quot;.slider&quot;);           //각각의 이미지
    const $sliderWidth = $slider.width();   //이미지 가로값
    $sliderWrap.append($slider.first().clone(true));   //첫 번재 이미지를 복사 마지막에 추가
    setInterval(function(){
        currentIndex++;     //현재 이미지를 1씩 증가
        $sliderWrap.animate({marginLeft: -$sliderWidth * currentIndex}, 600);
        if(currentIndex === $slider.length){
            setTimeout(function(){
                $sliderWrap.animate({ marginLeft: 0},0);
                currentIndex = 0;
            }, 700);
        }
    }, 3000)
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선,&amp;nbsp;$를&amp;nbsp;이용하여&amp;nbsp;전체&amp;nbsp;문서가&amp;nbsp;준비됐을&amp;nbsp;때&amp;nbsp;바로&amp;nbsp;실행되는&amp;nbsp;함수를&amp;nbsp;정의합니다.&amp;nbsp;$(function(){...});으로&amp;nbsp;구현되어&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;이후&amp;nbsp;.nav&amp;nbsp;&amp;gt;&amp;nbsp;ul&amp;nbsp;&amp;gt;&amp;nbsp;li와&amp;nbsp;.sliderWrap,&amp;nbsp;.slider&amp;nbsp;클래스를&amp;nbsp;가진&amp;nbsp;요소를&amp;nbsp;선택합니다. &lt;br /&gt;&lt;br /&gt;.nav&amp;nbsp;&amp;gt;&amp;nbsp;ul&amp;nbsp;&amp;gt;&amp;nbsp;li&amp;nbsp;클래스를&amp;nbsp;가진&amp;nbsp;요소에&amp;nbsp;마우스&amp;nbsp;커서를&amp;nbsp;올리면&amp;nbsp;하위&amp;nbsp;요소인&amp;nbsp;.nav&amp;nbsp;&amp;gt;&amp;nbsp;ul&amp;nbsp;&amp;gt;&amp;nbsp;li&amp;nbsp;&amp;gt;&amp;nbsp;ul&amp;nbsp;클래스를&amp;nbsp;가진&amp;nbsp;요소가&amp;nbsp;400밀리초&amp;nbsp;동안&amp;nbsp;fade-in&amp;nbsp;되며,&amp;nbsp;#header&amp;nbsp;.container&amp;nbsp;요소에&amp;nbsp;on&amp;nbsp;클래스가&amp;nbsp;추가됩니다.&amp;nbsp;마우스&amp;nbsp;커서를&amp;nbsp;요소&amp;nbsp;밖으로&amp;nbsp;이동하면&amp;nbsp;다시&amp;nbsp;100밀리초&amp;nbsp;동안&amp;nbsp;fade-out되며&amp;nbsp;#header&amp;nbsp;.container&amp;nbsp;요소에서&amp;nbsp;on&amp;nbsp;클래스가&amp;nbsp;제거됩니다. &lt;br /&gt;&lt;br /&gt;이후&amp;nbsp;이미지&amp;nbsp;슬라이드를&amp;nbsp;구현하는&amp;nbsp;코드가&amp;nbsp;나옵니다.&amp;nbsp;$sliderWrap&amp;nbsp;요소에&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;이미지를&amp;nbsp;복사하여&amp;nbsp;마지막에&amp;nbsp;추가합니다.&amp;nbsp;이렇게&amp;nbsp;함으로써&amp;nbsp;마지막&amp;nbsp;이미지에서&amp;nbsp;다시&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;이미지로&amp;nbsp;이동할&amp;nbsp;때&amp;nbsp;자연스럽게&amp;nbsp;이어지는&amp;nbsp;효과를&amp;nbsp;만들&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;setInterval을&amp;nbsp;이용하여&amp;nbsp;3초마다&amp;nbsp;실행되는&amp;nbsp;함수를&amp;nbsp;정의합니다.&amp;nbsp;currentIndex&amp;nbsp;변수는&amp;nbsp;현재&amp;nbsp;이미지의&amp;nbsp;인덱스를&amp;nbsp;저장하는&amp;nbsp;역할을&amp;nbsp;하며,&amp;nbsp;이&amp;nbsp;변수는&amp;nbsp;슬라이드가&amp;nbsp;움직일&amp;nbsp;때&amp;nbsp;마다&amp;nbsp;1씩&amp;nbsp;증가합니다.&amp;nbsp;$sliderWrap&amp;nbsp;요소의&amp;nbsp;marginLeft&amp;nbsp;값을&amp;nbsp;-현재&amp;nbsp;이미지&amp;nbsp;인덱스&amp;nbsp;*&amp;nbsp;이미지&amp;nbsp;가로값으로&amp;nbsp;설정하면&amp;nbsp;이미지가&amp;nbsp;왼쪽으로&amp;nbsp;이동합니다.&amp;nbsp;마지막&amp;nbsp;이미지까지&amp;nbsp;도달하면&amp;nbsp;다시&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;이미지로&amp;nbsp;돌아갑니다.&amp;nbsp;이때&amp;nbsp;setTimeout을&amp;nbsp;이용하여&amp;nbsp;0.7초&amp;nbsp;뒤에&amp;nbsp;marginLeft&amp;nbsp;값을&amp;nbsp;0으로&amp;nbsp;설정하고,&amp;nbsp;currentIndex&amp;nbsp;값을&amp;nbsp;0으로&amp;nbsp;초기화합니다.&amp;nbsp;이렇게&amp;nbsp;함으로써&amp;nbsp;마지막&amp;nbsp;이미지와&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;이미지가&amp;nbsp;자연스럽게&amp;nbsp;이어지는&amp;nbsp;효과를&amp;nbsp;만들&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;포인트 !&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;html을 먼저 만들고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;css로 슬라이드가 보여질 화면과 sub메뉴를 완성시킨뒤&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;script를 작업해야 에러잡기도 쉽고 코드 짜기도 쉬워요 !&amp;nbsp;&lt;/p&gt;</description>
      <category>html</category>
      <category>jquery submenu</category>
      <category>jquery 슬라이드</category>
      <category>웹디 2023형 실기</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/126</guid>
      <comments>https://getgrovy.tistory.com/126#entry126comment</comments>
      <pubDate>Fri, 12 May 2023 23:40:48 +0900</pubDate>
    </item>
    <item>
      <title>React - 01 기본문법</title>
      <link>https://getgrovy.tistory.com/125</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;React 기본 문법을 알아봐요 !&amp;nbsp;&lt;/h2&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. Hellow World 출력&lt;/h3&gt;
&lt;pre id=&quot;code_1683733250434&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from &quot;react&quot;;
import ReactDOM from &quot;react-dom/client&quot;;

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(&amp;lt;h1&amp;gt;Hello World&amp;lt;/h1&amp;gt;);

//Hello World&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 root에 리엑트돔을 생성해서 root에 render 시키면 출력이 됩니다.&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;h3 id=&quot;intro3-2&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. JSX&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;JSX는 React에서 사용되는 자바스크립트 문법 확장입니다. JSX는 HTML과 유사한 구문을 사용하여 UI 구성 요소를 만들 수 있게 해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;스크립트 안에 h1같은 태그도 사용을 할수 있어요 !&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1683733466172&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from &quot;react&quot;;
import ReactDOM from &quot;react-dom/client&quot;;

const name = &quot;getgrovy&quot;;

const hello = &amp;lt;h1&amp;gt;hellow {name}&amp;lt;/h1&amp;gt;;;

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(hello);

//Hello getgrovy&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1683733479943&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from &quot;react&quot;;
import ReactDOM from &quot;react-dom/client&quot;;

function helloName(){
    return name.nick
}

const name = {
    nick : &quot;getgrovy&quot;,
}

const hello = &amp;lt;h1&amp;gt;Hello, {helloName()}&amp;lt;/h1&amp;gt;;
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(hello);
//Hello getgrovy&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;3. 랜더링&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;ReactDOM.render으로 랜더링을 했어요 !&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1683733556599&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react'
import ReactDOM from 'react-dom'

function clock(){
    const element = (
        &amp;lt;div&amp;gt;
            &amp;lt;div&amp;gt;hello, getgrovy&amp;lt;/div&amp;gt;
            &amp;lt;h2&amp;gt;지금은 {new Date().toLocaleDateString()}입니다.&amp;lt;/h2&amp;gt;
        &amp;lt;/div&amp;gt;
    );
}
ReactDOM.render(element, document.getElementById('root'));


export default clock;

//hello, getgrovy

//지금은 2023. 5. 8.입니다.&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 컴포넌트를 사용하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;function 대문자+### 형식으로 컴포넌트로 생성 문법으로 생성함 쓸때는 &amp;lt; &amp;gt; 안에 넣어서 쓴다&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1683733810918&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from &quot;react&quot;;
import ReactDOM from &quot;react-dom/client&quot;;

function Hello(){
    return &amp;lt;h1&amp;gt;hello, getgrovy&amp;lt;/h1&amp;gt;
}
const element = &amp;lt;Hello/&amp;gt;;

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(element);&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. props&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴포넌트에 props라는 변수를 object타입으로 받아와서 실행할수있어요 !&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1683733908937&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from &quot;react&quot;;
import ReactDOM from &quot;react-dom/client&quot;;

function Hello(props){
    return &amp;lt;h1&amp;gt;hello, {props.name}&amp;lt;/h1&amp;gt;
}
const element = &amp;lt;Hello name=&quot;getgrovy1&quot;/&amp;gt;;

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(element);

//hello, getgrovy1&lt;/code&gt;&lt;/pre&gt;</description>
      <category>React</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/125</guid>
      <comments>https://getgrovy.tistory.com/125#entry125comment</comments>
      <pubDate>Wed, 10 May 2023 23:16:33 +0900</pubDate>
    </item>
    <item>
      <title>REACT 맛보기 !</title>
      <link>https://getgrovy.tistory.com/124</link>
      <description>&lt;h2 id=&quot;intro1&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;REACT를 같이 알아봐요 !&amp;nbsp;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;React는 Facebook에서 개발한 오픈 소스 자바스크립트 라이브러리로, 사용자 인터페이스를 만들기 위한 라이브러리입니다.&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;React는 컴포넌트 기반 아키텍처를 사용하며, 이를 통해 재사용 가능한 UI 요소를 만들 수 있습니다. React는 Virtual DOM을 사용하여 빠른 성능을 제공합니다. 이는 변경된 부분만을 업데이트하고 렌더링하는 방식으로 작동합니다. 이러한 접근 방식은 기존의 DOM 조작 방식에 비해 빠른 업데이트와 높은 성능을 제공합니다. React는 또한 다른 라이브러리나 프레임워크와 함께 사용할 수 있습니다. 예를 들어, React Native는 React를 사용하여 네이티브 모바일 앱을 만들 수 있습니다. React는 현재 매우 인기 있는 라이브러리 중 하나이며, 다양한 규모의 프로젝트에서 사용됩니다.&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;h4 data-ke-size=&quot;size20&quot;&gt;REACT&amp;nbsp;기본&amp;nbsp;개념&amp;nbsp;익히기&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2525&quot; data-origin-height=&quot;1280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D6c86/btsequNUCoR/4vZ56RBYkEkkAIkoh9CVf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D6c86/btsequNUCoR/4vZ56RBYkEkkAIkoh9CVf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D6c86/btsequNUCoR/4vZ56RBYkEkkAIkoh9CVf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD6c86%2FbtsequNUCoR%2F4vZ56RBYkEkkAIkoh9CVf0%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;2525&quot; height=&quot;1280&quot; data-origin-width=&quot;2525&quot; data-origin-height=&quot;1280&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;a href=&quot;https://ko.legacy.reactjs.org/docs/hello-world.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크에&lt;/a&gt; 있어요 !&amp;nbsp;&lt;/p&gt;</description>
      <category>React</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/124</guid>
      <comments>https://getgrovy.tistory.com/124#entry124comment</comments>
      <pubDate>Tue, 9 May 2023 07:42:26 +0900</pubDate>
    </item>
    <item>
      <title>php에서 html을 사용하는 방법</title>
      <link>https://getgrovy.tistory.com/123</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;php에서&amp;nbsp;html을&amp;nbsp;사용하는&amp;nbsp;방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;PHP는 서버 측 언어이기 때문에, HTML과 함께 사용되어 클라이언트에게 동적으로 생성된 웹 페이지를 제공할 수 있습니다. PHP 파일 내에서 HTML 코드를 삽입하는 가장 일반적인 방법은 다음과 같습니다.&lt;/span&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;&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;1. echo문 사용하기&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;PHP에서&amp;nbsp;HTML을&amp;nbsp;출력하려면,&amp;nbsp;echo문을&amp;nbsp;사용합니다.&amp;nbsp;다음은&amp;nbsp;간단한&amp;nbsp;예시입니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1683500752668&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;title&amp;gt;PHP와 HTML&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	&amp;lt;h1&amp;gt;&amp;lt;?php echo &quot;안녕하세요!&quot;; ?&amp;gt;&amp;lt;/h1&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;&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;위 예시에서, PHP 코드는 &lt;/span&gt;&amp;lt;?php&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;와 &lt;/span&gt;?&amp;gt;&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt; 사이에 삽입되며, &lt;/span&gt;echo&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;문을 사용하여 &quot;안녕하세요!&quot;라는 텍스트를 출력하고 있습니다.&lt;/span&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. 단축 구문 사용하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP에서&amp;nbsp;HTML&amp;nbsp;코드를&amp;nbsp;간결하게&amp;nbsp;작성하려면,&amp;nbsp;단축&amp;nbsp;구문을&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;다음은&amp;nbsp;위의&amp;nbsp;예시를&amp;nbsp;단축&amp;nbsp;구문을&amp;nbsp;사용하여&amp;nbsp;작성한&amp;nbsp;것입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1683500790441&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;title&amp;gt;PHP와 HTML&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	&amp;lt;h1&amp;gt;&amp;lt;?= &quot;안녕하세요!&quot;; ?&amp;gt;&amp;lt;/h1&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;&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;위 예시에서는 &lt;/span&gt;&amp;lt;?=&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;와 &lt;/span&gt;?&amp;gt;&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt; 사이에 출력할 값을 삽입하면, &lt;/span&gt;echo&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;문을 사용하지 않고도 HTML 코드 내에서 출력할 수 있습니다.&lt;/span&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;3. HTML&amp;nbsp;코드와&amp;nbsp;함께&amp;nbsp;PHP&amp;nbsp;코드&amp;nbsp;작성하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML&amp;nbsp;코드&amp;nbsp;내에&amp;nbsp;직접&amp;nbsp;PHP&amp;nbsp;코드를&amp;nbsp;삽입하여&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;다음은&amp;nbsp;예시입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1683500822134&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;title&amp;gt;PHP와 HTML&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	&amp;lt;h1&amp;gt;
		&amp;lt;?php
			$message = &quot;안녕하세요!&quot;;
			echo $message;
		?&amp;gt;
	&amp;lt;/h1&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;&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;위 예시에서는 PHP 코드가 HTML 태그 내에 직접 작성되어 있습니다. &lt;/span&gt;$message&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt; 변수에 &quot;안녕하세요!&quot;라는 값을 할당하고, &lt;/span&gt;echo&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;문을 사용하여 변수 값을 출력하고 있습니다.&lt;/span&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;4. include()&amp;nbsp;함수&amp;nbsp;사용하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP에서는&amp;nbsp;include()&amp;nbsp;함수를&amp;nbsp;사용하여&amp;nbsp;다른&amp;nbsp;파일에&amp;nbsp;있는&amp;nbsp;HTML&amp;nbsp;코드를&amp;nbsp;현재&amp;nbsp;파일에&amp;nbsp;포함시킬&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이를&amp;nbsp;통해&amp;nbsp;HTML&amp;nbsp;코드를&amp;nbsp;재사용하거나&amp;nbsp;파일을&amp;nbsp;분리하여&amp;nbsp;관리할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;다음은&amp;nbsp;예시입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1683500865274&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;title&amp;gt;PHP와 HTML&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	&amp;lt;?php include(&quot;header.html&quot;); ?&amp;gt;
	&amp;lt;h1&amp;gt;내용입니다.&amp;lt;/h1&amp;gt;
	&amp;lt;?php include(&quot;footer.html&quot;); ?&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;&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;위 예시에서는 &lt;/span&gt;header.html&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;과 &lt;/span&gt;footer.html&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt; 파일에 있는 HTML 코드를 &lt;/span&gt;include()&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt; 함수를 사용하여 현재 파일에 포함시켰습니다. 이렇게 하면 &lt;/span&gt;header.html&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt;과 &lt;/span&gt;footer.html&lt;span style=&quot;background-color: #f7f7f8; color: #374151; text-align: start;&quot;&gt; 파일에서 작성한 HTML 코드를 재사용할 수 있으며, 유지보수도 편리해집니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>PHP</category>
      <author>grovy</author>
      <guid isPermaLink="true">https://getgrovy.tistory.com/123</guid>
      <comments>https://getgrovy.tistory.com/123#entry123comment</comments>
      <pubDate>Sun, 7 May 2023 23:47:41 +0900</pubDate>
    </item>
  </channel>
</rss>