다음은 슬라이드 쇼처럼 넘어가는 slider부분이다

이는 main이라기보다는 aside에 가깝다

퀵메뉴처럼 활용 되고 있기 때문이다

우리는 동적인 부분을 제외한 나머지를 만들기로 했기 때문에 슬라이드 부분은 한 개의 메뉴만 만들도록 하겠다.

먼저 수정한 부분이 조금씩 있다.

 

원래 있던 html문서에서 slider부분을 main 밖으로 빼고 header밑에 div태그로 감쌌다. 

 

또한 한 장면만 할 것이므로 문장과 a태그를 하나씩만 넣었다.

    </header>
  </div>
 <!--header 밑에-->
  <div id="slider"><!--slider전체의 공간을 주기위해 div로 감쌌다.-->
    <h3 class="hidden">슬라이더 메뉴</h3>
      <div><!---->
        <p>이미지에서 텍스트를 인식하는 기술<br />클로바OCR</p>
        <a href="https://clova.ai/speech" target="_blank">자세히 보기</a>
        <video loop muted preload="auto" autoplay style="width:100%">
          <source src="https://static-clova.pstatic.net/static/public/video/CH_OCRmain.mp4" type="video/mp4">
<!--video의 소스는 네이버 클로바에서 가져온것이다. 배경이 비디오 이므로 video태그를 이용해 자동 재생하도록 하였다.-->
        </video>
      </div>
  </div>
 <!--main 위에-->
 <main>
    <section>
      <h2 class="hidden">본문</h2>

 


작업 전

밑의 작업 후 와 비교해볼 때 어떤 속성을 적용해야 할지 생각해보자

 

1. slider의 공간이 생겼다

=> 기본 공간, margin, padding을 조사하고 값을 적용해 준다.

 

2. 공간들의 위치를 지정해 준다. 비디오 안에 텍스트가 들어가 있다.

=> margin 또는 padding으로 가능한 것은 그것으로 지정해준다.

그 외의 것은 position을 적용해준다.

 

3. 텍스트 색, 크기, 간격이 적용되었다. 테두리가 적용되었다.

=> color, font-size, letter-spacing, text-align, line-height , border를 지정해준다.

 

4. 자세히 보기에 마우스를 갖다 대면 배경색이 바뀐다. 하단의 메뉴 바를 클릭하면 배경색이 바뀐다.

=> a:hover를 이용하여 바꾸어 주도록 한다.

=> a:visited를 이용하여 바꾸어 주도록 한다.

     background-color 

5. 하단의 메뉴 바의 위치를 지정해 준다.

=> 각각의 메뉴들이 서로 동일하게 떨어져 있고 배경은 동일하게 가지고 있다.
    따라서 각각의 메뉴에 id값을 주어 margin값을 준다.

 


작업 후

원본과 비교


id값 지정 및 선택자 적기 

 

hmtl의 slider부분

  <div id="slider">
    <h3 class="hidden">슬라이더 메뉴</h3>
    <div>
      <p>이미지에서 텍스트를 인식하는 기술<br />클로바OCR</p>
      <a href="https://clova.ai/speech" target="_blank">자세히 보기</a>
      <video loop muted preload="auto" autoplay style="width:100%">
        <source src="https://static-clova.pstatic.net/static/public/video/CH_OCRmain.mp4" type="video/mp4">
      </video>
      <div id="menus">
        <a href="#" id="menu1"></a>
        <a href="#" id="menu2"></a>
        <a href="#" id="menu3"></a>
        <a href="#" id="menu4"></a>
        <a href="#" id="menu5"></a>
      </div>
    </div>
  </div>

css의 slider부분

/*slider*/
#slider {}
#slider div p {}
#slider div a {}
#slider div a:hover {}
/*하단의 메뉴바*/
#slider div div a {}
#slider div div a:visited {}
#menu2 {}
#menu3 {}
#menu4 {}
#menu5 {}

 

1. & 2. slider의 공간이 생겼다. 공간들의 위치를 지정해 준다. 비디오 안에 텍스트가 들어가 있다.


작업 후

이미지를 video태그 안에 넣고 제일 우선으로 보이게 하기 위해 새로운 속성을 배우게 되었다.

/*slider*/
#slider {
  width: 100%
}
#slider video{
  vertical-align: middle;
}
#slider div p {
  width: 560px;
  position: absolute;
  top: 248px;
  left: 674px;
  z-index: 1;
}
#slider div a {
  display: block;
  width: 141px;
  height: 50px;
  position: absolute;
  top: 387px;
  left: 880px;
  z-index: 1;
}
#slider div a:hover {}

/*하단의 메뉴바*/
#slider div div a {
  display: block;
  width: 40px;
  height: 1px;
  position: absolute;
  top: 640px;
  left: 831px;
  z-index: 1;
}
#slider div div a:visited {}
#menu2 {}
#menu3 {}
#menu4 {}
#menu5 {}

 

 

작업 내용(모든 공간들은 원본 페이지에서 참고할 수 있다.)

  1. width와 height를 사용하여 기본 공간을 지정해 주었다. (a요소에 공간을 지정하려면 display:block;잊으면 안 된다.)

  2. 비디오 태그 안에 텍스트를 넣기 위해서는 margin을 사용할 수 없었다
    margin을 사용하면 텍스트들이 비디오 밖으로 튀어 나가기 때문이었다.
    따라서 #slider div p, #slider div a, #slider div div a에 각각의 position과 그 값을 주었다.

  3. vertical-align을 사용하여 video태그 밑의 공간을 없애 주었다.
    높이가 따로 정해져 있지 않고 나중에 나올 하단 메뉴바의 테두리 공간이 div태그의 공간을 차지하기 때문에
    video 밑으로 빈 공간이 튀어나온다. vertical-align으로 인라인 요소를 중간으로 잡아주어 그것을 방지한다.
  4. 여기서 새로 배운 z-index를 활용한다.
    z-index란 레이어 들에게 순서를 정해주는 속성이다.
    ex) video레이어와 text레이어의 순위를 조절해서 video안에 text를 집어 넣었다.

3. & 4. 텍스트 색, 크기, 간격이 적용되었다. 테두리가 적용되었다. 자세히 보기에 마우스를 갖다 대면 배경색이 바뀐다. 하단의 메뉴 바를 클릭하면 배경색이 바뀐다.


작업 후

 

거의 완성되어 간다.ㅎ

/* slider */
#slider {
  width: 100%;
}
#slider div p {
  width: 560px;
  letter-spacing: -5px;
  position: absolute;
  top: 248px;
  left: 674px;
  color: #fff;
  font-weight: 900;
  font-size: 39px;
  text-align: center;
  z-index: 1;
  font-family: sans-serif;
}
#slider div a {
  display: block;
  width: 141px;
  height: 50px;
  border: 1px solid #fff;
  border-radius: 28px;
  position: absolute;
  top: 387px;
  left: 880px;
  z-index: 1;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  line-height: 50px;
}
#slider div a:hover {
  background-color: rgb(73, 231, 146);
  border: 1px solid rgba(228, 230, 202, 0);
}
#slider div div a {
  display: block;
  width: 40px;
  height: 1px;
  position: absolute;
  top: 640px;
  left: 831px;
  z-index: 1;
  background-color: rgba(119, 116, 116, 0.5);
  border: 1px solid rgba(252, 252, 247, 0);
}
#slider div div a:visited {
  background-color: #fff;
  border: 0;
}
#menu2 {}
#menu3 {}
#menu4 {}
#menu5 {}

 

작업내용

  1. 헤더의 배경색을 임의로 바꾸었다. 아쉽게도 헤더를 배경과 겹치게는 하지 못하였다.
  2. color와 font-size, font-weight, font-famliy를 이용하여 글자의 색과 크기, 굵기, 글꼴을 바꾸어 주었다.
    p, a에 각각 적용
  3. text-align과 line-height를 이용하여 글자들을 중앙 정렬해 주었다.
  4. border와 border-radius를 이용해 자세히 보기에 테두리를 적용해 주었다.
    또한 하단의 메뉴바에도 테두리를 적용해 주었다.
  5. a:hover와 a:visited 선택자를 이용해 각각의 a태그에 마우스를 갖다 대거나 클릭했을 때
    배경색(background-color)과 테두리(border)를 바꾸어주었다.

5. 하단의 메뉴 바의 위치를 지정해 준다.


작업 후

완성이다.

#slider div div a {
  display: block;
  width: 40px;
  height: 1px;
  position: absolute;
  top: 640px;
  left: 831px;
  z-index: 1;
  background-color: rgba(119, 116, 116, 0.5);
  border: 1px solid rgba(252, 252, 247, 0);
}
#slider div div a:visited {
  background-color: #fff;
  border: 0;
}
#menu2 {
  margin-left: 50px;
}
#menu3 {
  margin-left: 100px;
}
#menu4 {
  margin-left: 150px;
}
#menu5 {
  margin-left: 200px;
}

작업 내용

  1. 원래 겹쳐져 있던 menu바들에게 margin-left값을 적용해 주어 서로 떨어지게 끔 만들었다. 

slider부분을 마무리해 보았다.

 

 

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요) 

 

그럼~ 앙 제바

HTML 문서 구조를 잡았다면 CSS의 초기화 및 선택자를 입력해 주어야 한다.

 

먼저 CSS를 초기화해 주도록 하자

 

CSS초기화

초기화를 해 주는 이유는 간단하다.

 

기본 값을 없애주기 위해서이다. 

 

만약 기본값이 있다면 우리는 그 공간에 대해 추가 코드를 작성해야 할 것이다. 

 

그것을 미리 없애주고 시작하는 것이다. 

 

 

1. 딱 붙이기(공간 없애기)

CSS속성을 설명할 때 기본 요소에 공간이 조금씩 들어가 있다고 했었다.


작업 전

 

 

구조화만 된 html문서를 열어보면 왼쪽 이미지처럼 멸치 뼈 같이 보일 것이다.

 

딱 붙이기 작업은 멸치 뼈 사이사이 보이는 공간들을 위로 딱 붙여주는 것이다.

 

우리가 가지고 있는 요소들 중 공간을 가진 요소들은 

 

body, h시리즈(h1, h2...) p, ul 정도가 있다. 

 

이 요소들의 공간을 줄이기 위해선?

 

CSS에 그 속성인 margin:0; padding:0;을 적용해준다.

 

body, h1, h2, h3, h4, h5, h6, p, ul {
	margin: 0; padding: 0; 
}

 

 

 

 

 


작업 후

 

 

 

 딱 붙이기 작업을 통해 이렇게 공간을 제거해 주었다.

 

왼쪽 이미지의 길이를 위의 이미지와 비교해 보면

 

공간을 제거해 준 것을 확연하게 느낄 수 있다. 

 

하지만 자세히 보면 아직도 공간이 남아 있는 것처럼 보인다

 

그것은 대문자나 i와 같이 다른 글자보다 높이가 긴 글자를 위해서 남겨진 것이다.

 

※다른 사이트를 카피하거나 다른 구조를 갖추었다면 초기화할 대상이 달라질 수 있다.

 

 

 

 

 

2. 초기화 스타일 

 

딱 붙이기 같은 경우는 기본적으로 거의 모든 페이지가 해 준다.

 

하지만 나머지 초기화는 각자의 스타일이 있다.

 

우리는 초기화로 몇 가지를 더 해볼 것이다.

 

  1. 하이퍼링크의 밑줄 없애기 및 글자색 변경
  2. 리스트 앞의 특수문자 검은 동그라미 없애기
  3. 실제 페이지에 안 보이는 글자 숨기기(접근성이나 아웃라인을 위해 존재해야 함)
  4. 기울어있는 글자 바로잡기

 

1. 하이퍼링크의 밑줄 없애기 및 글자색 변경


작업 전

 

 

왼쪽 이미지처럼 하이퍼링크를 걸게 되면 

 

클릭 전에는 파란색 클릭 후에는

 

보라색으로 글자색이 정해지고 

 

밑줄이 생긴다.

 


작업 후

 

 

선택자: 하이퍼링크의 요소인 a에 CSS속성을 적용한다.

 

CSS속성: text-decoration: none; (글자에 밑줄을 지정하는 속성)

                   color: #000;                        (글자에 색을 지정하는 속성)

a {
  text-decoration: none;
  color:#000;
}

 

2. 리스트 앞의 특수문자 없애기(검은 동그라미)


작업 후

 

 

1번 작업 후 이미지가 2번 작업 전 이미지이다.

 

선택자: 리스트 요소인 li(ul이 아니다 ul은 li를 감싸는 태그)

 

CSS속성: list-style:none; (리스트의 스타일을 지정하는 속성)

ul li {
  list-style: none;
}

 

 

3. 실제 페이지에서는 안 보이는 글자 숨기기


작업 전

 

 

임의로 빨간 밑줄을 그은 본문, 슬라이더 메뉴는 

 

우리가 아웃라인을 위해 임의로 정해준 제목이기 때문에

 

실제 네이버 클로바 페이지에선 보이지 않는다.

 

있지만 보이지 않게 해야 한다.

 

선택자를 위해 class값을 준다. (이름은 hidden으로 하겠다.)

 

로고의 경우(영역은 있지만 글자를 안 보이게) text-indent속성을 사용한다

 

하지만 지금처럼 글자도 영역도 안보이게 하는 것은 어떤 속성을 사용해야 할까? 

 

바로 위치 속성인 position을 사용하는 것이다.

.hidden {
  position: absolute;
  left: -9999px;
}

left로 -9999px만큼 주게 된다면. hidden을 가진 모든 요소들은 화면 밖 저 멀리로 날아가 버린다.


적용 후

 

 

이렇게 사라진 것을 확인할 수 있다.

 

class="hidden"을 준 태그는 "menu", "customer menu", "본문", "슬라이더 메뉴", "footer"를 텍스트로 가진 h2, h3요소이다.

 

 

 

4. 기울어있는 글자 바로잡기


작업 전

 

결과를 보여 주기 위해 footer를 임의로 넣고 빨간 밑줄을 그었다.

 

footer의 address요소가 가지고 있는 텍스트들은 기본 값이 italic이라서 살짝 기울어 있다.

 

따라서 선택자는 address이고 font-style:normal;속성을 적용해준다. 

address {
  font-style: normal;
}

작업 후

 

 

글자들이 똑바로 잡힌 것을 볼 수 있다.

 

이렇게 초기화를 모두 해 보았다. 

 

초기화 값은 서브 페이지에서도 사용될 수 있으므로 잘 알아놓는 것이 좋다.

 

다음장에서는 header부분에 대해 다뤄보도록 하겠다.

 

 

 

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요) 

 

그럼~ 앙 제바

이제까지 우리가 배운 HTML과 CSS를 사용하여 네이버 클로바(Naver Clova)를 카피해보자

 

https://clova.ai/ko

 

바로 이 홈 화면 중 움직이지 않는 것(javascript를 활용하지 않는 것)만 카피하려고 한다.

 

자! 시작해보자.

 

 

 

1. 로컬디스크에 html폴더를 생성한다.

 

 

2. html폴더 안에 각각 css, images, webfont 등 경로를 사용할 폴더들을 생성한다.

 

3. 우클릭 후 텍스트 문서를 만들어 index.html(제일 첫 문서의 이름이다.)로 이름 지어준다.

 

4. 구조화 작업에 들어가 준다.

난잡해 보이지만 대략적인 레이아웃을 땄다.

대략적인 구조는 위의 그림과 같다. 

 

내가 정한 구조는 위와 같다.

 

아웃라인을 설정하고 텍스트를 입력하였다.

 

<!DOCTYPE html>
<html lang="ko" dir="ltr">

<head>
  <meta charset="utf-8">
  <title>네이버클로바copy</title>
  <link rel="stylesheet" href="navercloba.css">
</head>

<body>
  <div id="headerWrap">
  <header id="logo">
    <h1>Naver cloba</h1>
  <nav>
    <h2>menu</h2>
    <ul>
      <li>기술·솔루션</li>
      <li>제품</li>
      <li>플랫폼</li>
      <li>파트너</li>
      <li>리서치</li>
    </ul>
  </nav>
  <nav>
    <h2>customer menu</h2>
    <li><a href="https://www.ncloud.com/product/aiService" target="_blank">
        Biz Start</a></li>
    <li><a href="https://www.navercorp.com/naver/proposalRegister?joinSiteCd=NVR&joinTypeCd=CLP#proposalGuideLine" target="_blank">
        비즈니스 문의</a></li>
  </nav>
    </header>
  </div>
  <main>
    <section>
      <h2>본문</h2>
      <section id="slider">
        <h3>슬라이더 메뉴</h3>
        <article>
          <h4>음성 인식을 위한 AI기술<br />클로바 스피치</h4>
          <button type="button" name="button"><a href="https://clova.ai/speech" target="_blank">자세히 보기</a></button>
        </article>
        <article>
          <h4>동영상에 AI보이스를 더하는<br />클로바더빙</h4>
          <button type="button" name="button"><a href="https://clovadubbing.naver.com/" target="_blank">자세히 보기</a></button>
        </article>
        <article>
          <h4>완전히 새로워진 전화 응대 솔루션<br />클로바 AI고객센터</h4>
          <button type="button" name="button"><a href="https://clova.ai/aicontactcenter" target="_blank">자세히 보기</a></button>
        </article>
        <article>
          <h4>AI보이스를 구현하는 기술<br />클로바 보이스</h4>
          <button type="button" name="button"><a href="https://clova.ai/voice" target="_blank">자세히 보기</a></button>
        </article>
        <article>
          <h4>당신의 더 편리하고 행복한 미래<br />새로운 플랫폼 네이버 클로바</h4>
          <button type="button" name="button"><a href="https://clova.ai/ko/platform" target="_blank">자세히 보기</a></button>
        </article> -->
      </section>
      <div id="section1Wrap">
      <section id="section1">
        <h3>Clova ai</h3>
          <p>네이버 클로바는 독자적으로 개발한 AI 기술을 통해<br /> 세상에 없던 새로운 기술, 서비스, 제품을 만들어가고 있습니다.</p>
        <article>
          <h4>Device & Service</h4>
          <p>스마트 디바이스, 서비스로<br />더욱 편리한 일상을 만나보세요.</p>
        </article>
        <article>
          <h4>Solution</h4>
          <p>비즈니스 맞춤형 AI솔루션으로<br />혁신을 경헙하세요.</p>
        </article>
        <article>
          <h4>Product</h4>
          <p>세계 최고 수준의 AI가 적용된<br />놀라운 서비스, 제품을 제공해보세요.</p>
        </article>
        <article>
          <h4>Research</h4>
          <p>CLOVA AI의 독자적인 기술과<br />세계적인 연구 성과를 확인하세요.</p>
        </article>
      </section>
      </div>
      <div id="section2Wrap">
      <section id="section2">
        <h3>Clova ai special Feature</h3>
        <p>네이버, 라인의 풍부한 데이터와<br /> 세계 최고 수준의 AI기술이 만나<br />전에 없던 시너지를 창출합니다.</p>
        <article>
          <h4>Customized Solution</h4>
          <p>네이버, 라인의 서비스를 통해 측정된<br>
            데이터와 클로바의 자체 기술로 제작한<br>
            AI엔진을 활용하여, 개발 비즈니스의<br>
            니즈에 부합하는 Customized Solution<br>
            을 제공합니다.</p>
        </article>
        <article>
          <h4>Integrated AI Engine</h4>
          <p>네이버 클로바에서 자체적으로 보유한 AI<br />
            기술을 복합적으로 활용한 솔루션을 개발<br />
            할 수 있습니다. 이를 통해 단일 기술을<br />
            활용한 경우보다 월등한 시너지를 만들어<br />냅니다.</p>
        </article>
      </section>
    </div>
      <aside id= banner1>
        <h3>clova official blog</h3>
        <p>클로바 공식 블로그에서 다양한 소식을 확인해보세요</p>
        <button type="button" name="button"><a href="https://blog.naver.com/clova_ai" target="_blank">자세히 보기</a></button>
      </aside>
      <div id="section3Wrap">
      <section >
        <h2>Latest News</h2>
        <p>좀더 편리하고 스마트한 삶을 위한 클로바의 다양한 AI 적용사례 및 소식들을 확인해보세요.</p>
        <article><a href="https://www.yna.co.kr/view/AKR20200309082400061?input=1195m">
            <img src="https://ssl.pstatic.net/static/clova/service/clova_ai/image/main/news/0401_clova_carecall_pc.png" alt="">
            <h4>클로바 케어콜 성남시에 시범 적용</h4>
            <p>의료 분야의 전화상담 및 응대를 수행하는 AI 솔루션으로, 코로나19 능동감시자 대상에게 전화를 걸어 증상을 확인하고 결과를 보건소에 전송합니다.</p>
          </a></article>
        <article><a href="https://www.etnews.com/20200228000207">
            <img src="https://ssl.pstatic.net/static/clova/service/clova_ai/image/main/news/0401_clova_dubbing_pc.png" alt="">
            <h4>클로바더빙 무료 이용</h4>
            <p>코로나19 확진자 급증에 따른 정보성 콘텐츠를 보다 편리하게 제작하실 수 있도록 기관 및 기업 그리고 개인에게 클로바더빙 사용을 무료로 지원합니다.</p>
          </a></article>
        <article><a href="http://cvpr2020.thecvf.com/">
            <img src="https://ssl.pstatic.net/static/clova/service/clova_ai/image/main/news/0401_cvpr_pc.png" alt="">
            <h4>세계 최고 권위 학회 연구 성과</h4>
            <p>컴퓨터 비전 분야 최고 학회 CVPR 2020에서 연구 논문 5개, 음성신호처리 분야 최고 학회 ICASSP 2020에서 연구 논문 7개가 채택됐습니다.</p>
          </a></article>
      </section>
      </div>
      <aside id="banner2">
        <h3>With Naver Clova</h3>
        <p>네이버 클로바가 제안하는 AI 솔루션을 통해 비즈니스의 새로운 성장과 발전을 경험하세요.</p>
        <button type="button" name="button"><a href="https://www.navercorp.com/naver/proposalRegister?joinSiteCd=NVR&joinTypeCd=CLP#proposalGuideLine" target="_blank">비즈니스 문의</a></button>
      </aside>
    </section>
  </main>
  <footer id="footer">
    <h2>footer</h2>
<small><a href="https://clova.ai/ko/">NAVER CLOVA</a></small>
<address>
  <small>고객센터 1833-5387 | 09:00 - 18:00(주말, 공휴일 휴무)</small>
  <small>Powered by NAVER · LINE</small>
</address>

  </footer>

</body>

</html>

구조화 및 텍스트 입력 끝

 

다음장에서는 id,class와 값을 주고 div태그로 감쌀 부분 등 CSS에 맞춰 세부적인 구조를 짜는 것을 해보도록 하겠다. 

 

 

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요) 

 

그럼~ 앙 제바

+ Recent posts