앱)javascript에서 java spring과 연동처리

Posted by HULIA(휴리아)
2018. 11. 14. 20:24 프론트엔드/자바스크립트
$.ajax({
url:"<c:url value='xxx.do' />",
type:'post',
beforeSend:function(xhr){
xhr.setRequestHeader("AJAX", "true");
},
data:자세히 다룬다
contentType:"application/x-www-form-urlencoded; charset=UTF-8",
error : function(xhr,status, error) {
if(xhr.status=403){
location.href="<c:url value='/login/intro.do' />";
},
successs:function(data){
${'#xxx').html(data);
}
});



data를 넘기는 여러가지 방법
case1)
var queryString = $("form[name=searchForm]").serialize();
data : queryString


case2)
var data = $("addForm").serialize();
data : data;

case3)
data : { searchId : $('#searchId').val(),
},

case4)
data:{ flag : syncFlag,
            registered : "${변수명}"
}

case5)
data : {'idlist' : getcheckedIds()},

앱)자바스크립트와 node.js를 이용한 웹 크롤링 테크닉

Posted by HULIA(휴리아)
2018. 11. 13. 21:01 프론트엔드/자바스크립트
ECMAScript는 Ecma international에 의해 표준화된 스크립트 언어의 명세서다
이 명세서는 웹 브라우저별로 달랐던 클라이언트 기반 스크립트의 구현을 표준화시키기 위해 만들어 졌음

html5덕에 스마트폰 애플리케이션마저도 자바스크립트로 개발할 수 있게 되었음

node.js라는 실행엔진
node.js는 웹서버처럼 네트워크 프로그래밍을 위해 개발된 자바스크립트 실행 환경이다.
그 심장부에는 구글 크롬에 탑재된 자바스크립트 엔진 V8이 있다
V8의 가장 큰 특징은 고속 수행능력이다
웹브라우저의 자바스크립트가 보안 때문에 파일처리 등이 불가능한 것에 반해 node.js를 사용하면 파일처리부터 네크워크 처리까지 다양한 작업을 소화가능
패키지 매니저인 npm을 사용하면 다양한 확장기능을 쉽게 도입 가능

Rhino와 Nashon
이들 자바스크립 엔진은 자바로 구현되어 있다.
그래서 자바의 가상머신위에서 자바스크립트를 실행가능
이들 자바스크립트 엔진의 최대 장점은 자바스크립트로 자바의 기능에 접근할 수 있는 것
즉 자바스크립트로 자바의 방대한 api나 라이브러리를 이용가능

이 책에서도 자바의 라이브러리를 이용한 프로그래밍을 소개하는데 이것이 가능한 것은 자바스크립트 엔진이 자바의 가상머신 위에서 수행되기 때문

Rhino는 자바 1.4이후에
그리고 Nashon은 자바 8이후에 이용할 수 있는 자바스크립트 엔진이다

기본적인 기능은 같으나 Nashon은 최신 자바버젼에 맞게 다시 작성되어서 jvm의 새로운 기능을 이용한 고속 수행이 가능하다 그리고 에러메시지가 친절하게 나와 디버깅이 쉽다는 특징이 있다

===
자바스크립트가 데이터 수집에 적합한 이유
코드 작성이 쉬운점을 들 수 있다
자바 스크립트를 위한 풍부한 라이브러리가 준비되어 있다

===
데이터 활용법에 관하여
크롤링하여 얻은 데이터를 활용하는 방법으로는 예측과 분류 그리고 연관 규칙 추출 등을 생각해 볼 수 있다

데이터마이닝
대량의 데이터를 분석하여 그안에서 가치 있는 정보를 발굴하는 것을 말한다
특히 지금까지 알려지지 않은 정보를 대량의 데이터에서 추출하는 기술체계를 가리킨다.
데이터를 조사할때는 통계학, 패턴 인식, 인공지능 등의 데이터 분석 기법을 사용한다.

원래 마이닝이란 채광이라는 뜻이다. 넓은 광산에서 숨겨진 금맥을 채굴하는 것처럼 대량의 데이터를 분석하여 가치 있는 정보를 찾아내는 것이 데이터 마이닝이다

데이터 마이닝에서 텍스트를 대상으로 하는 것을 텍스트 마이닝, 웹 페이지를 대상으로 하는 것을 웹마이닝이라고 한다

데이터마이닝의 기본은 예측, 분류, 연관 규칙 추출
데이터 마이닝의 어려운 점은 단순히 데이터를 넣으면 결과가 나오는 것이 아니라는 점에 있다.
대량의 데이터에서 지식을 찾아내기 위해서는 가설을 세우는 것이 좋다.
마케팅 분야에서는 가설을 세우고 검증하기 위해 예측, 분류, 연관 규칙 추출 기법을 검토한다.

예측:
장래 발생할 일이나 상태의 변화를 어떠한 근거에 기반을 두고 헤아려 보는 것을 말한다
비슷한 의미를 가지는 예상이라는 단어도 있지만, 예측이 예상과 다른 점은 보다 논리적인 근거에 기초하고 있다는 점
일반적으로 예측을 할때는 어떤 일이 발생활 확률을 계산하게 된다

분류:
많은 물건이나 현상들을 어떤 기준에 따라 체계적으로 구분하여 정리하는 것을 말한다.
분류를 하면 정보가 정리되어 사람이 파악하기 쉽게 된다.
방대한 장서를 분류함으로써 독자가 책을 찾기 쉬워진다.

연관 규칙 추출:
연관 규칙이란 어떤 일과 다른 일사이에 연결고리가 있음을 말한다
데이터베이스에 쌓인 데이터를 조사해보면 빈번하게 동시에 일어나는 경우를 발견할 수 있다.
이러한 정보는 전략에 활용될 수 있을 것이다

데이터 마이닝(특히 텍스트를 분석하는 텍스트 마이닝)의 순서
1)대상 데이터 수집
2)형태소 분석등으로 데이터 분할
3)데이터 클린징(이상치, 결손치, 노이즈 제거)
4)데이터 요약(차원 축소, 특징 선택 등)
5)데이터 마이닝(통계나 다른 데이터와 조합)
6)평가와 검증

대상 데이터를 수집하면
형태소 분석으로 텍스트를 이용하기 쉬운 최소단위(형태소)로 분할한다
그런 다음 클린징을 통해 이상치 및 결손치, 노이즈 등을 제거한다.
그리고 어떻게 활용할지를 고려하여 데이터를 요약한다. 예를들면 수치화하거나 의미있는 집합으로 모은다.
마지막으로 평가와 검증을 실시한다

대표적인 데이터 마이닝 기법
1)연관성 분석:X가 발생하면 Y도 발생할 가능성이 높다
2)회귀 분석:X의 속성으로부터 수치 변수 Y를 예측
3)클래스 분류:X의 속성으로부터 속하는 클래스 C를 예측
4)클러스터링:비슷한 것들 서로 묶는다

1)의 연관성 분석은 연관성 규칙 추출이라고 한다
대표적인 활용 예는 소매업의 POS시스템이다
예를 들어 편의점에서 빵과 야채 주스를 사는 사람은 요쿠르트도 같이 산다와 같은 분석을 하는 것을 말한다
이는 쇼핑 바구니속의 조합을 빠짐없이 조사하여 그중에서 흥미로운 결과를 찾아내는 분석이다

2)의 회귀분석은 상관 관계나 인과 관계가 있다고 생각되는 두 개의 변수 중 하나의 변수를 통해 미래의 값을 예측하기 위한 예측식을 구하는 방법이다
데이터 추세를 분석함으로써 예측을 할 수 있다

3)의 클래스 분류는 보다 정확하게 분류하는 모델을 만드는 것을 목적으로 한다
방정식이나 규칙, 확률, 매칭 등 다양한 기법이 있다

4)의 클러스터링은 데이터 집합을 공통의 특징을 갖는 부분 집합(클러스터)으로 나눈다
거리가 근접한 유사성을 기준으로 클러스터링을 한다


조사확인
phantomjs를 pdf를 다운받아보기
자바환경에서 pdf를 다운로드 받도록 하는 방법

d3.js에서 파생된 라이브러리(javascript graph comparison-www.jsgraphs.com)
NVD3.js. c3.js가 대표적 특히 c3가 예제가 많아 서 좋다

차트 관련 js 정리

Posted by HULIA(휴리아)
2018. 11. 11. 00:39 프론트엔드/자바스크립트

Canvasjs

Chartjs

Startbootstrap

Charts google

Bootstrap select, datepicker, growl

Jquery barfiller, easy-pie-chart, datatables, ui

Momentjs

Wavejs



Sweetalert2

Fullcalendar

Aufosizejs

Summernote 에디터

Es6 promise 콜백지옥 해결


Barfiller



Android 광고 ID 사용 및 개발자 배포 계약의 4.8 조항을 위반 메일왔을때에 대처

Posted by HULIA(휴리아)
2018. 10. 25. 23:35 프론트엔드/안드로이드

처음으로 위반 메일 오고 한동안 맨붕에 빠졌습니다

앱을 전체 다 수정해야하는가 아니가하고 한달동안 손도 못되고 플레이스토어에서 앱이 삭제되는 일이 벌어졌지요...


그리고 이제야 대처를 했네요ㅋㅋ


해결 방법은 

1단계)개인정보처리방침 만들고 

2단계)개이정보처리방침의 링크를 구글 플레이 콘솔에 로그인해서 메뉴중에 앱 정보 > 스토어 등록정보의 개인정보처리방침에 링크를 추가하고 앱 다시 제출하기 버튼을 클릭하면 됩니다




1단계를 도와줄 수 있는 사이트가 있답니다

도움사이트1) 개인정보보호 종합포털(https://www.privacy.go.kr/main/mainView.do)에 접속해서 오른쪽 하위에 개인정보 처리방침 만들기를 통해서 만들기

배포되는 개인정보처리방침작성예시(민간용)입니다

개인정보처리방침_작성예시(민간용).hwp


도움사이트2)  (https://app-privacy-policy-generator.firebaseapp.com/)에 접속해서 개인정보 처리방침 만들기



개인정보보호지침들 예시 1)

http://www.mombie.kr/single-post/2017/09/12/%EB%A7%98%EB%B9%84-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%B1-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4-%EC%B7%A8%EA%B8%89%EB%B0%A9%EC%B9%A8


개인정보보호지침들 예시 2)

http://cubana7.cafe24.com/254


개인정보보호지침들 예시 3)

http://superwony.tistory.com/8


개인정보보호지침들 예시 4)

http://elwoxcorp.com/?page_id=887


개인정보보호지침들 예시 5)

https://new.whooing.com/#info/privacy


개인정보보호지침들 예시 6)

https://policy.naver.com/policy/privacy.html





앱)html5 기본 템플릿 basic structure

Posted by HULIA(휴리아)
2018. 6. 11. 17:17 프론트엔드/그래픽디자인_퍼블리싱
<!DOCTYPE html>
<html lang="en">
<head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
       <meta name="viewport" content="width=device-width, initial-scale=1">
      
       <title>html5</title>
      
       <link rel="stylesheet" type="text/css" href="css/style.css?v=1.0">
       <link rel="shortcut icon" type="image/x-icon" href="images/favicon.png" />
        
       

</head>


<body>
       <header>
            <nav>
                 <ul>
                     <li></li>
                     <li></li>
                 </ul>
            </nav>
      <header>

       <!--contents1-->
       <section>
            <article>
                 <header>
                       <h2></h2>
                       <p></p>
                 </header>
                  <p>
              </article>
       </section>

       <aside>
                <h2></h2>
                <p>
       </aside>

       <footer>
               <p>
       </footer>


      <script type="text/javascript" src="js/scripts.js"></script>
</body>
</html>




https://www.webcodegeeks.com/html5/html5-page-structure-example/

웹 표준 퍼블리싱 바이블 책 정리(3)

Posted by HULIA(휴리아)
2018. 6. 4. 22:26 프론트엔드/그래픽디자인_퍼블리싱

플롯(float)

***디자인 과정에서 레이아웃을 지정할때 가장 많이 활용하는 속성

<1> float을 지정하면 다음에 오는 컨텐츠가 float을 지정한 블록 주위를 감싸게 됩니다




연습용 이미지 만들기

http://placehold.it/가로크기*세로크기


일정분량의 의미없는 텍스트가 필요하다면

http://html-ipsum.com/


텍스트가 이미지 옆으로 별도의 새로운 칼럼으로 만든 것처럼 정렬하고 싶다면 margin을 활용

margin은 float를 지정한 블록부터가 아니라 바깥에 감싸고 있는 영역에서 그값을 계산해야 함을 유의해야 합니다


<2> float의 영향을 받지 않으려면 clear 속성으로 float를 해지해야 합니다

clear의 값으로는 left, right, both 세 가지가 있습니다.

left는 float:left를 해지하고, right는 float:right를 해지하며

both는 두 값을 모드 해지



***float를 활용한 레이아웃 만들어 보기

문서의 레이아웃은 대부분 2단 혹은 3단의 형식을 가지게 되는데, 이렇게 단을 표현하기 위해 가장 효과적인 방법이 float입니다. 그리고 float를 지정한 후에는 정확한 위치에서 clear를 지정하는 것이 아주 중요


float를 지정하는 경우 해당 요소가 감싸고 있는 내용에 width가 지정돼 있다면 생략 가능합니다

float를 지정했다면 두 태그를 감사고 있는 container에서 가장 마지막 위치(:after)에 clear를 지정해야 합니다. 또한 익스플로러 6에서는 :after대응 방법으로 zoom:1을 같이 지정해 줍니다




position의 특징

플롯과 함께 레이아웃을 작성하는데 가장 중요한 속성이 position입니다 

값으로는absolute, relative, fixe의 3가지가 있습니다. 이렇게 설정된 후에는 left, right, top, bottom 속성으로 그 위치를 지정하게 됩니다


참고)html 문서에 2개 이상의 태그가 나열되면, 당연히 뒤에 배치되는 태그는 앞에 놓인 요소를 기준으로 배치됩니다. 하지만 position속성의 값을 absolute로 지정하면 다음 요소가 이 블록을 인지하지 못한 채 오로지 주어진 절대값을 기준으로 배치됩니다


absolute를 지정한 후 left, top, right, bottom속성으로 위치를 지정할수 있습니다

이때 absolute 적용 태그를 감싼느 블록에 postion이 지정되어 있다면 그 블록이 위치의 기준이 되지만, 지정되지 않았다면 <body>영역이 기준이 됩니다


position 값으로 relative를 지정햇다면 left, top, right, bottom의 위치값들 relative가 지정된 블록 그 자신의 위치(2번째 놓이는 태그는 첫번째 요소의 다음 위치-블락요소라면 다음줄에 인라인요소라면 옆에 위치함)에서 지정한 값만큼 이동하게 됩니다


position:absolute를 지정하는 경우, 이를 감싸는 블록에는 relative를 지정해야 합니다


position:relative 와 margin을 적절히 활용해도 효과적인 레이아웃을 작성 가능

position값을 지정하고 left,top, right,bottom 등 위치값을 지정하는 일반적이지만, 그 대신 margin값을 적절히 활용하는 것이 효과적일 때가 많습니다


position의 값이 fixed 라면 이 박스의 위치는 항상 <body>를 기준으로 정렬됩니다. 또 fixed 값의 가장 큰 특징은 말 그대로 고정되었다는 점입니다.


position을 지정한 여러 블록이 겹쳐지게 되면 나중에 작성한 블록이 위로 올라가게 됩니다. 이 경우 z-index 속성으로 위 아래의 위치를 조정할 수 있으며, 큰 값이 위로 올라가게 됩니다

z-index의 값은 0, 1, 2, 3 또는 -1, -2, -3 등의 정수를 지정할 수 있으며 , 소수는 쓰지 않도록 합니다. 



z-index 값은 너무나 크게 지정하지 않도록 합니다. 물론 제한 범위를 벗어난 값을 쓰는 경우는 없겠지만, 만일을 위해 z-index의 최대값을 알아보면, 사파리 버젼 3 브라우저의 경우는 16777271이고 그외 브라우저들은 21447483647입니다


z-index 값을 지정할 경우 주의할 점은 비교 대상을 정확히 이해해야 한다는 것

간혹 브라우저에서 버튼이나 메뉴가 클릭되지 않는다면 z-index 값을 조정해 줄 필요가 있습니다



예)항상 하단에 떠 있는 버튼 그리기

<!DOCTYPE html>

<html lang="ko">

<head>

<meta charset="utf-8">

<title>position layout</title>

<style type="text/css">

*{

margin: 0; 

padding: 0;

}

html{

overflow-y: scroll; 

}

html,body{

width: 100%;

height: 100%;

}

body{

font: 12px Tahoma,sans-serif;

}

li{

list-style: none;

}

#wrap{

width: 800px; 

min-height: 100%;

_height: 100%;

margin: 0 auto; 

background-color: silver;

}

#header{

background-color: red;

}

#container{

/*padding-bottom: 30px;*/

padding-bottom: 80px;

*zoom: 1; 

background-color: green;

}

#container:after{

content: ""; 

display: block; 

clear: both;

}

.nav{

float: left; 

width: 180px; 

background-color: lime;

}

#content{

float: right; 

width: 600px; 

background-color: lime;

}

#footer{

position: relative;

margin-top: -80px;

height: 80px;

background-color: blue;

}

</style>

</head>

<body>


<div id="wrap">

<div id="header">

<h1>LOGO</h1>

<p>This website is...</p>

</div><!-- //header -->


<div id="container">

<div class="nav">

<h2>Navigation</h2>

<ul>

<li><a href="#">Menu 1</a></li>

<li><a href="#">Menu 2</a></li>

<li><a href="#">Menu 3</a></li>

</ul>

</div><!-- //snb -->


<div id="content">

<h2>Content Title</h2>

<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>

</div><!-- //content -->

</div><!-- //container -->


</div><!-- //wrap -->


<div id="footer">

<div class="footerArea">

<address>Seoul, Korea</address>

</div>

</div><!-- //footer -->


</body>

</html>




그라디언트 지정

css3에서는 background속성으로 선형과 원형의 그라디언트를 표현가능

vendor prefix(접두사 설정)을 적용해야 제대로 반영

colorzilla(http://www.colorzilla.com/gradient-editor/)가 있습니다

웹 표준 퍼블리싱 바이블 책 정리(2)

Posted by HULIA(휴리아)
2018. 6. 4. 22:25 프론트엔드/그래픽디자인_퍼블리싱

가상선택자(익스플로러6에서는 :link, :visited, :hover, :active만 지원)

1)링크 가상 클래스

링크가 지정되어있다면 :link

해당 링크를 방문했다면 :visited


2)동적 가상 클래스

동작에 따른 변화를 렌더링하는 방법으로 클릭하는 경우 :active

마우스를 올릴경우 :hover

키보드의 tab키로 접근하는 경우 :focus


3)의사 요소 선택자(익스플로러 6, 7 에서는 지원안됨)

어떤 태그를 선택하는 경우 

그 태그의 시작지점(:before)이나 

끝 지점(:after)를 선택하거나 

첫 번째 자식태그(:first-child)

마지막 자식태그(:last-child)

첫번째 글자(:first-letter)

첫번째 라인(:first-line)

등 지정가능

-> 이미 원하는 태그를 선택하기 위해 클래스 명이나 아이디 명을 지정하지 않아도 아주 구체적으로 선택할 수 있는 다양한 방법이 예전부터 있었고 또 새롭게 추가되기도 한것


선택자의 우선순위(값이 클수록 우선순위가 높다)

-공통 선택자(*로 시작하는 선택자): 0

-태그 선택자: 1

-클래스 선택자: 10

-아이디 선택자: 100


**우선순위에 관계없이 적용되는 css

!important을 {}의 가장 마지막에 넣어주면 됨


서체에는 저작권이 있다

저작권에서 자유로운 서체는 많지 않으므로 주의해야 합니다

한글 서체중에는 네이버에서 지원하는 나눔서체가 있다

**각 브라우저마다 지원하는 폰트의 확장자가 다르다

익스플로러 6,7,8 .eot를 지원

익스플로러 9  .woff를 지원

크롬, 사파리, 파이어폭스, 오페라 등은 .ttf, .otf, .woff를 지원


무료로 구글 웹폰트 적용도 가능하다(익스플로러 9이상)


vertical-align(수직정렬 인라인 요소끼리의 위 아래 간격 맞출수 있음)

-baseline

-sub(부모태그의 아래첨자)

-super(부모태그의 윗첨자)

-top(부모태그의 상단)

-text-top(부모태그의 글꼴 요소의 상단)

-middle, bottom, text-bottom


**img태그고 블록태그안에 있을경우 공백이 있을경우 vertical-align:top으로 공백을 제거할 수 있다



글의 줄바꿈 

1)word-break

2)white-space - 줄바꿈 금지하거나 <pre>태그의 특성을 부여

-nowrap(줄바꿈 금지)

-pre(작성한 그대로 표현)

-pre-wrap(pre비슷하지만 지정한 영역을 넘어가지 않습니다)

-pre-line(pre-wrap과 비슷하지만 띄어쓰기 한 공백은 한칸만 표현됩니다)


목록(list) 스타일 - list-style-type으로 목록 타입 지정하기

목록에는 ul과 ol이 있습니다

비순차적인 <ul>은  앞에 disc, circle, square 형태로 블릿 표시가 생깁니다

순차적인 <ol>은 각 항목 별로 숫자가 붙는데, 알파벳이나 로마숫자로 변경할 수도 있음


<ul>태그관련

list-style-type:disc;

list-style-type:circle;

list-style-type:square;


<ol>태그관련

list-style-type:decimal;

list-style-type:decimal-leading-zero;

list-style-type:lower-roman;

list-style-type:upper-roman;


https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type


**블릿을 안쪽과 바깥쪽 표시

list-style-position:inside

list-style-position:outside


list-style-image 많이 안 쓴다


display속성은 css의 많은 속성중에서도 아주 중요

display 속성을 통해서 block과 inline을 지정할 수 있다

div:블락 span:인라인

서로가 인라인과 블락이 될수 있다

width속성은 블락요소에만 적용됨



display:none의 의미

해당 태그가 없었던 것으로 간주함


display:inline-block

게시판 하단의 페이징(1,2,3,4….) 부분을 꾸미는데 아주 유용합니다

인라인 요소는 크기를 가질수 없고,

블록요소는 텍스트 정렬이 적용되지 않습니다


display:list-item


display:table,table-caption, table-cell, table-column, table-column-group, table-footer-group, table-header-group, table-row, table-row-group 등 값 활용 가능

테이블 관련



visibility:hidden 은 보이지는 않지만 공간은 차지

display:none은 보이지도 않고 공간도 차지 하지 않음



background

배경에 관련된 여러가지 속성을 포함

background-color(색상)

background-image(이미지 경로)

background-repeat(이미지 반복)

background-attachment(이미지 고정)

background-postion(이미지의 위치)

-값은 기본으로 2가지를 작성합니다

이중에서 앞에 작성하는 값은 영역의 가로를 기준으로 작성하고 뒤에 지정하는 값은 세로를 기준으로 작성합니다

-값을 하나만 지정하는 경우, 숫자로 작성하면 그값은 가로기준이 됩니다.

이경우 세로 기준의 값은 중앙으로 설정되어 있습니다

그러나 값으로 상단이나, 하단을 지정하면, 이값은 세로 기준의 값이 되고 생략된 가로 값은 역시 좌우 중앙이 설정 됩니다

즉, 정리하면 background-position:top은 background-position:center top과 같고

backgorund-position:20px은 background-position:20px center와 같다


background:red 와 background-color:red는 서로 다른 표현

background와 background-color를 동시에 써야할경우

background를 먼저 쓰고 나중에 background-color를 써야함


opacity 투명하게 하는 효과

배경뿐아니라 글자에도 적용 태그전체에도 적용


background-size


한 태그에 여러개의 배경 이미지 적용하기

background:

url() no repeat  0 0,

url() no repeat  100% 0,

url() no repeat  0 100%,

url() no repeat  100% 100%,

url() no repeat  40px 40px;


background-clip

backgorund-orgin


min-height:100px;

_height:100px


_height와 같이 속성 앞에 _를 붙이면 익스플로러6에서만 적용되는 CSS를 말합니다

이런것을 Hack이라고 하는데 이렇듯 브라우저 호환성을 위해 불가피하게 핵을 지정하는 경우가 있습니다

max-height : 최대 높이 지정, min-width:최소 너비 지정, max-width : 최대 너비 지정


테두리의 모서리 둥글게 표현하기

-border-radius:10px; -> 네 방향 모두 10px의 둥근 모서리를 가집니다

-border-radius:10px 5px 0 8px; -> 좌측 상단부터 시계방향으로 적용됩니다

-타원형으로 만들기 

/이전은 모서리의 width(네개 모서리 지정가능) 

/이후는 모서리의 height지정(네개 모서리 지정가능)


margin:auto 는 margin을 활용한 중앙정렬

대신 width가 지정되어야 함



값을 표현하는 경우

%와 px로 지정하는 것은 큰 차이가 있다

%로 값을 지정하면 해당 영역의 %지점에 배경 이미지의 %지점이 위치하게 됩니다

그러나 px로 값을 지정하면 해당 영역의 px값 위치가 배경 이미지의 시작 지점이 된다는 점입니다

웹 표준 퍼블리싱 바이블 책 정리(1)

Posted by HULIA(휴리아)
2018. 6. 4. 22:24 프론트엔드/그래픽디자인_퍼블리싱

웹표준의 장점

-관리측면 유리

-웹 접근성 향상

-검색엔진 최적화

-호환성 및 상호운영성


웹표준의 구성

-구조언어:HTML, XHTML, XML, SVG

-표현언어:CSS, XSL

-동작언어:Javascript, Ecmascript


1)구조언어와 표현언어를 섞어서 사용하지 않아야 합니다

2)구조언어와 동작언어를 분리해야 합니다


HTML5

-Semantics

메타데이터 컨텐츠, 플로우 컨텐츠, 섹셔닝 컨텐츠, 헤딩 컨텐츠, 프레이징 컨텐츠, 임베디드 컨텐츠, 인터랙티브 컨텐츠, 트랜스패어런트 컨텐츠

-offline & storage

인터넷이 연결되지 않은 상태에서도 응용 프로그램 동작할수 있게 해줌

-device access

디바이스의 하드웨어에 접근할 수 있는 기술(카메라/스피커/터치액정)

-connectivity

연결성을 위해서 웹 소켓을 지원(웹소켓 응용프로그램이 서버측 프로세스와 직접정인 양방향통신을 할 수 있도록 고안)

더 빠른 게임이나 실시간 채팅이 가능함

-multimedia

플러그인 없이 동영상이나 사운드를 재생할 수 있음(audio태그, video태그)

단, 브라우저마다 지원하는 형식이 따로 있음

mp3 -  익스플로러9, 크롬6, 사파리5

wav - 파어어폭스4, 크롬6, 사파리5, 오페라10.6

ogg - 파이어폭스4, 크롬6, 오페라10.6


mp4 - 익스플로러9, 크롬6, 사파리5

webM - 파이어폭스4, 크롬6, 오페라10.6

ogv - 파이어폭스4, 크롬6, 오페라10.6


-3D, graphics & effects

2차원 및 3차원 그래픽을 처리하기 위해 SVG, CANVAS, WebGL, CSS3 3D 

-performanace & integration

웹 워커를 사용하면 복잡한 프로그램을 수행하느라 컴퓨터가 잠시 멈춰버리는 경우를 피할 수 있다 XMLHttpRequest2와 같은 다양한 기술로 AJAX를 대체할 수도 있다


-CSS3

그라데이션, 애니메이션, 3D 등 다양한 표현 가능

기존은 항목별로 개발 되었지만 CSS3는 모듈단위로 개발


***언어의 개발단계는 보통 다음의 5단계를 따릅니다

1.작업초안(Working Draft=WD) - 스펙접수, 의견수렴, work in progress상태

2.최종 작업 초안(Last call work draft) - 워킹그룹에서 이슈를 해결한 상태

3.권고 후보(Candidate Recommendation=CR) - 구현 및 경험을 통해 스펙 재정의 

4. 권고 체안(Proposed Recommendation=PR) - 두 개의 구현 경험 및 테스트 통과

5. 권고(Recommendation=REC) - 스펙 정식 승인



HTML5

-doctype 지정

-lang 지정

-charset 지정

-메타요소(검색엔진)

keywords, description, robots, author, generator 

-viewport - 디스플레이의 화상표시 영역 지정



앱)자바스크립트 툴팁 말줄임

Posted by HULIA(휴리아)
2018. 6. 4. 14:54 프론트엔드/자바스크립트
var showLength = 20; //표시할 글자수

function abbrProcess(){
    $('div[data-toggle="tooltip"]').each(function(){
        $(this).each(function(){
            if($(this).text().length >= showLength){
                   $(this).text($(this).text().substr(0. showLength)+'...');
             }
         });
    });
}

$(document).ready(function(){
    //줄임 툴팁 적용
    abbrProcess();

});





<div class="table_box">
       <table class="table_tp">
              <caption></caption>
              <colgroup>
                        <col width="5%" />
                        <col width="15%" />
                        <col width="*" />
              </colgroup>
              <thead>
                    <tr>
                         <th class="col"><span></span></th>
                          <th class="col"><span></span></th>
                     </tr>
              </thead>
              <tbody>
                    <tr>
                         <td class="al_c"><input ></td>
                         <td class="al_c"><div data-toggle="tooltip" title="내용">내용</div></td>
                    </tr>
              </tbody>
       </table>
</div>

앱)자바스크립트 자릿수 체크하는 로직

Posted by HULIA(휴리아)
2018. 6. 4. 14:18 프론트엔드/자바스크립트
$(document).ready(function() {
    $("#description").bind("change keyup  input", function(){
    var ls_str = $("#description").val();
    var li_str_len = ls_str.length;
    var li_max = 250;//250자까지 제한
    var i = li_byte = li_len =0;
    var ls_one_char = ls_str2 = "";
    for( var i = 0; i < li_str_len; i++){
            ls_on_char = ls_str.charAt(i);
            li_byte++;

           if( li_byte <= li_max){
                li_len = i+1;
           }
       
    }
    if( li_byte > li_max) {
      ls_str2 = ls_str.substr(0, li_len);
      $("#description").val(ls_str2);
    }

   });

});



<tr>
    <th scope="col"><label>Description(max.250byte)</labe></th>
    <td>
           <textarea id="description" style="width: 95%;"></textarea>
    </td>
</tr>

'프론트엔드 > 자바스크립트' 카테고리의 다른 글

차트 관련 js 정리  (0) 2018.11.11
앱)자바스크립트 툴팁 말줄임  (0) 2018.06.04
Do it Vue.js 입문 정리5  (0) 2018.04.15
Do it Vue.js 입문 정리4  (1) 2018.04.12
Do it Vue.js 입문 정리3  (0) 2018.04.04