여러 사이트를 접속하다보면 어떤 사이트는 금방 접속되는 반면에 한참이 걸린 후에야 페이지가 나타나는 것을 본 적이 있을 것이다. 사이트의 구조에 따라 페이지가 로딩되는 속도가 다르며 너무 오래 걸릴 경우에는 접속자에게 나쁜 인상을 줄 수 있으며 기업이나 회사와 같은 곳의 사이트에서 접속이 오래 걸릴 경우에는 브랜드에 안 좋은 영향을 줄 수도 있다. 어떤 사이트의 속도가 다른 사이트에 비해 어떤지 알아보는 방법에는 구글의 'Testmysite' 라는 사이트를 이용하는 방법이 있다.


모바일 페이지 로드 속도 테스트 : 'Testmysite'


'Testmysite'는 구글에서 운영하는 사이트이다.

한글 버전 : https://testmysite.withgoogle.com/intl/ko-kr

영어 버전 : https://testmysite.thinkwithgoogle.com/intl/en-us


[ 'Testmysite' 메인 페이지 ]


사이트에 접속을 하고 테스트하고 싶은 사이트 주소를 입력한다.


[ 사이트 검사중 ]


사이트 분석하기를 누르면 3g에서의 속도 테스트와 html, css, javascript 등을 여러 소스를 분석하게 되며 모바일 사용 편의성도 검사하게 된다.


[ 사이트 검사 결과 ]


사이트 검사결과 3g에서 로드시간은 7초가 나오며 양호함을 나타냈고 그로 인해 26%의 예상 방문자 손실률이 나타났다. 

검사 결과는 조금씩 차이가 있을 수 있으나 대부분 비슷한 결과를 나타낸다.


[업종 비교]


해당 사이트는 양호함을 받긴 했지만 같은 업종의 사이트들보다 로드 속도가 느린 결과를 얻었다.



[속도 높이기]


사이트 속도가 높아지면 방문자를 더 많이 확보할 수 있는데 그 방법을 알려주기도 한다.



[최고 해결 방안]


초기 렌더링에 중요하지 않은 자바스크립트는 첫 번째 렌더링 이후까지 비동기 또는 지연되어야 한다는 등 여러가지 해결 방안이 제시된다. 그리고 무료 보고서를 제공해주는데 이때 필요한 것은 결과를 받을 이메일 주소이다.



사이트를 제작하거나 운영하고 관심이 많은 분들은 'Testmysite' 사이트를 이용해보는 것도 좋은 방법일 것 같다.



과거에는 PC로만 인터넷에 접속했기 때문에 웹 사이트 디자인을 할 때 PC의 모니터를 기준으로 했다면 요즘은 PC, 테블릿, 스마트폰 등 다양한 기기들의 출현으로 글씨가 작게 보이는 등의 문제가 발생했다. 그런 이유로 PC버전과 모바일버전의 웹사이트를 따로 제작하게 되면 비용, 시간, 인력이 모두 2배로 들기 때문에 비효율적이다. 그리고 드디어 반응형 웹이라는 기술이 등장했다.


반응형 웹이라는 것은 다양한 기기, 환경마다 최적화된 웹사이트를 제공하는 것을 말한다.





반응형 웹의 장점


1. 유지보수가 간편하다.

- 모바일 버전과 데스크톱 버전을 따로 만들 경우 새로운 내용을 추가하거나 수정할 때 개별적으로 수정하는 반면 반응형 웹에선 한번에 할 수 있다.


2. 모바일 점유율의 증가.

- 모바일로 인터넷에 접속하는 사람들을 위한 모바일화면에 최적화된 화면을 구성할 수 있다.


3. 마케팅에 유리하다.

- 각 기기들에 최적화된 화면을 제공함으로써 웹 사이트에서 보여주고자 하는 내용을 잘 전달할 수 있다.


4. 검색 엔진 최적화가 가능하다.

- 검색 엔진 최적화(SEO, Search Engine Optimize)란, 포털 사이트나 검색 사이트에서 사용자가 특정 키워드로 검색했을 때 검색 결과에서 상위권에 나타나도록 관리하는 작업을 말하는데 데스크톱 전용 웹사이트와 모바일 전용 웹사이트 등으로 사이트가 나눠지면 주소 또한 나눠지게 되고 이런 경우, 검색엔진이 검색 결과를 나타냄에 있어서 불리함을 가진다. 반면에 반응형 웹을 이용하여 웹 사이트를 만들면 하나의 주소만을 사용하게 되어 검색 결과 노출에 유리함을 가지게 된다.


5. 미래 지향적 기술이다.

- 미래에는 테블릿, 스마트폰뿐만 아니라 TV, 냉장고, 내비게이션 등 더 다양한 기기들로 웹 사이트를 접속할 수 있게 될 것이다. 그렇기 때문에 다양한 화면에 최적화가 가능한 반응형 웹 기술이 필수적이다.



반응형 웹의 단점


1. 기획력과 디자인의 어려움

- 기기, 환경마다 최적화된 구조를 설계해야 하기 때문에 제작함에 있어서 조금 더 어렵다.


2. 높은 비용

- PC만 지원하는 웹 사이트 제작보다 더 많은 비용이 발생하며 유지 보수 비용 또한 높다.




반응형 웹을 만들기 위해서는 미디어 쿼리가 필요하다. 


미디어 쿼리는 CSS3부터 지원되는 기술로 미디어 타입, 화면 크기 등을 기준으로 다른 스타일 시트를 적용시켜 주며 이를 이용하여 화면 크기가 달라질 때 스타일을 바꿀 수 있고 반응형 웹을 만들 수 있다.





html, css, js 파일 등 웹 서버에 파일을 올렸는데 적용이 안된 경험을 한 적이 있는가?


이런 경우에 패치된 내용을 확인할 수도 없고 원인을 모른다면 정말 답답한 상황이 찾아온다.


이러한 현상이 일어나는 이유는 방문한 페이지를 다시 접속할 때 더 빠르게 보여주기 위해서 웹 브라우저에서 웹 캐시(문서, 그림, 파일 등)를 저장하기 때문이다.


이러한 기능 덕분에 우리는 더 빠른 페이지 로딩이 가능하지만 때로는 오래된 정보를 보여주는 경우가 생기기도 한다.


앞서 말한 새로운 파일이 적용이 안된 이유도 이것 때문이다.


그래서 우리는 웹 브라우저에서 캐시를 무시하거나 지우는 방법에 대해 알아야 한다.


OS와 브라우저에 맞는 방법을 찾아 여러 가지 방법들을 해보면 좋을 것 같다.


[캐시 무시하기]


1. 인터넷 익스플로러


Ctrl + F5(새로 고침)


2_1. 구글 크롬(window)


Ctrl + F5(새로 고침)


Shift + F5(새로 고침)


2_2. 구글 크롬(mac)


Cmd + Shift + R


2_3. 리눅스


Ctrl + F5


3_1. 사파리(버전 4 이상)


Shift + 새로 고침


3_2. 사파리(버전 3 이하)


Cmd +  R


4. 오페라


Ctrl + F5(새로 고침)


Shift + F5(새로 고침)


5. 캉커러


F5(새로 고침)


[캐시 지우기 & 설정 끄기]


1. 인터넷 익스플로러


* 캐시 지우기


1. Ctrl + Shift + Del

2. '임시 인터넷 파일 및 웹 사이트' 체크

3. '삭제' 버튼


* 캐시 설정 바꾸기


도구 -> 인터넷 옵션 -> 검색 기록 -> 설정 -> 캐시 및 데이터베이스 ->'웹 사이트 및 데이터베이스 허용' 에서 변경


2. 구글 크롬


* 캐시 지우기


1. Ctrl + Shitf + Del

2. '다음 항목 삭제' 옆 목록에서 '전체' 선택

3. '캐시 삭제' -> '인터넷 사용정보 삭제'


3. 파이어폭스


* 캐시 지우기


1. Ctrl + Shift + Del

2. '삭제할 기간' -> '전체' 선택

3. '캐시' 선택 -> '지금 삭제' 클릭


* 캐시 설정 바꾸기


설정 -> 고급 -> 네트워크 -> '자동 캐시 크기 관리' 체크 후 '제한 용량' 값 '0' 으로 변경

css 선택자를 처음 보는 사람은 이 글을 먼저 보길 바란다 → CSS 선택자(selector) 종류 정리 요약


먼저 설명했던 css 선택자는 태그와 클래스, id값을 이용하여 스타일을 적용 한 것이다.

반면에 지금부터 설명할 것은 '속성 선택자'와 '가상 클래스'이다. 

먼저 설명할 것은 속성 선택자이다. 이것은 태그 안에서 사용하는 속성들의 값을 이용하여 스타일을 적용 하는 방법이다.

같은 태그여도 속성에 따라 다양한 스타일을 적용할 수 있다는 장점이 있다.


명칭 

선택자 

설명 

[속성]형식 

[속성]{속성: 속성 값;} 

지정한 속성을 가지고 있는 요소

[속성=값]형식

[속성=값]{속성: 속성 값;} 

주어진 속성과 값이 일치하는 요소 

[속성~=값]형식

[속성~=값]{속성: 속성 값;} 

속성과 값이 일치하는 요소를 찾는데 비교값이 여러개이면 하나만 일치해도 적용 

[속성^=값]형식

[속성^=값]{속성: 속성 값;} 

지정한 문자로 시작하는 속성 값에만 적용

[속성$=값]형식 

[속성$=값]{속성: 속성 값;} 

지정한 문자로 끝나는 속성 값에만 적용

[속성|=값]형식 

[속성|=값]{속성: 속성 값;} 

속성이 지정한 값으로 시작하면 적용 

[속성*=값]형식

[속성*=값]{속성: 속성 값;} 

해당 값이 포함되있으면 적용 


(속성 선택자)



이번에는 가상 클래스에 대해 설명하겠다. 가상 클래스는 웹 문서 소스에는 존재하지 않지만 필요에 의해 임의로 가상의 선택자를 지정하여 사용하는 것이다. 예를 들면 이미지 위에 마우스를 올려뒀다던가 하는 여러 상황에 쓰인다.


명칭 

선택자 

설명 

:link 선택자

a:link{속성: 속성 값;} 

문서 안의 하이퍼 링크 중 아직 방문하지 않은 링크에 적용 

:visited 선택자

a:visited{속성: 속성 값;}  

한번 이상 방문한 사이트에 적용. 기본 색상은 자주색(puple) 

:active 선택자 

a:active{속성: 속성 값;}  

해당 요소가 활성화되었을 때 적용 ex)클릭한 상태 

:hover 선택자 

a:hover{속성: 속성 값;}  

해당 요소 위에 마우스 포인터를 올려놓았을 때 적용(롤오버) 

:focus 선택자 

a:focus{속성: 속성 값;}  

해당 요소에 초점이 맞춰졌을 때 적용 ex)텍스트 필드 안에 초점이 맞춰질때 

:nth-child(n) 선택자

태그:nth-child(n) 

n번째 자식 요소에 스타일을 적용한다. n에는 숫자를 넣어도 되지만 odd,even 또는 2n+1, 2n 등 수식을 사용 할 수 있다. 

:nth-last-child(n) 선택자

태그:nth-last-child(n) 

:nth-of-type(n)

태그:nth-of-type(n) 

같은 태그가 여러개 나열 되있을때 n번째 항목인지를 지정하여 적용한다. 

:nth-last-of-type(n)

태그:nth-last-of-type(n) 

 :first-child

태그:first-child 

첫 번째 자식 요소에 적용할 스타일이다.

:last-child 

태그:last-child 

마지막 자식 요소에 적용할 스타일이다.

:first-of-type

태그:first-of-type 

형제 관계에 있는 요소 중 첫 번째 요소에 적용한다. 

:last-of-type

태그:last-of-type 

형제 관계에 있는 요소 중 마지막 요소에 적용한다.

only-child

태그:only-child 

부모 요소 안의 자식 요소가 유일하게 하나일 때 스타일 적용한다. 

only-of-child

태그:only-of-child 

해당 요소가 유일한 요소일 때 스타일을 적용한다.

:checked

태그:checked 

라디오 버튼이나 체크박스가 체크 되었을 때 적용할 스타일 지정한다. 

::before 

태그::before{content : " ";} 

특정 요소의 내용 앞이나 뒤에 지정한 내용을 만들 수 있다. 이때 content 를 꼭 넣어줘야 실행되며 :: 는 css3 : 는 css2이다. 

::.after

태그::after(content : " ";} 

::selection 선택자

::selection{속성:속성 값;} 

드래그되어 선택되는 영역의 스타일을 지정한다. 

:not 선택자

:not(태그){속성:속성 값;} 

not 안에 포함된 태그를 제외한 모든 부분에 스타일 적용 


(가상 클래스)

'Web development > HTML & CSS' 카테고리의 다른 글

반응형 웹 디자인이란?  (0) 2017.11.11
11가지 한글 구글 폰트  (0) 2017.09.30
CSS 선택자(selector) 종류 정리 요약  (0) 2017.07.26
CSS 정의 및 특징  (0) 2017.07.22
HTML5 태그 미지원 브라우저  (0) 2017.07.19


[ 스타일의 상속 관계 ]


웹 문서에서 사용하는 태그들은 상속의 개념이 적용된다. 그래서 부모 요소와 자식 요소가 존재한다.

예를 들어 <ul><li>목록1</li><li>목록2</li></ul> 형태가 있을 때 ul은 li의 부모 요소이고 li는 ul의 자식요소이다.

그리고 부모 요소에 있는 속성들이 자식 요소로 이어지는데 이것이 바로 '상속'이다.


상속의 예로는 body에 배경색을 넣으면 자식 요소인 <h2>와 <p> 등에도 같은 배경색이 적용된다.


그리고 스타일은 단계적으로 적용되기 때문에


p{color:red;}

p{color:blue;}


처럼 같은 태그에 다른 스타일이 적용되면 마지막으로 정의된 스타일을 적용한다. 위 소스에서는 글자색에 'blue' 가 적용된다.


선택자는 여러가지가 있다. 선택자(selector)란, 속성이 어디에 적용되는지 표시하는 것이다.


 명칭

 선택자

 설명

 전체 선택자

 * {속성:속성 값;}

 페이지에 있는 모든 요소를 대상으로 스타일을 적용한다. 

 태그 선택자

 태그 {속성:속성 값;}

 특정 태그에 스타일을 적용한다.

 클래스 선택자

 .클래스이름 {속성:속성 값;} 

 특정 클래스에 스타일을 적용한다.

 id선택자 

 #id이름 {속성:속성 값;}

 특정 id에 스타일을 적용한다.

 하위 선택자 

 상위요소 하위요소 {속성:속성 값;} 

 모든 하위 요소에 스타일을 적용한다. 

 자식 선택자

 부모요소 > 자식요소 {속성:속성 값;} 

 자식 요소에만 스타일을 적용한다. 

 인접 형제 선택자 

 요소1 + 요소2 {속성:속성 값;} 

 첫 번째 동생 요소에 스타일을 적용한다. 

 형제 선택자  

 요소1 ~ 요소2 {속성:속성 값;} 

 형제 요소에 스타일을 적용한다. 

 그룹 선택자 

 요소1,요소2 {속성:속성 값;} 

 여러 요소들에 한번에 묶어서 스타일을 적용한다. 

[ 선택자(selector) ]



 하위 선택자 

  자식 선택자  

 인접 형제 선택자

 형제 선택자 

 section ul {속성:속성 값;} 

 section > ul {속성:속성 값;}

 h1 + p {속성:속성 값;}

 h1 ~ p {속성:속성 값;}

<body>

<section>

<p></p>

<ul>

<li>

<ul></ul>

</li>

<li>

<ul></ul>

</li>

</ul>

</section>

</body>

<body>

<section>

<p></p>

<ul>

<li>

<ul></ul>

</li>

<li>

<ul></ul>

</li>

</ul>

</section>

</body>

<body>

<section>

<h1></h1>

<p></p>

<p></p>

<p></p>

</section>

</body>

<body>

<section>

<h1></h1>

<p></p>

<p></p>

<p></p>

</section>

</body>

[ 헷갈리기 쉬운 선택자들 ]





위 사진의 왼쪽은 HTML 만으로 구성된 모습이며 오른쪽은 CSS를 이용하여 디자인을 한 모습이다.


CSS Cascading Style Sheet 의 줄임말이다.


html을 이용해서 텍스트와 이미지, 표 등을 웹 문서에 넣는 것을 물고기에 비유하자면 ''에 해당한다.


그럼 CSS 는 무엇일까? CSS는 텍스트에 크기와 색상을 주고 이미지의 크기와 위치, 표의 색상, 배치 등 웹 문서에 디자인을 추가한다.


비유하자면 물고기의 ''에 해당한다.


CSS가 없다면 웹 문서는 매우 투박하고 볼품없어질 것이다.

  • 목록1
  • 목록2
  • 목록3
위의 목록은 <ul> 태그와 <li>  태그를 이용해서 만든 것이다. 이것에 css 효과를 주면

  • 목록1
  • 목록2
  • 목록3


이렇게 만들 수 있다. 세로로 나열되있던 목록을 가로로 만들고 글자에 색을 입히고 크기를 키웠으며 배경색을 주는 등 웹 문서에 여러가지 효과를 줄 수 있다. 웹 페이지의 디자인은 css로 하는 것이다. 그리도 모바일, 태블릿 등 웹 문서에 접근 가능한 다양한 기기들이 나온 지금 css의 중요성은 더욱 커져가고 있다. 사실 html을 이용해도 간단한 디자인 효과를 주는 것도 가능하긴하다.



HTML


위의 글자는 html로 글자색을 준 것이며 소스는 <font color="red">HTML</font> 이다.


이것을 css 로 한다면


CSS


이며 소스는 아래와 같다.


<style>

.cssfont{color:red;}

</style>


<p class="cssfont">CSS</p>


이렇게만 보면 html로 효과 주는 것이 더 짧은데 왜 css를 사용하냐는 의문이 생길 수 있다. 하지만 같은 효과를 여러곳에 줄때 html은 하나하나 지정해줘야하지만 css는 한번에 지정해 줄 수 있는 등 소스가 길어질 수록 css의 중요성은 커진다.


다시 말하면 웹 문서에서 내용과 디자인을 html 과 css 로 분리 할 수 있다. 이것은 웹 표준에 필요한 것이기도 하며 사이트의 수정에 도움을 줄 수 있다.


html은 그대로 두고 css만 바꿔 주면 전혀 다른 디자인을 만들 수 있다. 인쇄용 문서, 모바일용 페이지, 태블릿용 페이지, TV용 페이지 등 CSS만 바꾸면 여러 매체에 사용할 수 있게 된다.


CSS는 <style>태그 사이에 넣는다. 보통 <style>태그는 <head>태그 사이에 넣는다.


html문서 안에 css를 넣는것을 간단하게 표현하면 이렇다. (내부 스타일시트)


<html>

<head>

<style></style>

</head>

<body>

</body>

</html>


또는 css를 넣는 다른 방법도 있다(외부 스타일 시트)


<html>

<head>

<link href="외부 css 파일 경로" rel="stylesheet" type="text/css">

</head>

<body>

</body>

</html>


그리고 html과 다른점이 있다면 html에서는 주석을 넣을 때 <!-- 주석 --> 이랫다면 

css에서는 /* 주석 */ 를 사용한다.


css를 사용하면 한번에 문서에 디자인을 바꿀 수 있다.


p{

color:red;

}


위 소스를 사용하면 <p> 태그안의 모든 글자 색상은 red가 된다. 여기서 p 부분을 선택자(select)라고 한다.


선택자에 { 와 } 사이에 들어간 속성들을 주는 것이다. 


간단하게 css에 대해 알아봤다. css는 웹 문서에 없어서는 안되는 필수 요소이다. html을 배운다면 css도 꼭 알아두도록 하자.

@charset utf-8;


/* css 초기화 */

html, body, div, span, applet, object, iframe, 

h1, h2, h3, h4, h5, h6, p, blockquote, pre, 

a, abbr, acronym, address, big, cite, code, 

del, dfn, em, img, ins, kbd, q, s, samp, 

small, strike, strong, sub, sup, tt, var, 

b, u, i, center, 

dl, dt, dd, ol, ul, li, 

fieldset, form, label, legend, 

table, caption, tbody, tfoot, thead, tr, th, td, 

article, aside, canvas, details, embed, 

figure, figcaption, footer, header, hgroup, 

menu, nav, output, ruby, section, summary, 

time, mark, audio, video { 

margin: 0; 

padding: 0; 

border: 0; 

font-size: 100%; 

font: inherit; 

vertical-align: baseline; 

/* HTML5 display-role reset for older browsers */ 

article, aside, details, figcaption, figure, 

footer, header, hgroup, menu, nav, section { 

display: block; 

body { 

line-height: 1; 

ol, ul { 

list-style: none; 

blockquote, q { 

quotes: none; 

blockquote:before, blockquote:after, 

q:before, q:after { 

content: ''; 

content: none; 

table { 

border-collapse: collapse; 

border-spacing: 0; 

}

'Web development > HTML & CSS' 카테고리의 다른 글

HTML5 태그 미지원 브라우저  (0) 2017.07.19
HTML 이미지 맵 만들기(usemap)  (0) 2017.07.18
HTML 기본 구조(기본 틀, 초기설정, 세팅)  (0) 2017.07.15
UTF-8 과 EUC-kr  (0) 2017.07.14
HTML 태그 요약  (0) 2017.07.14

+ Recent posts