11.포트폴리오 클론코딩 만들기 HTML 비교(feat.Ellie)(별 100만개)
코딩비교
-
BEM에 맞는 올바른 Class 명을 사용하였는가?
-
문서 구조에 맞는 HTML을 구성하였는가?
- Sectioning Elements 를 적재적소, 그리고 위치도 알맞게 썻는가?
HTML 비교(1) - header , nav 부분
- Expert Code :
- 버튼모양을 li 테그를 사용했네, 어차피 어디에 이동하는것이 아니기 때문에 li로 잡았다고함
<nav id="navbar">
<div class="navbar__logo">
<i class="fab fa-accusoft"></i>
<a href="#">Ellie</a>
</div>
<div class="navbar__menu">
<ul class="navbar__menu">
<li class="navbar__menu__item active">Home</li>
<li class="navbar__menu__item">About</li>
<li class="navbar__menu__item">Skills</li>
<li class="navbar__menu__item">My Work</li>
<li class="navbar__menu__item">
Testimonials
</li>
<li class="navbar__menu__item">Contact</li>
</ul>
</div>
</nav>
<!-- Home -->
<section id="home" class="section">
<img src="/imgs/yosup.jpg" alt="" class="home__avatar" />
<h1 class="home__title">
Hello, <br />
I'm Dream Coder
</h1>
<h2 class="home__description">
A Software Engineer currently residing in Sydney, Australia
</h2>
<button class="home__contact">
Contact me
</button>
</section>
- Yosup Code :
-
CSS방법론중 BEM에 맞는 명명법을 사용해봤다.
-
만약 나처럼 html을 작성할경우 즉 container를 만들고 거기에 배경을 넣고 그 배경을 사용하기 위해 그 안에다가 nav를 넣을시 생기는 문제점중 하나가 nav에 css인 sticky를 적용할때, 그 sticky의 기준점 범위가 body가 아닌 container로 한정되버리는 문제가 발생한다 따라서 전문가처럼 HTML을 작성해야지만 이러한 문제가 발생하지 않는다.
(sticky에 관한 정보)[https://jungyosup.github.io/css/css18/]
<header>
<div class="l_wrapper">
<div class="container">
<nav class="nav">
<h1 class="read-only">MenuBar</h1>
<div class="nav__logo">
<i class="fab fa-accusoft">Ellie</i>
</div>
<div class="nav__menubar">
<a class="selected">Home</a>
<a>About</a>
<a>Skills</a>
<a>My work</a>
<a>Testimonials</a>
<a>Contact</a>
</div>
</nav>
<div class="intro">
<img src="/imgs/yosup.jpg" alt="요섭이미지" class="intro__img" />
<span class="intro__title">
<h1>Hello,</h1>
<h1>I'm Dream Coder</h1>
</span>
<h3 class="intro__inform">
A Software Engineer currently residing in Sydney, Australia
</h3>
<button>
CONTACT ME
</button>
</div>
</div>
</div>
</header>
HTML 비교(2) - 첫번째 section 부분
-
Expert Code :
-
- section의 모습이 공통적으로 쓰여지는 형태가 많으므로(재활용) , 특정이름을 사용하기 보다는 그냥 테그만 사용한다(h1,p).
-
- title과 descripion 부분을 div로 잡았다.
<section id="about" class="section section__container">
<h1>About Me</h1>
<p>
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Reprehenderit quae
soluta similique corporis sint! Dolores consequuntur est eos tempora a iure,
exercitationem officia vitae labore illo eveniet excepturi fuga blanditiis.
</p>
<div class="about__majors">
<div class="major">
<div class="major__icon">
<i class="fab fa-accusoft"></i>
</div>
<h2 class="major__title">
Front-end
</h2>
<div class="major__description">
HTML, CSS, Javascript, TypeScript,
<br />React, Vue, Web APis
</div>
</div>
<div class="major">
<div class="major__icon">
<i class="fab fa-accusoft"></i>
</div>
<h2 class="major__title">
Front-end
</h2>
<div class="major__description">
Android, IOS,React Native, Fullter,
<br />Java, Swift, Kotlin
</div>
</div>
<div class="major">
<div class="major__icon">
<i class="fab fa-accusoft"></i>
</div>
<h2 class="major__title">
Front-end
</h2>
<div class="major__description">
Java, Javascript, Go, NodeJs,
<br />Rest APIs, GraphQL
</div>
</div>
</div>
</section>
-
Yosup Code
-
- 공통적으로 사용되는 부분에 이름을 주었는데, 그렇게 하는것보다 그냥 테그만을 사용하는게 좋다.
<section>
<h1 class="read-only">About me</h1>
<div class="l_wrapper">
<div class="about">
<div class="about__container">
<h1 class="about__container__title">About me</h1>
<p class="about__container__introduce">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nulla
consequuntur laudantium molestiae minus consequatur? Inventore
exercitationem totam, et fugiat quod possimus, voluptatibus
consequuntur qui, esse dicta nesciunt accusantium. Aliquam, veritatis!
</p>
<div class="about__container__items">
<div class="item">
<div class="item__iconbox">
<i class="fab fa-accusoft item__icon"></i>
</div>
<h2 class="item__title">Front-end</h2>
<p class="item__detail">
HTML, CSS, Javascript, TypeScript,React, Vue, Web APis
</p>
</div>
<div class="item">
<div class="item__iconbox">
<i class="fab fa-accusoft"></i>
</div>
<h2 class="item__title">Mobile</h2>
<p class="item__detail">
Android, IOS,React Native, Fullter, Java, Swift, Kotlin
</p>
</div>
<div class="item">
<div class="item__iconbox">
<i class="fab fa-accusoft item__icon"></i>
</div>
<h2 class="item__title">Back-end</h2>
<p class="item__detail">
Java, Javascript, Go, NodeJs, Rest APIs, GraphQL
</p>
</div>
</div>
</div>
</div>
</div>
</section>
HTML 비교(3) - 두번째 section 부분
-
Expert Code
-
- 나열같은곳은 list를 사용함
-
- BEM 형식으로 작성할때, class 명이 길어지게 사용하지 않음
-
- progress bar 를 작성할때, html에 테그로 존재한다고는 하나 CSS를 하기가 어려워 우리가 원하는 형식으로 만듬
<section id="skills" class="section">
<div class="section__container">
<h1>Skills</h1>
<h2>Skills & Attributes</h2>
<p>
Experience with all phases of the software life-cycle. Passion for
learning new technologies. Capable of working within a team environment
and independently. Ability to plan and time schedule, work under strict
time pressure and adapt quicly when needed
</p>
<div class="skillset">
<div class="skillset__left">
<h3 class="skillset__title">Skills</h3>
<div class="skill">
<div class="skill_description">
<span>HTML</span>
<span>99%</span>
</div>
<div class="skill__bar">
<div class="skill__value" style="width: 99%;"></div>
</div>
</div>
<div class="skill">
<div class="skill_description">
<span>CSS</span>
<span>90%</span>
</div>
<div class="skill__bar">
<div class="skill__value" style="width: 90%;"></div>
</div>
</div>
<div class="skill">
<div class="skill_description">
<span>Javascript</span>
<span>90%</span>
</div>
<div class="skill__bar">
<div class="skill__value" style="width: 90%;"></div>
</div>
</div>
<div class="skill">
<div class="skill_description">
<span>Typescript</span>
<span>80%</span>
</div>
<div class="skill__bar">
<div class="skill__value" style="width: 80%;"></div>
</div>
</div>
<div class="skill">
<div class="skill_description">
<span>React</span>
<span>88%</span>
</div>
<div class="skill__bar">
<div class="skill__value" style="width: 88%;"></div>
</div>
</div>
<div class="skill">
<div class="skill_description">
<span>Nodejs</span>
<span>77%</span>
</div>
<div class="skill__bar">
<div class="skill__value" style="width: 77%;"></div>
</div>
</div>
</div>
<div class="skillset__right">
<div class="tools">
<h3 class="skillset__title">Tools</h3>
<ul class="tools__list">
<li><span>Visual Studio Cpde</span></li>
<li><span>IntelliJ</span></li>
<li><span>Android Studio Code</span></li>
<li><span>IOS development tools</span></li>
<li><span>Setch app</span></li>
</ul>
</div>
<div class="etc">
<h3 class="skillset__title">Etc</h3>
<ul class="etc__list">
<li><span>Git</span></li>
</ul>
</div>
</div>
</div>
</div>
</section>
-
Yosup Code
-
- 어떤 나열을 할때는 list를 사용해야하나 하나, 나는 div를 사용했다.. 이거는 고치자.
-
- BEM 형식으로 작성할때 계속 이어서 작성하는것이 아니라는점..(다시한번 전문가꺼 확인해보고, BEM형식으로 작성하는 방법을 다시 알아보자)
<section>
<h1 class="read-only">Skill</h1>
<div class="l_wrapper">
<div class="skills">
<div class="skills__container">
<h1 class="skills__container__title">Skills</h1>
<h2 class="skills__container__subtitle">Skills & Attributes</h2>
<p class="skills__container__introduce">
Experience with all phases of the software life-cycle. Passion for
learning new technologies. Capable of working within a team
environment and independently. Ability to plan and time schedule, work
under strict time pressure and adapt quicly when needed
</p>
<div class="skills__container__box">
<div class="box__rightbox">
<h3 class="rightbox__title">skills</h3>
<ul>
<li>
<div class="rightbox__list">
<span>HTML</span>
<span>99%</span>
</div>
<div class="percent">
<div class="percent__right flex_99"></div>
<div class="percent__left flex_1"></div>
</div>
</li>
<li>
<div class="rightbox__list">
<span>CSS</span>
<span>90%</span>
</div>
<div class="percent">
<div class="percent__right flex_90"></div>
<div class="percent__left flex_10"></div>
</div>
</li>
<li>
<div class="rightbox__list">
<span>JAVASCRIPT</span>
<span>90%</span>
</div>
<div class="percent">
<div class="percent__right flex_90"></div>
<div class="percent__left flex_10"></div>
</div>
</li>
<li>
<div class="rightbox__list">
<span>TYPESCRIPT</span>
<span>80%</span>
</div>
<div class="percent">
<div class="percent__right flex_80"></div>
<div class="percent__left flex_20"></div>
</div>
</li>
<li>
<div class="rightbox__list">
<span>REACT</span>
<span>88%</span>
</div>
<div class="percent">
<div class="percent__right flex_88"></div>
<div class="percent__left flex_12"></div>
</div>
</li>
<li>
<div class="rightbox__list">
<span>NoDEJS</span>
<span>77%</span>
</div>
<div class="percent">
<div class="percent__right flex_77"></div>
<div class="percent__left flex_23"></div>
</div>
</li>
</ul>
</div>
<div class="box__leftbox">
<div class="leftbox__tools">
<h3 class="tools__title">Tools</h3>
<ul>
<li>Android development tools</li>
<li>iOS development tools</li>
<li>sublime Text with Plug-ins</li>
<li>Visual Studio</li>
<li>Team Foundation</li>
<li>Adobe Programs</li>
<li>Sketch app</li>
</ul>
</div>
<div class="leftbox__etc">
<h3 class="etc__title">
Etc
</h3>
<ul>
<li>Git</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
HTML 비교(4) - 세번째 section 부분
-
Expert Code
-
- 이미지를 눌렀을때 그거에 대한 사이트로 이동해야하므로 a 테그로 만들어줌
-
- 이미지는 크기가 클수록 불러오는데 시간이 많이 걸리므로, 최대한 내가 적용할만한 크기에 맞춰서 이미지를 조정하는게 좋다.
<section id="work">
<h1>My work</h1>
<h3>Projects</h3>
<div class="work__categories">
<button class="category__btn">
All<span class="category__count">8</span>
</button>
<button class="category__btn">
Front-end<span class="category__count">3</span>
</button>
<button class="category__btn">
Back-end<span class="category__count">3</span>
</button>
<button class="category__btn">
Mobile<span class="category__count">2</span>
</button>
</div>
<div class="work__projects">
<a href="#" class="project">
<img src="" alt="" />
<div class="project__description">
<h3>Youtuve Site</h3>
<span>Clone coding with HTML and CSS</span>
</div>
</a>
<a href="#" class="project">
<img src="" alt="" />
<div class="project__description">
<h3>Youtuve Site</h3>
<span>Clone coding with HTML and CSS</span>
</div>
</a>
<a href="#" class="project">
<img src="" alt="" />
<div class="project__description">
<h3>Youtuve Site</h3>
<span>Clone coding with HTML and CSS</span>
</div>
</a>
<a href="#" class="project">
<img src="" alt="" />
<div class="project__description">
<h3>Youtuve Site</h3>
<span>Clone coding with HTML and CSS</span>
</div>
</a>
<a href="#" class="project">
<img src="" alt="" />
<div class="project__description">
<h3>Youtuve Site</h3>
<span>Clone coding with HTML and CSS</span>
</div>
</a>
<a href="#" class="project">
<img src="" alt="" />
<div class="project__description">
<h3>Youtuve Site</h3>
<span>Clone coding with HTML and CSS</span>
</div>
</a>
<a href="#" class="project">
<img src="" alt="" />
<div class="project__description">
<h3>Youtuve Site</h3>
<span>Clone coding with HTML and CSS</span>
</div>
</a>
</div>
</section>
- Yosup Code
-
생각 없이 짯다는게 느껴지는게, project를 a가 아닌 div로 사용햇다는것
-
버튼을 만들때 , 어떨떄는 a 태그를 사용하고, 어떨때는 button을 사용하고 어떨때는 li 태그를 사용했다. 버튼을 만들때 명확한 구분이 필요할듯
<section>
<h1 class="read-only">My work</h1>
<div class="l_wrapper">
<div class="work">
<div class="work__container">
<h1 class="work__container__title">My work</h1>
<h3 class="work__container__subtitle">
projects
</h3>
<div class="work__container__menu">
<a>ALL</a>
<a>Front-end</a>
<a>Back-end</a>
<a>Mobile</a>
</div>
<div class="work__container__items">
<!-- 이미지를 여기다 주는게 맞을까? 아니면 백그라운드를 주는게 맞을까? -->
<div class="item">
<img src="/imgs/yosup.jpg" alt="" />
</div>
<div class="item">
<img src="/imgs/yosup.jpg" alt="" />
</div>
<div class="item">
<img src="/imgs/yosup.jpg" alt="" />
</div>
<div class="item">
<img src="/imgs/yosup.jpg" alt="" />
</div>
<div class="item">
<img src="/imgs/yosup.jpg" alt="" />
</div>
<div class="item">
<img src="/imgs/yosup.jpg" alt="" />
</div>
<div class="item">
<img src="/imgs/yosup.jpg" alt="" />
</div>
<div class="item">
<img src="/imgs/yosup.jpg" alt="" />
</div>
</div>
</div>
</div>
</div>
</section>
HTML 비교(5) - 네번째 section 부분
- Expert Code
<section id="testimonials">
<h1>Testimonials</h1>
<h3>see what they say about me</h3>
<div class="testimonials">
<div class="testimonial">
<img src="" alt="" class="testimonial__avatar" />
<div class="testimonial__speech-bubble">
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Obcaecati
repellat doloribus nostrum, inventore aliquam voluptatem odit dolore
ab consectetur repellendus fugiat eligendi esse, quo a reiciendis enim
magni aut totam?
</p>
<p class="name"><a href="">Ellie</a>/Samsung</p>
</div>
</div>
<div class="testimonial">
<img src="" alt="" class="testimonial__avatar" />
<div class="testimonial__speech-bubble">
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Obcaecati
repellat doloribus nostrum, inventore aliquam voluptatem odit dolore
ab consectetur repellendus fugiat eligendi esse, quo a reiciendis enim
magni aut totam?
</p>
<p class="name"><a href="">Ellie</a>/Samsung</p>
</div>
</div>
</div>
</section>
- Yosup Code
<section>
<div class="l_wrapper">
<div class="testimonials">
<div class="testimonials__container">
<h1 class="testimonials__container__title">
Testimonials
</h1>
<h3 class="testimonials__container__subtitle">
see what they say about me
</h3>
<div class="container__items">
<div class="item">
<img src="/imgs/yosup.jpg" alt="" />
<div class="item__inform">
<p>
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Amet,
maiores illo. Deleniti optio voluptatem quo recusandae sequi
nostrum veritatis. Aliquid molestias animi commodi at illum,
sapiente exercitationem quod cumque a!
</p>
<span>Ellie</span>
<span>/</span>
<span>Tigerspike</span>
</div>
</div>
<div class="item">
<div class="item__inform">
<p>
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Amet,
maiores illo. Deleniti optio voluptatem quo recusandae sequi
nostrum veritatis. Aliquid molestias animi commodi at illum,
sapiente exercitationem quod cumque a!
</p>
<span>Ellie</span>
<span>/</span>
<span>Tigerspike</span>
</div>
<img src="/imgs/yosup.jpg" alt="" />
</div>
</div>
</div>
</div>
</div>
</section>
HTML 비교(5) - footer 부분
-
Expert Code
-
- footer라고 안잡고 그냥 section으로 잡아줌, 위아 다르게 h1과 h2에 class명을 주었는데, 그 이유는 색상을 입히기 위함이다.
<section id="contact">
<h1 class="contact__title">Let's talk</h1>
<h2 class="contact__email">dream.coder.ellie@gmail.com</h2>
<div class="contact__links">
<a href="">
<i></i>
</a>
<a href="">
<i></i>
</a>
</div>
<p class="contact__right">
2020 Dream Coding Ellie - All rights reserved
</p>
</section>
- Yosup Code
<footer>
<div class="l_wrapper">
<div class="talk">
<h1 class="talk__title">Let's talk</h1>
<h2 class="talk__email">dream.coder.ellie@gmail.com</h2>
<div class="talk__sns">
<i class="fab fa-accusoft"></i>
<i class="fab fa-accusoft"></i>
</div>
<h1 class="talk__rights">
2020 Dream Coding Ellie - All rights reserved
</h1>
</div>
</div>
</footer>
HTML Ellie vs Yosup 총평
-
나 같은경우는 l_wrapper를 사용했고, 정확한 크기를 주기위해 section명 container 를 사용했는데, 이게 좋은방법일까??
-
굳이 Sectioning Elements 를 활용하지 않을 필요없이, 활용을 했으면 좋겠다. class도 적어주고..
-
section의 모습이 공통적으로 쓰여지는 형태가 많으므로(재활용) , 특정이름을 사용하기 보다는 그냥 테그만 사용한다(h1,p).
-
버튼모양을 li 테그를 사용했네, 어차피 어디에 이동하는것이 아니기 때문에 li로 잡음
-
BEM 형식으로 작성할때, class 명이 길어지게 사용하지 않음
-
버튼을 만들때 , 어떨떄는 a 태그를 사용하고, 어떨때는 button을 사용하고 어떨때는 li 태그를 사용하고 어떨때는 button을 사용함 버튼을 만들때 명확한 구분이 필요할듯
-
section ,header , 등에 큰 부분은 어차피 이름이 변하지 않으므로, class가 아닌 id를 주었다.
-
CSS를 어떻게 적용할지에 대한 생각도 하면서 HTML을 짜는것이 중요한것같다.
- nav 부분 작성할때 전문가와 나의 HTML의 차이를 통해, 그 이유가 나중에 CSS 적용때문에 저렇게 작성했어야 했던걸 알게되었다.
Leave a comment