Web Standard (5)

JS HTML PHP 2012. 1. 17. 20:43
Jquery 계속


 이건 아무것도 작업되지 않은 것

첫번째로 여러가지 해봐야지
 /jquery animiation으로들어가서 index열면 여러가지 키를 누르면 해야 하는 일들이 있다.

 
자, 이걸 해결하기 위하여 js/animation.js 에다가 function들을 추가한다.

 요렇게 


 코다 슬라이더 해보자. index_a.html

$($function() {
    $('#blogSlider').codaSlider();
}) 요렇게만 해주면 된다고 한다. 

.slider를 slider로 만들어 보자.

일단 css를 수정해 보자 .slider



그 다음에는 slider들을 추가해 보자.



 



coda도 zip 여기 들어있으니 잘 찾아봅시다~

'JS HTML PHP' 카테고리의 다른 글

CSS 레이아웃 - Float 속성을 이용한 레이아웃 만들기  (0) 2011.12.17
Jquery 강좌  (0) 2011.12.17
ADODB와 쿼리 캐시를 사용 하는 방법?  (0) 2011.12.17
Web Standard Class  (0) 2011.12.15
DOM Event  (0) 2011.12.13

설정

트랙백

댓글


http://wireframe.tistory.com/entry/CSS-%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83-Float-%EC%86%8D%EC%84%B1%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83-%EB%A7%8C%EB%93%A4%EA%B8%B0

*예전에 작성했던 강좌의 마지막 부분입니다. CSS를 통해 이전 강좌에서 작성한 마크업에 모양새를 입히기 전에 한 번 복습 하는 의미로 참고하면 좋겠네요


float 속성



이번 시간에는 css를 통해 레이아우팅을 할 때 가장 중요한 요소인 float에 대해서 살펴보도록 하겠습니다. css의 float 속성은 margin이나 position 속성과 함께 레이아웃을 만드는 가장 기본적인 원리 입니다. 우선 대략 다음의 코드를 가진 HTML 문서를 생각해보겠습니다.

<body>
  <div id="spDiv">content of DIV whose id is "spDvi"</div>
  <div id="norDiv">blah~ blah~ * 100 </div>
</body>
body엘레멘트 내부에 두 개의 div 엘레멘트가 들어있습니다. 이 들에는 각각 텍스트로 된 컨텐츠를 포함하고 있지요. 이를 도식으로 나타내면 대략 다음과 같을 겁니다. (정확한 스크린샷이 아닌 도식적으로 나타낸 그림입니다.)
사용자 삽입 이미지

위에 그림에서 볼 수 있듯이 div 엘레멘트는 하나의 블럭으로 디스플레이되고, 하나의 엘레멘트가 위치한 아래쪽으로 그 다음 엘레멘트가 위치하게 됩니다. 따라서  스타일 시트에서 다음과 같이 spDiv의 폭을 줄여준다면 어떻게 될까요?
#spDiv{
    width:300px;
}

폭만 줄어든 div 태그의
block으로 디스플레이되기 때문에 옆 공간은 모두 여백이 되고 아래쪽에서 다음 div 엘레멘트가 시작되어 위치합니다. float는 이러한 공간의 낭비를 줄여줄 수 있는 속성입니다. 엘레멘트를 '띄워서' 여백이 공간을 차지하는 것을 없앱니다. 예를 들어 신문이나 잡지 등에서 사진의 옆으로 글이 이어지다가 사진이 끝나는 부분에서는 글이 지면의 왼쪽으로 튀어나오는 것을 볼 수 있을 것입니다. float는 바로 그러한 레이아웃을 가능하게 하는 겁니다. 예를 들어
p img{
    float:left;
}

와 같이 준다면 p 엘레멘트 안에 위치한 이미지 파일은 그러한 잡지의 사진처럼 보이겠지요.
그럼 예시 코드를 갖고 해보도록 하겠습니다. 스타일시트에서 다음과 같이 float 속성을 추가하겠습니다. left라 함은 왼쪽으로 붙어 띄운다는 의미입니다.

#spDiv{
    width:300px;
    float:left;
}
이렇게 하면 예상할 수 있듯이 아래와 같은 모양이 될 것입니다. (두번째 div 엘레멘트가 왼쪽으로 좀 삐져나간 것은 애교입니다.) 또한 아래 그림에서 주의할 것은 텍스트가 채운 영역을 표기하기 위해 테두리선을 그렸지만 실제로 두번째 div 엘레멘트의 박스모양은 사각형입니다. float 속성을 첫번째 spDiv에 부여함으로서 두번째 norDiv 엘레멘트는 그 시작점(왼쪽 위 모서리)이 spDiv와 같은 지점이 됩니다.
float 속성을 부여, '어울림' 배치를
그럼 두 번째 엘레멘트인 norDiv의 폭을 500px로 줄인다면 어떤 결과가 될까요? 간단합니다. 폭이 줄어들었다뿐이지 위와 동일한 모양이 됩니다. 따라서 아래 그림과 같은 레이아웃을 만들기 위해서는 오른쪽으로 보내고자하는 norDiv 엘레멘트에 대해서 다음과 같이 스타일시트에서 float 속성을 지정해주면 됩니다. 이때 left 값을 주어도 현재로서는 같은 결과를 기대할 수 있습니다.
#norDiv{
    width:500px;
    float:right;
}

이제 두 박스 엘레멘트는 대략 다음과 같이 위치하게 됩니다. (폭의 픽셀값의 대한 상대적 크기는 역시 애교입니다.) 이 두 엘레멘트는 현재 float 속성을 받고 있습니다. 하나는 왼쪽으로 붙어서 떠 있고, 다른 하나는 오른쪽으로 붙어서 떠 있는 상태라 할 수 있습니다. 만약 두 번 째 엘레멘트에 float:left라고 지정해도 같은 결과를 볼 수 있습니다이는 float 속성을 부여 받은 엘레멘트는 '위로 떠올라' 그 다음에 나오는 엘레멘트와 겹치게 되지만, 실제로 컨텐츠가 보이는 영역을 밀어내는 작용을 하기 때문입니다. 하지만 float 속성을 부여받고 위로 떠오른 엘레멘트들 끼리는 서로 겹침이 없이 밀어 내게 되는 것입니다.
float 속성을 이용 2단으로
그럼 세번째 div 태그를 하나 추가해보도록하겠습니다. 그럼 어떻게 될까요?

<body>
  <div id="spDiv">content of DIV whose id is "spDvi"</div>
  <div id="norDiv">blah~ blah~ * 100 </div>
  <div id="thirdDiv">
</body>
float 속성이 없는 텍스트를
세번째 div 엘레멘트인 thirdDiv는 float 속성이 없습니다. 단지 그 보다 앞서 등장한 두 개의 div 엘레멘트들은 float 속성을 받고 위로 떠 버렸습니다. 따라서 두 개의 엘레멘트를 무시하고 body의 왼쪽 상단에서 thirdDiv는 시작됩니다. 파란색의 ㄴ 자 모양의 블럭은 텍스트의 흐름을 뜻하는 것입니다. 실제 모양은 앞에서 말씀드린 바와 같이 그냥 박스입니다. 곧 두 개의 박스(spDiv, norDiv)는 float 속성을 부여받고 위로 떠올랐습니다. 떠오른 엘레멘트와 그렇지 않은 엘레멘트들은 서로 충돌하지 않습니다. 다만 나중에 등장한 (문서 상에서 뒤에 나오는) 엘레멘트는 그 보다 앞서 등장한 엘레멘트들이 차지하는 공간만큼 비켜주게 됩니다.  따라서 세번째 thirdDiv 엘레멘트는 시작은 왼쪽 위에서 하지만, 왼쪽 위의 공간은 spDiv가 차지하고 있습니다. 그 오른쪽에는 norDiv가 차지하고 있지요. 따라서 결국 위와 같은 모양으로 텍스트가 흐르게 됩니다. (조금 복잡한가요?)

여기서 재밌는 것은 이 엘레멘트들을 하나로 묶는 div 태그를 따로 사용하지 않았습니다. 따라서 이들의 상위 엘레멘트는 body가 됩니다.  즉 브라우저 화면의 크기에 따라 변동이 심할 수 있다는 것이지요. 만약, 브라우저 창이 충분히 넓다면 (혹은 spDiv,norDiv의 폭이 충분히 작다면) 다음과 같은 상황이 연출됩니다

float 속성이 없는 텍스트의 레이아웃

위의 그림에서 분홍색으로 하이라이트된 박스는 spDiv 이고 푸른색으로 하이라이트된 박스는 norDiv입니다. 두 개가 벌어지고 가운데 빈 공간이 생기자 세번째 thirdDiv의 내용이 그 틈새로 흘러들어갑니다. 그럼, norDiv에게 float:left 속성을 부여했다면 어떻게 될까요? 답이 나오나요? ㅎㅎㅎ

만약에 브라우저가 작아지거나 북마크 사이드바를 연다든지 해서 body의 폭이 충분히 작아진다면 황당한 결과물을 만날 수 있습니다. float 속성을 가지고 정해진 width 값을 가진 두 개의 박스의 전체폭의 합보다 body의 width 값이 작아진다면, 맨 처음 상황처럼 nodDiv는 아래로 밀리게 됩니다. (감싸고 있는 엘레멘트의 폭이 커지는게 아닙니다) 그랬을 때 세번째 thirdDiv의 내용은 norDiv보다 위로 올라갈 수도 있습니다. 누누히 말하지만 float 속성이 없는 thirdDiv는 float 속성이 있는 엘레멘트들을 무시하고 시작합니다. 그림으로 보자면 아래와 같이 되는 것이지요.
세번째 div가 맨위로 올라간

clear 속성



이러한 증상을 방지하기 위해서는 이들을 감싸는 상위 엘레멘트를 하나 만들어주고, width값을 지정해 주어야합니다. 그리고 두 엘레멘트가 나란히 표시되기를 원한다면 두 개의 박스의 폭의 값(width를 포함하여 margin, border, padding이 모두 포함된)을 계산하여 상위 엘레멘트의 내부폭(width값)을 넘지 않도록 해야합니다.

그렇다면 float 속성이 없는 thirdDiv 가 정상적으로 두 엘레멘트의 아래쪽에 위치하려면 어떻게 해야할까요? 그것은 float으로부터의 영향을 제거하는 clear:both 라는 속성을 스타일시트에서 부여하면 됩니다.

#thirdDiv{
    clear:both
}
이제 아래 그림과 같이 각각의 box 엘레멘트들이 얌전히 자기 자리를 찾은 것을 확인할 수 있습니다.
clear:both;
또한 clear 속성은 이것 이외에도 다른 부작용을 해결하는 좋은 수단이 됩니다. 다시 #thirdDiv 가 없던 때로 돌아가 보겠습니다.

<body>
  <div id="wrapper">
      <div id="spDiv">content of DIV whose id is "spDvi"</div>
      <div id="norDiv">blah~ blah~ * 100 </div>
  </div>
</body>
이 번에는 spDiv와 norDiv를 둘러싸는 wrapper라는 div 태그를 넣었습니다. 두 엘레멘트들의 부모엘레멘트가 되는 셈이지요. 이 wrapper라는 엘레멘트에는 폭과 '배경색'을 넣겠습니다. 어떻게 위치하는지를 살펴볼 속셈이거든요.
#wrapper{
    width:900px;
    background-color:#ffffc3; /*노란색입니다*/
}
float으로 떠오른 녀석들은 단순히 아래에 인접한 엘레멘트에만 영향을 미치는 것이 아니라 부모엘레멘트를 완전히 벗어나 버립니다. 아래 그림에서 얇고 노란 박스가 wrapper입니다만, 다른 엘레멘트들은 그 외부로 벗어나와 보입니다. 
wrapper를 추가한 그림
이를 해결하는 방법은 두 가지가 있습니다.
  1. 첫번째 방법은 부모 엘레멘트인 wrapper에 float 속성을 부여하는 것입니다. float 속성을 가진 wrapper는 함께 떠올라 두 자식 엘레멘트들을 감싸게 됩니다.
  2. 두번째 방법은 norDiv 다음에, 컨텐츠를 가지지 않는 div 엘레멘트를 하나 만들고 이 세번째 보이지 않는 엘레멘트에 clear:both를 적용하는 방법입니다.

이제 어느정도 float 속성에 대한 개념이 잡혔는지 모르겠습니다. 각각의 경우마다 간단한 html 문서를 직접 만들어서 확인해 보는 것이 이러한 개념을 이해하는데 도움이 되리라 생각됩니다. 보다 자세한 사항은 [고급 웹표준 사이트 제작을 위한 CSS 마스터 전략 : 에이콘 출판사]를 참조하시면 됩니다. (어쩌다가 책 광고를.. orz)

다음 시간에는 구조적인 마크업을 통한 네비게이션 메뉴를 만들어 보도록 하겠습니다. 간단한 리스트용 마크업 요소와 CSS를 통한 그래픽 요소와의 통합과 인터렉션에 대해 알아보겠습니다. ( 다음 시간에 소개할 내용은 CSS2 규격에 맞는 내용입니다. IE6 이하 버전에서는 자바스크립트나 기타 방법을 동원해야합니다.)

긴 글 읽어주셔서 감사합니다.

 

'JS HTML PHP' 카테고리의 다른 글

Web Standard (5)  (0) 2012.01.17
Jquery 강좌  (0) 2011.12.17
ADODB와 쿼리 캐시를 사용 하는 방법?  (0) 2011.12.17
Web Standard Class  (0) 2011.12.15
DOM Event  (0) 2011.12.13

설정

트랙백

댓글

Jquery 강좌

JS HTML PHP 2011. 12. 17. 16:29

jQuery 시리즈 강좌 리스트

[jQuery강좌] 1. 웹 개발자를 위한 jQuery 기본이해 
[jQuery강좌] 2. jQuery를 이용한 HTML DOM 접근 - 기본 셀렉터 (1)
[jQuery강좌] 3. jQuery를 이용한 HTML DOM 접근 - 기본 셀렉터 (2)
[jQuery강좌] 4. jQuery Selector - 속성(Attribute)
[jQuery강좌] 5. jQuery Selector - DOM 계층(Hierarchy)을 이용한 요소 접근 (1)
[jQuery강좌] 6. jQuery Selector - DOM 계층(Hierarchy)을 이용한 요소 접근 (2)
[jQuery강좌] 7. jQuery Filter - 기본필터(Basic Filter)
[jQuery강좌] 8. jQuery Filter - 폼 필터(Form Filter)
[jQuery강좌] 9. jQuery Filter - 자식필터(Child Filter)
[jQuery강좌] 10. jQuery Traverse - Filtering
[jQuery강좌] 11. jQuery Traverse - Miscellaneous Traversing
[jQuery강좌] 12. jQuery Traverse - Tree Traversal
[jQuery강좌] 13. jQuery Core
[jQuery강좌] 14. jQuery CSS - 스타일 관련 메서드에 대하여
[jQuery강좌] 15. jQuery Attribute - 요소의 속성 관련 메서드에 대하여
[jQuery강좌] 16. jQuery Form API - 폼 지원 메서드에 대하여
[jQuery강좌] 17. jQuery Event - 이벤트 지원 메서드
[jQuery강좌] 18. jQuery Event - bind() 메서드
[jQuery강좌] 19. jQuery Event - 이벤트에 생명을~
[jQuery강좌] 20. jQuery Performance


jQuery 시리즈 동영상 강좌 리스트

[jQuery 동영상 강좌] 1. 웹 개발자를 위한 jQuery 기본이해
[jQuery 동영상 강좌] 2. jQuery를 이용한 HTML DOM 접근 - 기본 셀렉터 (1)
[jQuery 동영상 강좌] 3. jQuery를 이용한 HTML DOM 접근 - 기본 셀렉터 (2)
[jQuery 동영상 강좌] 4. jQuery Selector - 속성(Attribute)
[jQuery 동영상 강좌] 5. jQuery Selector - DOM 계층(Hierarchy)을 이용한 요소 접근 (1)
[jQuery 동영상 강좌] 6. jQuery Selector - DOM 계층(Hierarchy)을 이용한 요소 접근 (2)
[jQuery 동영상 강좌] 7. jQuery Filter - 기본필터(Basic Filter)
[jQuery 동영상 강좌] 8. jQuery Filter - 폼 필터(Form Filter)
[jQuery 동영상 강좌] 9. jQuery Filter - 자식필터(Child Filter)
[jQuery 동영상 강좌] 10. jQuery Traverse - Filtering
[jQuery 동영상 강좌] 11. jQuery Traverse - Miscellaneous Traversing
[jQuery 동영상 강좌] 12. jQuery Traverse - Tree Traversal
[jQuery 동영상 강좌] 13. jQuery Core
[jQuery 동영상 강좌] 14. jQuery CSS - 스타일 관련 메서드에 대하여
[jQuery 동영상 강좌] 15. jQuery Attribute - 요소의 속성 관련 메서드에 대하여
[jQuery 동영상 강좌] 16. jQuery Form API - 폼 지원 메서드에 대하여
[jQuery 동영상 강좌] 17. jQuery Event - 이벤트 지원 메서드
[jQuery 동영상 강좌] 18. jQuery Event - bind() 메서드
[jQuery 동영상 강좌] 19. jQuery Event - 이벤트에 생명을~
[jQuery 동영상 강좌] 20. jQuery Performance

 

'JS HTML PHP' 카테고리의 다른 글

Web Standard (5)  (0) 2012.01.17
CSS 레이아웃 - Float 속성을 이용한 레이아웃 만들기  (0) 2011.12.17
ADODB와 쿼리 캐시를 사용 하는 방법?  (0) 2011.12.17
Web Standard Class  (0) 2011.12.15
DOM Event  (0) 2011.12.13

설정

트랙백

댓글

http://dev.gardenquestions.com/ko/question/how-to-use-query-cache-with-adodb



예를 들어 캐시 디렉터리 설정

$GLOBALS['ADODB_CACHE_DIR']=$_SERVER['DOCUMENT_ROOT'].'/../cache/adodb';

이제 캐시 된 결과를 얻을 CacheGetOne 처럼 캐시 * 메서드를 사용할 수 있습니다.

$data = $rs->CacheGetOne($seconds_to_cache, $sql);

'JS HTML PHP' 카테고리의 다른 글

CSS 레이아웃 - Float 속성을 이용한 레이아웃 만들기  (0) 2011.12.17
Jquery 강좌  (0) 2011.12.17
Web Standard Class  (0) 2011.12.15
DOM Event  (0) 2011.12.13
DOM 기초  (0) 2011.12.12

설정

트랙백

댓글

Web Standard Class

JS HTML PHP 2011. 12. 15. 19:37
HTML DOCtype (not HTML5 but XHTML


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">

  <head>
     <meta name="generator" content="editplus" />
    <meta http-equiv="content/type" content="text/html; charset=utf-8"/>
    <title> HTML 기본구문 </title>
  </head>

 <body>
  ^!
 </body>
</html>

HTML주의할 점 몇가지

1) h1 다음에 크기 때문에 h3를 쓰거나 하지 말 것
2) <p/>를 이용해서 칸을 띄우지 말 것
3) a href의 title은 웹표준을 위해서 넣어줘야 하는 것 같다.
   a 링크예제
   <a href="http://www.daum.net" title="다음포털">다음으로가기 </a>
  4) <p id='footer'> 라고 썼었는데 이것도 tag가 생겼대 html5
  5) font tag는 이제 없으니까 쓰지 말 것


One page reference



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">

  <head>
     <meta name="generator" content="editplus" />
    <meta http-equiv="content/type" content="text/html; charset=utf-8"/>
    <title> HTML 기본구문 </title>
    <style type="text/css">
   #blank {
   height : 1000px;
   width : 100px;
   }
    </style>
  </head>

  <body>
    <a href = "#sometext" id="my_link"> My link </a>
  <div id="blank"></div>
  <p id="sometext"> The link </p>
  <a href="#my_link"> Back to top </a>
  </body>

</html>

목록


<dl>
       <dt> 타이틀
        <dd> 설명   (definition list)
         이제는 잘 안쓰인다고 하는군?


HTML기본


1) 인라인 엘리먼트 – Element와 관련된 줄바꿈이 없다! (화면에 출력될 때 줄이 바뀌지 않고 같은 줄에 등장) (<a>, <abbr>, <area>, <audio>, <em>, <strong>, <select>, <span> <label>, <link>, <command>, <nav>, <mark>, <meter>, <time>)

2) 블록 엘리먼트(Block label element) – Element 전, 후에 줄바꿈을 둔다. 각 엘리먼트 위에 세로로 쌓인다. 블록 요소라는 것은 다른 블록 요소를 포함 할 수 있으며, 다른 블록 요소 안으로 들어갈 수 있는 요소를 말한다. (<article>, <aside>, <blockquote>, <body>, <br> ,<button>, <canvas> <header>, <hr>, <object>, <section>, <progress>, <table>, <video>)


HTML에서의 조건 IE 조건부



<!- -[if IE 6]> <link rel=”stylesheet” type=”text/css” href=”ie6style.css” /> <![endif]- ->  조건부 주석은 HTML에만 넣을 수 있지만, 스타일 시트를 IE의 특정 버전에서만 인식하게 하려면 HTML 문서의 head 안에 link요소 앞에 조건부 주석을 넣는다.

- [if IE] – IE5 이상의 모든 버전을 대상으로 한다.
- [if IE 5], [if IE 7]등 - IE라는 글자와 버전 숫자 사이에 빈칸(공백)이 있게.  특정 브라우저 버전 한 개를 대상으로 한다.
- [if gt IE 6] – gt는 초과(greater than)라는 뜻. 이 예는 IE6 초과 버전
- [if gte IE 7] – gte는 이상(greater than or equal)라는 뜻. 이 예는 IE7 이상
- [if lt IE 8]
– lt는 미만(less than)이라는 뜻. 이 예는 IE8 미만 버전을 대상
- [if lte IE 6] – lt는 미만(less than or equal)이라는 뜻. 이 예는 IE6 이하 버전을 대상 ** 딘 에드워드의 IE7과 IE8 (http://code.google.com/p/ie7-js/)  이 라이브러리의 목적은 ‘마이크로소프트 인터넷 익스플로워의 렌더링 기능을 표준 브라우저처럼 만드는 것’이다.


HTML 특수문자들


Character Entity Name Description
" &quot; quotation mark
& &amp; ampersand
< &lt; less-than
> &gt; greater-than
© &copy; copyright
® &reg; registered trademark ™
&trade; trademark
× &times; multiplication
 &nbsp

Div와 Span 태그의 차이점!



Div는 block tag이고 span은 inline element tag이다. in-line은 줄바뀜 없음.
(머 하지만 id css를 먹일 수 있는 단위이기는 하다)


 

여러가지 legend같은 input 을 그룹화하는 태그도 있더라



 

웹표준 문서의 div layout : css-3.html


 

타이포 관련 CSS

em은 ctrl-+하면 확대되고, px은 확대가 안된다. 절대 크기이다.
그러니까 요즘 웹표준에서는 em으로 많이 사용된다고 한다.

font-family
: "Dotum" font-size : em : 12px=1em 2em=24px  % : 150%라면 
line-height : 해당줄부터 적용
font-weight : 굵기 normal bold 숫자는 의미가 없음font-variant : small caps
text-indent : 
text-align : left centervertical-align : 인라인 요소끼리 세로위치를 정렬 (span img a ...) top, middle
text-decoration : 밑줄 취소선등 underline..
letter-spacing : 
text-transform : 대소문자

더 많은데...
 

오 나름 재미있는 모냥새군?


 



CSS Image
http://iluku.net/blog/101
요기를 꼭 참고하자.



color sites


colorschemedesigner.com   colorjack.com (color pallette)  typetester.org (타이포그라피)

Editor tool

Espresso, coda (요게 Mac용인데 아주 좋다고 한다)

expression blend

CSS 그룹화


, 로 연결한다. div > p, #wrap, p.note, ...




CSS init

h1, h2, h3, h4, h5...{
   font-family : Verdana;
}

가상클래스  hover 뭐 어쩌구 하는 애들은 가상 클래스


가상클래스는 lvhaf 이 순서가 맞춰져야 한다고 한다.

가상요소



선택자




* 인접요소는 h1에는 적용이 안되고 h2에만 적용이 되는데, 아마도 jquery등으로 element늘렸을 떄 사용하는 것 같다.
* 자식 선택자는 자식을 선택하는 것 같다. 쫌 이상하지? 별로 제대로 동작 안하는 것 같애. (손자는 적용 안된다는데)
* 재미있는 건 
   #page p~p 이렇게 하면 p에서부터 p까지를 모두 선택해 준다.

display 요녀석


display : block  인라인요소를 block으로
display : inline  인라인요소를 inline으로

form에 관련된 이야기


주의 할 점은 input이 inline이니까 display : block 으로 설정해 줘야 아래로 나온다는 것을 잊지 말것.





border를 이용해서 debugging을 많이하게 되니까 많은 이용 바랍니다. ^^

<!doctype html>
<html>
 <head>
  <meta http-equiv='content-type'content='text/html; charset=utf-8' />
  <link rel='stylesheet' href='css-2.css' type='text/css'>
 </head>
 <body>
  <div id='content'>
   <h1>
    그림으로 보는 재미있는 역사이야기
   </h1>
    <p class='borderTest'>
          그림, 한눈에 역사를 통찰하다『역사의 미술관』. 이 책은 서양의 역사화를 주된 소재로, 유명한 역사적 인물이나 흥미로운 역사적 사건과 현상 가운데 그림으로 그려진 사례들을 모아 주제별로 풀어 쓴 것이다. 알렉산드로스, 아우구스투스, 나폴레옹, 루이14세, 스탈린 등 시대를 품에 안았던 인물을 중심으로 그림 속의 역사뿐만 아니라 그림이 그려진 시대 상황까지 아우르며 두 시대의 연관성을 탐색하였다.
    </p>
    <p>
     더불어 역사의 흐름을 바꿔놓은 전염병, 왕들의 처형, 세계대전 등의 피해역사에 대한 이야기와 카리스마, 종교 개혁, 그리스의 지성 등의 키워드를 통해 역사의 흐름 속에서 인간의 이성과 정신의 영역이 어떻게 진보하였는지 그림을 통해 생생하고 창의적으로 보여준다.
    </p>
   <h2>
    다 그림이다 (동서양 미술의 완전한 만남
   </h2>
    <p>
    인간의 가장 기본적인 모습들, 그러나 지금은 돈의 가치에 밀려 잊고 살았던 삶의 조건들 10가지를 선정해, 동서양에서는 그것의 가치를 어떻게 설정하였고, 어떻게 표현했는지 살펴보는 책이 다. 옛 그림에서 지혜를 얻고 동시에 서구식 교육을 받아온 세대들에게 현대적으로 재해석하는 방법을 동시에 제공함으로써, 삶의 가치를 바로 세우는데 균형감을 선사한다.
    </p>
  </div>
 </body>
</html>
<!-- http://lab365.net/demo_source/web_standard/05_background.html -->



body {
 background-color : #eee;
 margin : 5px;
 font-family : '맑은 고딕';
 background-image: url('img/bg-03.png');
 /* background-repeat : repeat-x;*/
 /* repeat이 아무것도 없으면 무한 repeat이 default */
 /* background-repeat : repeat-y; */
 background-attachment : scroll;
}

div#content {
 width : 75%;
 margin : 0 auto;
 padding : 10px;
 border : 1px solid #ccc;
}

.borderTest {
 border-width : 2px;
 border-style : solid;
 border-color : gray;
 padding : 5px;
 border-radious : 10px;
 box-shadow : 5px 5px 10px red;
 -moz-border-radius : 10px; /* -moz fire fox 접두사 */
 -webkit-border-radious : 10px; /* safari 접두사 */
 -moz-box-shadow : 5px 5px 10px #999;
 letter-spacing : 0.1em;
 line-height : 1em;
 text-transform : uppercase;
}






BOX 모델 : MBPC 순서대로 MB네 PC일쎄?


margin : 0 auto; /* 위아래 와 좌우 */





<!doctype html>
<html>
 <head>
  <meta http-equiv='content-type'content='text/html; charset=utf-8' />
  <title> Box model </title>
  <style type='text/css'>
   body {
    background : #eee;
    font-family : '맑은 고딕';
    font-size : 13px;
    margin : 0;
    padding : 0;
   }
   #wrapper {
    width : 960px;
    margin : 0 auto;
    background : #ccc;
    height : 600px;
   }
   #myDiv1 {
    width : 100px;
    height : 200px;
    border : 5px dashed black;
    margin-left : 30px;
    background : orange;
    float : left;
    margin-right : 30px;
   }
  </style>
 </head>
 <body>
  <div id='wrapper'>
   <div id='myDiv1'> </div>
   <p id='text1'> <strong> Text1 </strong>
[엑스포츠뉴스=방송연예팀 김수연 기자] 배우 한채영이 아시아 최대 규모의 시상식에서 잇달아 상을 수상하며 아시아 최고 미인으로 우뚝 서고 있다.
....   </p>
   <p id='text2'> <strong> Text2 </strong>
미국 텍사스에서 산타클로스 복장의 50대 남성이 성탄절 아침 선물을 풀어보던 일가친척 6명을 사살하고, 자신도 목숨을 끊는 사건이 일어났다.
.....   </p> <!-- eo p text2 -->
  </div> <!-- eo wrapper -->
 </body>
</html>

그림 1) 노란 박스에만 left가 붙은 경우 -> 오른쪽 녀석은 감싸게 된다.



그림2) 글씨도 left가 붙은 경우. 노랑박스를 감싸지 않고 자기도 left align 되어 버린다.
          또 div가 있었다면 글씨가 있는 부분 오른쪽에 나타나면서 감쌀 것이다.






<!doctype html>
<html>
 <head>
  <meta http-equiv='content-type'content='text/html; charset=utf-8' />
  <title> Box model </title>
  <style type='text/css'>
   body {
    background : #eee;
    font-family : '맑은 고딕';
    font-size : 13px;
    margin : 0;
    padding : 0;
   }
   #wrapper {
    width : 960px;
    margin : 0 auto;
    background : #ccc;
    height : 600px;
   }
   #myDiv1 {
    width : 100px;
    height : 200px;
    border : 5px dashed black;
    margin-left : 30px;
    background : orange;
    margin-right : 30px;
    float : left;
   }
   p {
    width : 300px;
    float : left; /* 요놈이 있으면 요놈도 left이다. */
                  /* left라는 건 left 정렬이다. 그러니까 왼쪽에 있는 녀석을
              감싸지 않는다 */  1번그림은 이게 없을 때 2번 그림은 이게 있을 때
    margin : 28px;
   }
   #text1 {
    border-color : #553;
   }
   #text2 {
    border-color : #ffffaa;
    clear: both;
   }
  </style>
 </head>
 <body>
  <div id='wrapper'>
   <div id='myDiv1'> </div>
   <p id='text1'> <strong> Text1 </strong>
[엑스포츠뉴스=방송연예팀 김수연 기자] 배우 한채영이 아시아 최대 규모의 시상식에서 잇달아 상을 수상하며 아시아 최고 미인으로 우뚝 서고 있다.
한채영은 지난 12월 13일 중국 북경에서 열린 '2011 차이나 트렌드 어워즈(2011 China Trend Awards)' 에서 2011년 중국 패션 최고의 빛나는 아티스트 상을 수상했다.
이번 행사는 중국 북경 TV에서 진행된 행사로 그 목적은 2011년 한 해 중국의 패션계에서 가장 빛나는 해외 아티스트에게 드리는 상으로서 중국 국민 배우 청이쉰, 야오천 등 100여 명의 배우가 함께한 가운데 한채영이 그 어깨를 나란히 했다.
또한, 23일 중국의 최고의 위성방송 중 하나인 '안휘위성'과 중국 최고의 포털 사이트인 시나닷컴에서 주최하는 중국에서 손꼽는 시상식인 '2011 드라마 어워즈'에도 참석하였다.
'2011, 드라마 어워즈'에서는 2011년 우수한 드라마 작품과 가장 훌륭한 방송인들이 한자리에 모여 2011년 중국 드라마계를 더욱 빛내는 성대한 행사이며 본 시상식은 2011년 중국위성방송에서 방영된 약 1000여 편의 중국 드라마에 대한 평가 및 홍콩, 대만 및 한국, 일본, 태국 등의 우수 작품도 평가가 진행됐다.
그 중 한채영은 '꽃보다 남자', '신이라 불리운 사나이' 등의 작품으로 "2011년 온라인 해외 최고 인기아티스트상"을 수상하였다. 또한, 이 날 시상식에서 한채영은 20여 년간 중국에서 큰 인기를 얻고 있는 배우 '임지령'에게 '2011 온라인 만능 엔터테이너 상'을 수여하는 시상자로 나서며 유창한 중국어 실력을 뽐내기도 했다.
한편, 한채영은 내년 초 중국영화 '빅딜'의 개봉을 앞두고 있다.
방송연예팀 enter@xportsnews.com
   </p>
   <p id='text2'> <strong> Text2 </strong>
미국 텍사스에서 산타클로스 복장의 50대 남성이 성탄절 아침 선물을 풀어보던 일가친척 6명을 사살하고, 자신도 목숨을 끊는 사건이 일어났다.
25일 오전 11시30분쯤, 미국 텍사스 경찰로 한 통의 긴급전화(911)가 걸려왔다. 수화기에서는 아무런 소리가 들리지 않았다. 긴급 출동한 경찰은 전화가 걸려온 댈러스 국제공항 서쪽 그레이프바인의 한 아파트로 향했다. 이곳은 평소 범죄 발생이 거의 없는 고급 아파트 단지였다.
경찰이 실내로 들어섰을 때, 가장 먼저 눈에 들어온 것은 화려한 크리스마스 장식이었다. 바닥에는 포장을 뜯다 만 선물들이 어지럽게 널려 있었고, 일부는 포장이 뜯기지 않은 상태였다. 휴지통에는 선물 포장지가 가득했다. 그 가운데 사이사이로 총상을 입은 시신 7구가 있었다. 권총 2정과 함께였다.
현지 경찰의 대변인인 로버트 에벌링(Eberling) 경사는 “사망자들은 크리스마스 선물 포장을 풀고 있다가 총에 맞은 것으로 보인다”며 “6명을 총으로 쏜 범인은 자신도 방아쇠를 당겨 자살한 것이 분명하다”고 말했다.
사망자 가운데 누군가가 죽기 전에 경찰에 긴급전화를 걸었지만, 말을 하지 못할 정도로 이미 내상이 컸던 것으로 경찰은 추정했다. 경찰은 크리스마스 오전이어서 이웃 중에 총소리를 들은 사람도 없었다고 밝혔다.
담당 수사관은 “사망자의 연령대는 18~60세로, 여성 2명과 청년 남성 1명, 중년 남성 4명”이라며 “총을 쏜 사람은 이 가운데 50대 남성으로, 산타클로스 복장이었다”고 말했다. 에벌링 경사는 “피해자들이 도망을 가거나 저항한 흔적이 없다”며 “사망자들의 정확한 신원과 범행 동기 등을 조사 중”이라고 밝혔다.
   </p> <!-- eo p text2 -->
  </div> <!-- eo wrapper -->
 </body>
</html>



CSS position relative & absolute

relative는 상위요소를 기준으로 상대 위치를 가진다.
absoulte는 절대 위치로서 마치 책에 포스트 잇을 덧붙이듯이 떠있어서 전체화면에서 절대위치를 가진다.

상위 요소에 아무값을 주지 않고 현재 요소에 relative를 주면 상위 요소를 기준으로 위치를 가진다. 하지만 이럴경우 현재 요소가 상위요소에 속해져 있는 상태가 되기 때문에 현재요소의 width 혹은 height만큼 상위요소도 영향을 받게 된다.

하지만 상위요소를 relative를주고 하위요소를 absolute로 정하면 상위요소를 기준으로한 절대위치가 지정된다.



Homework :
webdeveloper  christoper 어쩌구..
http://lab365.net/demo_source/web_standard/07_layout_basic.html
요놈.

위 숙제 
원래 소스는 

<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="../css/layout-01.css" />
<title>Layout Basci Site</title>
</head>
<body>

<div id="wrap">

<h1>Web Site Project</h1>
<div class="content">
<h2>Main Content Heading</h2>
<p>Art Video Blog</p>
</div>
<div id="aside">
<h2>Sider</h2>
<ul>
<li>
<a href="#">Home</a>
</li>
<li>
<a href="#">About</a>
</li>
<li>
<a href="#">Contact</a>
</li>
</ul>
</div>
<div id="footer">
<p>Copyright &copy; 2005, Creative Lab365. All rights reserved.</p>
</div>

</div>

</body>
</html>

/* page Style */

#wrap {
	min-width: 600px;
	width: 80%;
	margin: auto;
	background: url(../img/subtle_freckles.png);
	font-family: Verdana;
	overflow: hidden;
}

#aside, .content {
	height: 600px;
}

.content {
	background: red;
	float: left;
	width: 80%;
}

#aside {
	background: #fdf2dc;
	float: left;
	width: 20%

}

#aside ul {
	list-style: none;
	padding-left: 0;
}

#footer p {	
	clear: both;
	font-size: .75em;
	font-variant: small-caps;
	text-align: center;
}

/* navigation */

#aside ul {
	padding-left: 10px;
	line-height: 30px;
	list-style: none;
	font-variant: small-caps;
}

#aside li a {
	text-decoration: none;
	color: purple;
}

#aside li a:hover {
	font-size: 1.4em;
 	color: #FF9E00; 
} 
 요렇게 되어있고 내 코드는 

<!doctype html>
<html>
<head>
<style type='text/css'>
#wrapper {
margin : 0px auto;
width : 960px;
height : 690px;
font-family : Verdana;
}
h3 {
font-size : 16px;
font-family : dotum;
}
#body {
background : red;
width : 700px;
height : 600px;
float : left;
}
#sidebar {
margin-top : 10px;
float : left;
}
#list {
padding-left : 10px;
list-style : none;
line-height : 30px;
}
li {
font-family : Tahoma;
text-transform : uppercase;
color : pink;
margin-left : 10px;
}
li:hover {
font-size : 20pt;
color : orange;
}
</style>
</head>
<body>
<div id='wrapper'>
<div id='head'>
<h1> Web Site Project </h1>
</div>
<div id='body'>
<h2> Main Content Heading </h2>
<h3> Art Video Blog </h3>
</div>
<div id='sidebar'>
<h2> Sider </h2>
<ul id='list'>
<li> Home </li>
<li> About </li>
<li> Contact </li>
</ul>
</div>
</div>
</body>
</html>

요렇게 만들었다. 중요한건 center로 정렬하는 것은 margin : 0, auto 로 하면 되고, 더 중요한건 side bar를 제대로 control하기 위해서는 side bar 자체를 float left를 주지 않으면 제대로 margin이나 padding이 컨트롤 되지 않는다!!!


 



마진이 합쳐지는 현상이 있다.
(겹침현상) 더 큰 수치의 놈만 설정된다.



div는 margin을 주게 되면 부모와 자식에게 모두 영향을 줘서 같이 margin이 먹는다.




위 파일은 음음 몇가지 수업중 예제이다.
position absolute는 부모로부터 인가?

jquery - ajax
webfont  이거 두개 물어보자~~ ^^


다음 포스팅에서 계속

'JS HTML PHP' 카테고리의 다른 글

Jquery 강좌  (0) 2011.12.17
ADODB와 쿼리 캐시를 사용 하는 방법?  (0) 2011.12.17
DOM Event  (0) 2011.12.13
DOM 기초  (0) 2011.12.12
웹 폰트 web font  (0) 2011.11.21

설정

트랙백

댓글

DOM Event

JS HTML PHP 2011. 12. 13. 16:31

~\Downloads\Ajax DOM scripting\dom\commCSS.css.html
 1 /* 공통 CSS */
 2 body{
 3     margin: 0;
 4     padding: 0;
 5     font-size: 16px;
 6     font-family: "굴림", "Times New Roman";
 7 }
 8 h1{
 9     margin-top: 10px;
10     margin-left: 40px;
11     font-size: 18px;
12 }
13 #groupOne {
14     margin-top: 20px;
15     margin-left: 40px;
16 }
17 .idcolor {
18     background-color: yellow;
19 }
~\Downloads\Ajax DOM scripting\dom\chap07\event.js.html
 1 //-----------------------------------------------------
 2 // 이벤트 개요
 3 //-----------------------------------------------------
 4 window.onload = function () {
 5     var qtyClick = document.getElementById('qty');
 6     var priceClick = document.getElementById('price');
 7 
 8     if (qtyClick.addEventListener) {
 9         qtyClick.addEventListener('keyup', Show.qty, false);
10         priceClick.addEventListener('keyup', Show.price, false);
11     } else {
12         qtyClick.attachEvent('onkeyup', Show.qty);
13         priceClick.attachEvent('onkeyup', Show.price);
14     }
15 }
16 var Show = {
17     entryQty: 0,
18     entryPrice: 0,
19     qty: function(event) {
20         var clickElement = event.target || event.srcElement;
21         $('show1').innerHTML = Show.entryQty = clickElement.value;
22     Show.amount();
23     },
24     price: function(event) {
25         var clickElement = event.target || event.srcElement;
26         $('show2').innerHTML = Show.entryPrice = clickElement.value;
27     Show.amount();
28     },
29     amount: function() {
30         $('show3').innerHTML = '금액: ' + Show.entryQty * Show.entryPrice;
31     }
32 }
~\Downloads\Ajax DOM scripting\dom\chap07\event.html.html
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
 3 <head>
 4   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5   <title>이벤트</title>
 6   <link rel="stylesheet" href="../commCSS.css" type="text/css" />
 7   <script language="javascript" type="text/javascript" src="../prototype_160.js"></script>
 8   <script language="javascript" type="text/javascript" src="event.js"></script>
 9 </head>
10 <body>
11 <h1>이벤트 발생</h1>
12 <div id="groupOne">
13     수량: <input type="text" id="qty" />
14     단가: <input type="text" id="price" />
15 
16     <br /><br />
17     <div id="showArea">
18         <div id="show1"></div><br />
19         <div id="show2"></div><br />
20         <div id="show3"></div>
21     </div>
22 </div>
23 </body>
24 </html>

'JS HTML PHP' 카테고리의 다른 글

ADODB와 쿼리 캐시를 사용 하는 방법?  (0) 2011.12.17
Web Standard Class  (0) 2011.12.15
DOM 기초  (0) 2011.12.12
웹 폰트 web font  (0) 2011.11.21
이벤트 리스너같이 사용하는 PHP클래스  (0) 2011.11.13

설정

트랙백

댓글

DOM 기초

JS HTML PHP 2011. 12. 12. 18:26
자, DOM에서 어떻게 listener등을 걸치느냐!

  ~\Downloads\Ajax DOM scripting\dom\chap04\elementObject.js.html
 1 //-----------------------------------------------------
 2 // 엘리먼트 오브젝트
 3 //-----------------------------------------------------
 4 window.onload = function () {
 5     var okClick = document.getElementById('okClick');
 6     if (okClick.attachEvent) {
 7         okClick.attachEvent('onclick', Show.okClick);  // IE
 8     } else {
 9         okClick.addEventListener('click', Show.okClick, false);  // IE 이외
10     }
11 }
12 var Show = {
13     okClick: function(event) {
14         var sportObject = document.getElementById('likeSport');
15         var showOne = document.getElementById('show1');
16         showOne.innerHTML = '1. ' + sportObject;
17 
18         var addSportObject = document.getElementById('addSport');
19         var showThree = document.getElementById('show2');
20         showThree.innerHTML = '2. ' + addSportObject;
21     }
22 }
자자 그렇지? 

가장 중요한 것은  

'JS HTML PHP' 카테고리의 다른 글

Web Standard Class  (0) 2011.12.15
DOM Event  (0) 2011.12.13
웹 폰트 web font  (0) 2011.11.21
이벤트 리스너같이 사용하는 PHP클래스  (0) 2011.11.13
PHP 객체 생성자와 객체 파괴자  (0) 2011.11.13

설정

트랙백

댓글

웹 폰트 web font

JS HTML PHP 2011. 11. 21. 17:02
http://fontface.kr/

 

<head> 사이에
 
<script src="http://www.google.com/jsapi"></script>
<script>
 google.load( "webfont", "1" );
 google.setOnLoadCallback(function() {
  WebFont.load({ custom: {
   families: [ "NanumGothic" ],
   urls: [ "http://fontface.kr/NanumGothic/css" ]
  }});
 });
</script>

css
.wf-active body {
 font-family: 'NanumGothic';
}

예제

<html>
 <head>
  <style>
   .wf-active body {
    font-family: 'NanumGothic';
    font-size: 48px;
   }
  </style>
  <script src="http://www.google.com/jsapi"></script>
  <script>
   google.load( "webfont", "1" );
   google.setOnLoadCallback(function() {
    WebFont.load({ custom: {
     families: [ "NanumGothic" ],
     urls: [ "http://fontface.kr/NanumGothic/css" ]
    }});
   });
  </script>
 </head>
 <body>
  <h1>fontface.kr의 한글 폰트를 이용한 페이지</h1>
 </body>
</html> 

'JS HTML PHP' 카테고리의 다른 글

DOM Event  (0) 2011.12.13
DOM 기초  (0) 2011.12.12
이벤트 리스너같이 사용하는 PHP클래스  (0) 2011.11.13
PHP 객체 생성자와 객체 파괴자  (0) 2011.11.13
로그인 Text area에 내용입력등의 기본 글자 넣기  (0) 2011.11.10

설정

트랙백

댓글


http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=71516&sca=%BE%CB%B0%ED%B8%AE%C1%F2



게시판을 만들면서 어떻게 하면 로그인폼을 처리하는 Class와 분리시킬 수 있을까 고민했습니다.
결국 이벤트프로그램의 addEventListener에서 힌트를 얻어 비슷하게 처리할 수 있도록 만들어 봤습니다.
하다보니 로그인폼 처리 Class 뿐만 아니라 Class들의 강한결합상태를 약화시킬 수 있을것도 같네요.

  1 <?php 
  2 class MyObject{ 
  3
  4 private $starr = array();
  5
  6 public function __construct(){} 
  7
  8 //메쏘드 또는 함수 등록
  9 public function addStateListener($state, $method, $object=null){ 
 10 $idx = count($this->starr);
 11 $this->starr['state'][$idx] = $state;
 12 $this->starr['object'][$idx] = $object;
 13 $this->starr['method'][$idx] = $method;
 14 } 
 15
 16 //콜백 실행
 17 protected function executeState($state/*,...*/){ 
 18
 19 $args = func_get_args();
 20 array_shift($args); //첫번째 인자인 state는 args에서 제외시킨다
 21
 22 if(($idx = array_search($state, $this->starr['state'])) < 0) return;
 23
 24 if(is_object($this->starr['object'][$idx])){ //콜백이 오브젝트이면 (오브젝트 우선)
 25 call_user_method_array($this->starr['method'][$idx], $this->starr['object'][$idx], $args);
 26 }else{ //콜백이 함수이면
 27 call_user_func_array($this->starr['method'][$idx], $args);
 28 } 
 29 } 
 30
 31 public function __destruct(){} 
 32 } 
 33
 34
 35 //====================================================
 36 // 예제 1 함수를 호출
 37 //====================================================
 38 class Board extends MyObject{ 
 39
 40 private $is_login = false; //예를 위해서 강제로 로그아웃 상태로 만듬
 41
 42 function write(){ 
 43 if(!$this->is_login){ 
 44 $this->executeState('needlogin', '게시판에 쓸려면 가입해라!');
 45 }else{ 
 46 echo "글을 씁시다";
 47 } 
 48 } 
 49 } 
 50
 51 function showMessage($str){ 
 52 echo "<script>alert('".$str."');</script>";
 53 exit;
 54 } 
 55
 56 $b = new Board();
 57 $b->addStateListener('needlogin', 'showMessage');  //콜백 함수를 등록한다
 58
 59 //자 글을 등록해보자
 60 $b->write();
 61
 62
 63
 64 //====================================================
 65 // 예제 2 클래스의 메쏘드를 호출
 66 //====================================================
 67 class Board extends MyObject{ 
 68
 69 private $is_login = false; //예를 위해서 강제로 로그아웃 상태로 만듬
 70
 71 function write(){ 
 72 if(!$this->is_login){ 
 73 $this->executeState('needlogin');
 74 }else{ 
 75 echo "글을 씁시다";
 76 } 
 77 } 
 78 } 
 79
 80 //로그인 폼 처리 클래스
 81 class LoginProcess{ 
 82
 83 //귀찮아서 html 그냥 씁니다.
 84 public function showbox(){ 
 85 echo <<< HEREDOC
 86 <table border=1> 
 87 <tr> 
 88 <td>아 이 디 : <input type="text" name="mb_id"></td> 
 89 </tr> 
 90 <tr> 
 91 <td>비밀번호 : <input type="password" name="mb_pw"></td> 
 92 </tr> 
 93 <tr> 
 94 <td><input type="submit" value="로그인"></td> 
 95 </tr> 
 96 </table> 
 97 HEREDOC;
 98 } 
 99 } 
100
101 $b = new Board();
102 $l = new LoginProcess();
103 $b->addStateListener('needlogin', 'showbox', $l);
104
105 //자 글을 등록해보자
106 $b->write();
107 ?> 


'JS HTML PHP' 카테고리의 다른 글

DOM 기초  (0) 2011.12.12
웹 폰트 web font  (0) 2011.11.21
PHP 객체 생성자와 객체 파괴자  (0) 2011.11.13
로그인 Text area에 내용입력등의 기본 글자 넣기  (0) 2011.11.10
HTML 풍선 도움말, 줄바꿈 효과  (0) 2011.11.10

설정

트랙백

댓글

http://dalmasian.tistory.com/entry/PHP-%EA%B0%9D%EC%B2%B4-%EC%83%9D%EC%84%B1%EC%9E%90%EC%99%80-%EA%B0%9D%EC%B2%B4-%ED%8C%8C%EA%B4%B4%EC%9E%90



PHP 5 는 개발자로 하여름 클래스를 위해 생성자 메소드를 선언할 수 있게 한다. 생성자 메소드를 가진 클래스들은 새롭게 생성된 객체에서 이 메소드를 초기화 하는데 적당하게 호출해서 객체가 사용되기 전에 필요로 하지 않게 할 것이다.

PHP 4 에서 생성자 메소드는 클래스 자신의 이름과 같은 이름을 가진 클래스 메소드였다. 파생된 클래스로부터 부모 생성자를 호출하는 것이 매우 일반적일 때, PHP 4는 거대한 클래스 계층 주변으로 클래스를 옮기는 성가신 부분을 만들어내는 방법을 택해 작업했다. 만약 클래스가 다른 부모클래스 아래로 귀속하기 위해 옮겨졌을 때, 부모클래스 생성자의 잘 바뀌는 이름과 부모클래스 생성자를 호출하는 파생된 클래스의 코드는 수정될 것이다.

PHP 5 는 __construct()라는 이름으로 불리우는 생성자 메소드를 선언하는 표준방법을 도입하였다. 


Example B-12. using new unified constructors

<?php
class BaseClass
{
   function
__construct
() {
       print
"In BaseClass constructor\n"
;
   }
}

class
SubClass extends BaseClass
{
   function
__construct
() {
      
parent::__construct
();
       print
"In SubClass constructor\n"
;
   }
}

$obj = new BaseClass
();
$obj = new SubClass
();
?>

 

이전 버전과의 호환성을 위해 만약 PHP 5 가 주어진 클래스를 위한 __construct() 함수를 찾지 못한다면 클래스의 이름으로 이루어진 이전 방식의 생성자 함수를 찾을 것이다.

효과적으로 이것은 클래스가 __construct() 라는 이름을 가진 메소드를 가진 경우 이것이 다른 의미론을 위해 쓰일것이라는 의미를 가지고 있는데 호환성 문제를 가진 경우에 한해서만 해당한다.

Destructors

객체를 위해 파괴자를 정의하는 능력을 소유하는 것은 매우 유용할 수 있다. 파괴자는 디버깅을 위해, 데이터베이스의 연결을 끊을 때,기타 다른 여러가지 일을 마무리할 때 로그 메세지를 남길 수 있다. PHP 4에선느 객체 파괴자를 위한 기술이 존재하지 않았지만, PHP가 셧다운을 요청하는 도중에 실행될 등록함수를 위해 이미 지원했다. 

PHP 5 는 자바와 같은 다른 객체지향언어에서와 유사한 개념을 가진 파괴자를 도입하였다. : 객체의 파괴자를 파괴한 객체가 최종적으로 참조되었을때,  어떤 파라미터 값도 받지 않는 __destruct() 라고 이름 붙여진 클래스 메소드는 메모리에서 객체가 해제되기 전에 호출된다.

Example B-13. Destructor

<?php
class MyDestructableClass
{
   function
__construct
() {
       print
"In constructor\n"
;
      
$this->name = "MyDestructableClass"
;
   }

   function
__destruct
() {
       print
"Destroying " . $this->name . "\n"
;
   }
}

$obj = new MyDestructableClass
();
?>

생성자와 같이 부모클래스의 파괴자는 엔진에 의해 명시적으로 호출되지는 않을 것이다. 부모클래스의 파괴자를 실행하기 위해 파생된 클래스에서는 명확하게 파괴자 본문에 parent::__destruct() 를 적어 호출하여야 한다.



%참고% 범위지정연산자  ::

범위지정 연산자(::)는 $this 대신사용할수 있는 연산자 이다
객체에 속한 맴버나 메서드에 접근을 할때 사용할수 있고 클래스를 객체로 생성하지 않고도 접근할수도 있다
그리고 클래스 상수에 접근할때에도 사용된다

더 자세한 내용은 다음에 강좌를 하겠다

self 는 자신이 속한 클래스, parent 는 부모클래스를 의미한다
self 와 parent 는 클래스 내부에서 맴버나 메서드에 접근할때 사용된다




 1
//예제) 범위지정연산자를 이용한 부모(상위)클래스에서 정의한 생성자 함수 호출
 2 <? 
 3 class Parents { 
 4
 5   // 클래스의 생성자 함수
 6   public function __construct(){  echo "부모(상위)클래스에서 정의한 생성자 함수 호출"; } 
 7
 8 } 
 9
10 class Child extends Parents { 
11   
12   // 클래스의 생성자 함수
13   public function __construct(){  
14     
15     // 부모(상위)클래스에서 정의한 생성자 함수 호출
16     parent::__construct();
17
18   } 
19   
20 } 
21
22 // 출력 : 부모(상위)클래스에서 정의한 생성자 함수 호출
23 $Obj_Child = new Child();
24
25 //위 예제는 부모클래스에서 정의한 생성자 함수를 호출해야 하므로 parent:: 를 사용했다
26
27 ?>

설정

트랙백

댓글


http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040202&docId=67473894&qb=dGV4dGFyZWEg7JeQIOq4gCDrhKPquLA=&enc=utf8&section=kin&rank=2&search_sort=0&spq=0&pid=grrKVU5Y7tVssbQdo8sssc--389495&sid=Trl04fJDuU4AAH01HAs

1. 클릭하면 지우기

<textarea cols=40 rows=5 onclick="this.value=''">내용을 입력하세요</textarea>

 2. 클릭했을때 사용자가 입력한 문장이면 지우지 않기

<textarea cols=40 rows=5 onclick="if(this.value=='내용을 입력하세요'){this.value=''}">내용을 입력하세요</textarea>

설정

트랙백

댓글


http://www.itdi.co.kr/onuri/bbs/board.php?bo_table=03_1&wr_id=25

여러 TAG에 풍선도움말 효과 주기 소스 
 
글쓴이 : 정민구 날짜 : 09-04-06 19:27 조회 : 2146  
 <font size=2 title="풍선 도움말">일반 글씨에도 풍선 도움말이 가능해요</font>
 <b title="풍선 도움말">진하기 속성도 가능해요!</b>
 <i title="풍선 도움말">이탤릭 속성도 가능해요!</i>
 <u title="풍선 도움말">밑줄 속성도 가능해요!</u>
 <input type="text" value="텍스트 박스도 가능해요" title="풍선도움말">
 <input type="button" value="기타 다른 폼도 가능해요" title="풍선도움말">
 <p title="풍선 도움말">패러그래프도 되나요?</p>
 <ul><li title="풍선 도움말">리스트는요?</li></ul>


[출처] IT.DevInfo ∽ 힘든 IT개발자들의 즐거운 공유(ITDI.co.kr) - http://www.itdi.co.kr/onuri/bbs/board.php?bo_table=03_1&wr_id=25

 

풍선도움말에 줄바꿈 효과 주기 
 
글쓴이 : 정민구 날짜 : 09-04-06 19:30 조회 : 1807  
<img src="/images/test.gif" alt="설명1&anp;#13;설명2&anp;#13;설명3">
[이 게시물은 사랑니님에 의해 2009-08-02 15:52:26 기타에서 이동 됨]
[출처] IT.DevInfo ∽ 힘든 IT개발자들의 즐거운 공유(ITDI.co.kr) - http://www.itdi.co.kr/onuri/bbs/board.php?bo_table=03_1&wr_id=3

 

설정

트랙백

댓글



get과 post의차이를 알아둡시다.

그런데, 원래 php는 특별히 인자를 주지 않더라도, action에 걸어놓은 php가 받아가야 되는데, 그렇게 하면 보안에 안좋은니까,
따로 선언해서 받아간다.
짧은 스타일 ($tireqty)는 register_globals로 활성화 해야 되고,
중간스타일 ($_POST['tireqty'])는 가져다 쓰는 형식이다.

define을 사용하려면
define ('TIREPRICE', 100) 이런 식으로 선언하고 $없이 쓴다.

array의 index=key라고 부른다.
$product = array ('a', 'b', 'c'); 이런식으로 한다.
$product[0], $product[1] 이런ㅅ기이지 머

require와 include는 같다. 다만 error와 warning의 차이다.

정적 class의  method는 
echo math::square(8); 머 이런 식이다.

DB에서 table디자인을 스키마라고 부른다.

이 책은 아주 재미있는 것들을 많이 다루지만, 너무 두껍다. 필요할 때 찾아보고 googling도 잘 하자.
 

설정

트랙백

댓글




Cellspacing : Cell 구분선의 굵기
cellpadding : Cell안에 얼마나 margin을 둘꺼냐

굴림은 가변폭, 굴림체는 고정폭!

앵커만들기

<a href="#앵커이름"> 와우 </a>

<td name="앵커이름">  </td> 또는 <a name="앵커이름"> </a>

colspan은 옆으로,  rowspan은 아래로 몇칸 뚫을꺼냐!

중요한건 frameset은 frame을 나누고, iframe은 다른 web page를 가져옴. 화면분할이 아니다.

Style sheet는 디자이너가 해야 좋다.

css는 tag에 스타일을 먹이는 거고, tag뒤에 style이름으로 불러들일 수 있다.
- <style> <!-- ...   .yellow {font-size:9pt; ....}  -->
   <p class = "yellow">    </p>  이런식으로 스타일을 불러쓸 수 있다.

hover란 mouse over일 때를 말한다.

Span과 Div의 차이는 둘다 css를 적용가능한 단위이나, enter가 들어가느냐 마느냐의 문제이다.

자바스크립트는
onload onclick등의 콤포넌트에 event를 걸 수 있는 것이다.
(또는 a href="javascript:XXXX" 로 hyperlink로 걸수도 있다.)

 
 

'JS HTML PHP' 카테고리의 다른 글

HTML 풍선 도움말, 줄바꿈 효과  (0) 2011.11.10
성공적인 웹프로그래밍 PHP와 MySQL (4판)  (0) 2011.10.20
HTTP ERROR: 404 Not Found 의 의미  (0) 2011.09.14
HTML Table Tag, Frameset Tag  (0) 2011.07.21
FORM tag와 PHP 연동  (0) 2011.07.21

설정

트랙백

댓글

Scrapped from
http://gartzz2.blogspot.com/2007/05/http-error-404-not-found.html




"HTTP ERROR: 404 Not Found" 라는 메세지를 요즘은 정말 자주본다. 아무래도 블로그를 하면서부터 인터넷 서핑이 더 잦아진거 같은데 링크를 클릭하면 한번씩 "HTTP ERROR: 404 Not Found"라는 에러를 본다.

네이버 지식검색 에서 찾아보니 내용은 아래와 같았다.

404 에러는 요구한페이지의 url을 가져올 수 없을때 생기는 에러 입니다. url의 철자가 틀렸거나 경로가 틀렸을것 같네요

참고로 발생하기 쉬운 HTTP상태코드들을 올려 드릴께요..

200 : request가 성공적으로 완료되었음.
204 : request가 실행되었으나 클라이언트에게 보낼 데이터가 없음.
300 : 요구된 request가 여러 위치에 존재하는
자원을 필요로 하므로
request는 위에대한 정보를 보낸다. 클라이언트는 가장 적당한
위치를 선택하여야 함.
302 :
request가 요구한 데이터를 발견하였으나 실제 다른 url에 존재함.
400 : request의 문법이 잘못되었음.
403 :
request는 금지된 자원을 요구하였음.
404 : 서버는 요구된 url을 찾을 수 없음.
500 : 서버에 내부적으로 오류가
발생하여 더 이상을 진행할 수 없음.
501 : 요청된 request는 합법적이나 서버는 요구된 method를 지원하지 않음.
503 : 서버가 바쁘기 때문에 서비스를 할 수 없음.
참조하세요!!

설정

트랙백

댓글

<TH> 는 <TD>와 같은데,
맨 첫줄 header로  쓰는 곳에 쓰이며
중간정렬과 bold가 자동으로 먹는다.

 <frameset rows="30%, 70%" cols="50%, 50%" frameborder="0/1">
   <frame src="input_radio.html>
   <frame src="input_text.html>
</frameset>

설정

트랙백

댓글

FORM tag와 PHP 연동

JS HTML PHP 2011. 7. 21. 19:27


아래에서 확인할 수 있듯이,
form의 action에 php (call back)를 넣고서
막상 php에서는 $userid 등으로 처리한다. 


'JS HTML PHP' 카테고리의 다른 글

HTTP ERROR: 404 Not Found 의 의미  (0) 2011.09.14
HTML Table Tag, Frameset Tag  (0) 2011.07.21
font 글씨 모양새를 원하는대로 바꾸려면  (0) 2011.07.19
PHP 디버깅  (0) 2011.07.18
아이디 희미하게 Onfocus Onclick  (0) 2011.07.12

설정

트랙백

댓글

font 태그는 너무 어이 없어서
span을 이용하면 더 많은 style을 지정할 수 있어서 좋다.

http://blog.naver.com/nk920218?Redirect=Log&logNo=10046125918


'JS HTML PHP' 카테고리의 다른 글

HTML Table Tag, Frameset Tag  (0) 2011.07.21
FORM tag와 PHP 연동  (0) 2011.07.21
PHP 디버깅  (0) 2011.07.18
아이디 희미하게 Onfocus Onclick  (0) 2011.07.12
Input Box에 미리 글 써넣기  (0) 2011.07.12

설정

트랙백

댓글

PHP 디버깅

JS HTML PHP 2011. 7. 18. 13:20

'JS HTML PHP' 카테고리의 다른 글

FORM tag와 PHP 연동  (0) 2011.07.21
font 글씨 모양새를 원하는대로 바꾸려면  (0) 2011.07.19
아이디 희미하게 Onfocus Onclick  (0) 2011.07.12
Input Box에 미리 글 써넣기  (0) 2011.07.12
Edit Plus 태그  (0) 2011.07.11

설정

트랙백

댓글

'JS HTML PHP' 카테고리의 다른 글

font 글씨 모양새를 원하는대로 바꾸려면  (0) 2011.07.19
PHP 디버깅  (0) 2011.07.18
Input Box에 미리 글 써넣기  (0) 2011.07.12
Edit Plus 태그  (0) 2011.07.11
PHP 그림 사이즈 바꾸는 코드  (0) 2011.07.01

설정

트랙백

댓글


http://park5611.pe.kr/xe/index.php?mid=Study_02&page=6&document_srl=129014

<input type="text" onfocus="this.value='';" value="이름을 입력하세요">.

'JS HTML PHP' 카테고리의 다른 글

PHP 디버깅  (0) 2011.07.18
아이디 희미하게 Onfocus Onclick  (0) 2011.07.12
Edit Plus 태그  (0) 2011.07.11
PHP 그림 사이즈 바꾸는 코드  (0) 2011.07.01
HTML form tag  (0) 2011.06.27

설정

트랙백

댓글

Edit Plus 태그

JS HTML PHP 2011. 7. 11. 16:36


태그 자동으로 닫기 옵션

'JS HTML PHP' 카테고리의 다른 글

아이디 희미하게 Onfocus Onclick  (0) 2011.07.12
Input Box에 미리 글 써넣기  (0) 2011.07.12
PHP 그림 사이즈 바꾸는 코드  (0) 2011.07.01
HTML form tag  (0) 2011.06.27
Tag & Java Script  (0) 2011.06.06

설정

트랙백

댓글


// 이 함수는 업로드된 이미지를 썸네일이미지로 따로 저장시키는 함수이다.
// http://www.zend.net에서 공개된 함수를
// 수정 변경하여 만든 함수이다.
// $image_file_path : 변경전 이미지가 저장되어 있는 경로
// $new_image_file_path : 썸네일 이미지가 저장될 디렉토리 경로
// $max_width : 변경할 이미지의 폭
// $max_height : 변경할 이미지의 높이
function Resize_Jpeg( $image_file_path, $new_image_file_path, $max_width, $max_height )
{
$return_val = 1;

$return_val = ( ($img = ImageCreateFromJPEG ( $image_file_path )) && $return_val == 1 ) ? "1" : "0";

$FullImage_width = imagesx ($img); // Original image width
$FullImage_height = imagesy ($img); // Original image height

$ratio = ( $FullImage_width > $max_width ) ? (real)($max_width / $FullImage_width) : 1 ;
$new_width = ((int)($FullImage_width * $ratio)); //full-size width
$new_height = ((int)($FullImage_height * $ratio)); //full-size height

$ratio = ( $new_height > $max_height ) ? (real)($max_height / $new_height) : 1 ;
$new_width = ((int)($new_width * $ratio)); //mid-size width
$new_height = ((int)($new_height * $ratio)); //mid-size height

if ( $new_width == $FullImage_width && $new_height == $FullImage_height )
copy ( $image_file_path, $new_image_file_path );

//
$full_id = ImageCreate( $new_width , $new_height );
ImageCopyResized( $full_id, $img, 0,0, 0,0, $new_width, $new_height, $FullImage_width, $FullImage_height );
$return_val = ( $full = ImageJPEG( $full_id, $new_image_file_path, 100 ) && $return_val == 1 ) ? "1" : "0";
ImageDestroy( $full_id );
//

return ($return_val) ? TRUE : FALSE ;
}

'JS HTML PHP' 카테고리의 다른 글

Input Box에 미리 글 써넣기  (0) 2011.07.12
Edit Plus 태그  (0) 2011.07.11
HTML form tag  (0) 2011.06.27
Tag & Java Script  (0) 2011.06.06
Span & Div 차이  (0) 2011.06.04

설정

트랙백

댓글

HTML form tag

JS HTML PHP 2011. 6. 27. 15:54

<form name="  " action= " " method = " ">
action은 웹프로그램을 연결할 수 있고요
method는 get이면  URL에 보이고, post면 정보가 보이지 않아요.

 Cellpadding : 셀안에 입력한 내용과 테두리와의 간격
cellspacing: 셀과 셀사이의 간격

스타일을 ID로 주면 좋은 이유는
Java script로 속성을 바꿀 수 있다.

String 객체 문자열 관련 메소드를 찾아봅시다.
anchor는 parameter문자가 위치하는 곳에 이름을 지정하고 <A Name="#위치 표시문자>와 같은 효과
charAt (인덱스) 문자를 돌려줌
indexOf (문자열) 앞에서 부터 문자열이 있는 자리를 알려줌
yoman.charAt(), yoman.indexOf() 이런식으로 사용

웹 브라우저 객체 이용하기

잘 찾아보자구요 

'JS HTML PHP' 카테고리의 다른 글

Edit Plus 태그  (0) 2011.07.11
PHP 그림 사이즈 바꾸는 코드  (0) 2011.07.01
Tag & Java Script  (0) 2011.06.06
Span & Div 차이  (0) 2011.06.04
Java Script + HTML  (0) 2011.06.03

설정

트랙백

댓글

Tag & Java Script

JS HTML PHP 2011. 6. 6. 23:13

'JS HTML PHP' 카테고리의 다른 글

PHP 그림 사이즈 바꾸는 코드  (0) 2011.07.01
HTML form tag  (0) 2011.06.27
Span & Div 차이  (0) 2011.06.04
Java Script + HTML  (0) 2011.06.03
HTML css  (0) 2011.06.01

설정

트랙백

댓글

Span & Div 차이

JS HTML PHP 2011. 6. 4. 00:09

'JS HTML PHP' 카테고리의 다른 글

HTML form tag  (0) 2011.06.27
Tag & Java Script  (0) 2011.06.06
Java Script + HTML  (0) 2011.06.03
HTML css  (0) 2011.06.01
HTML Frame Table anchoring  (0) 2011.06.01

설정

트랙백

댓글

Java Script + HTML

JS HTML PHP 2011. 6. 3. 22:29


또는

'JS HTML PHP' 카테고리의 다른 글

Tag & Java Script  (0) 2011.06.06
Span & Div 차이  (0) 2011.06.04
HTML css  (0) 2011.06.01
HTML Frame Table anchoring  (0) 2011.06.01
HTML Summary  (0) 2011.06.01

설정

트랙백

댓글

HTML css

JS HTML PHP 2011. 6. 1. 22:01


 

중요한 것은 css style은 꼭 head tag안에 들어있어야 한다.



 


'JS HTML PHP' 카테고리의 다른 글

Span & Div 차이  (0) 2011.06.04
Java Script + HTML  (0) 2011.06.03
HTML Frame Table anchoring  (0) 2011.06.01
HTML Summary  (0) 2011.06.01
웹 프로그래밍 구조  (0) 2011.05.30

설정

트랙백

댓글


<A> </A> : anchoring
TARGET option :
 _ blank : 새로운 브라우져
 _self : 현재 창
 _parent : 부모창 
 _top : 웹사이트의 첫번째 문서가 표시되는 창위치에 표시
<a href = www.yahoo.com target="_blank">

cf) iframe은 프레임을 나눠서 파일을 부르는게 아니고, 그 안에서 프레임을 직접 나누는 명령어
<iframe src="^^.html" frameborder="1" </iframe>
i-> inline frame



'JS HTML PHP' 카테고리의 다른 글

Java Script + HTML  (0) 2011.06.03
HTML css  (0) 2011.06.01
HTML Summary  (0) 2011.06.01
웹 프로그래밍 구조  (0) 2011.05.30
Mysql 문법  (0) 2011.05.19

설정

트랙백

댓글

HTML Summary

JS HTML PHP 2011. 6. 1. 18:07












'JS HTML PHP' 카테고리의 다른 글

Java Script + HTML  (0) 2011.06.03
HTML css  (0) 2011.06.01
HTML Frame Table anchoring  (0) 2011.06.01
웹 프로그래밍 구조  (0) 2011.05.30
Mysql 문법  (0) 2011.05.19

설정

트랙백

댓글