당신은 자신의 마지막 단락에 큰 지점을 생산하고 있습니다. 저희는 귀하의 포인트와 더 함께 동의하지 못했습니다. 오늘날의 현대 세계에서,이 문제에 접근은 오늘날의 아이가 부족한 것입니다. 우리는 우리의 방법을 잃지 않을 때문에 우리 애들이 주제에 대한 자세한 내용을 보려면 있는지 확인해야합니다.
IE7에서 text-decoration: underline 이 이상하게 표현될 때가 있습니다.
조금 더 정확하게 표현을 하자면 밑줄이 제자리에 있지 않는 증상이죠.
font-family가 어떤것이냐에 따라 1px 올라가느냐 2px이 올라가느냐 정도의 차이가 있습니다.
문제의 원인은
vertical-align:middle속성을 가진 DOM이
text-decoration: underline 속성을 가진 DOM과
같은 레벨에 있을때
나타납니다. 아마 IE7의 Bug인것 같네요.
IE7에서 같은 레벨상에 vertical-align: middle의 DOM이 있을경우 text-decoration: underline인 DOM이 이상하게 표현되는 경우
해결책은 아주 간단합니다. vertical-align: middle의 객체를 div같은 display:block으로 감싸주면 되죠. 만약 이 객체의 우측에 위치해야 한다면 float: left로 Positioning을 해주시면 됩니다.
그 외 세세한것들은 디자인에 맞춰서 Styling 하면 되는것이죠.
OS에 상관없이 CSS Editor를 16개나 Review 한 것입니다. 영어의 압박이 있긴 하지만..심심풀이 땅콩으로 볼만한 것 같습니다.
세세하게 둘러보진 않았지만..지금보니.. Mac용 Editor도 많네요. 괜찮아 보이는것들도 있고... 메인 OS가 Windows여서 Windows용이 사실 좋은데.. 왠지 Mac Editor가 더 이뻐보이네요.. 이뻐보여서 그런지 왠지 기능도 더 좋을거 같고;; (Rails랑 svn용으로만 쓰는 불쌍한 내 MacBook의 활용도가 조금 더 올라갈려나;;)
둘러보니 Linux에서도 구동되는 CSS Editor(CSSED)도 있네요!! 그리고 CSS 천재라고 불리는 Eric Meyer가 CSS Editor도 만들었다는 사실도 알았습니다. 듣는순간 촌티가 확 나면서 왠지 안쓰고 싶은 느낌이 드는 이름을 가진 Editor.. 그 이름하여 Eric Meyer’s CSS Sculptor..............;;;
그래도 Eric Meyer인데!! 라는 생각으로 Eric Meyer’s CSS Sculptor 에 들어가는 순간.. 순간 두 눈을 의심하게 되며, 머리속이 하얗지면서 두 손과 어깨의 힘이 쭉빠지게 됩니다. 요즘 흔히들 말하는 "멍~" 때리게 됩니다. 그리고 정확히 2.515초 후에 Scream!!! 하게 될 수 도 -ㅁ-;; (역시 서양인들의 쎈쓰!! ㅎㅎ)
tab menu 의 링크를 각각의 content에 걸어줌으로 인해 quick link의 역활을 수행하여 접근성을 높였고, 각 content 하단에 tab menu로 바로 가는 quick link도 제공함으로 더욱 완성도 높은 접근성이 보장되었다. 하지만 이렇게 보면 전혀 tab menu같지가 않다.
이제는 tab menu스럽게 꾸며보자.
body { font:12px arial; } a { text-decoration:none; } img { border:0; }
/* tab menu */ #tab_menus { margin:0; padding:0; list-style:none; } #tab_menus li { margin-bottom:16px; float:left; padding:0px; } #tab_menus li a { padding:8px 10px; color:#505050; border-width:1px 0 1px 1px; border-style:solid; border-color:#ae9f96; background-color:#eae4e0; background-image:none; font-weight:bold; font-size:0.9em; display:block; } #tab_menus li a:hover { color:black; } #tab_menus li.selected a { border-bottom:0 solid white; background:white url("blt_arrowdown.gif") no-repeat center bottom; color:black; }
tab menu의 a를 block으로 잡고 hover를 주어 onMouse상태일때 Javascript없이도 변화를 줄 수 있게 하였다. #Menu_02, #Menu_03에 display:none을 안 준 것을 궁금해 하는 독자가 있다면, 당신은 천재! Javascript없이도 모든 content의 접근성을 보장하기 위해서다. 이건 조금 후 다시 설명하기로 하고..
자 이제는 마무리. Javascript로 tab menu 동작을 만들자. mootools 1.11(Element.Event, Element.Selectors)을 이용하였다
var selected_menu = 0;
var menus = $$('#tab_menus li'); var contents = $$('div.content'); contents.each(function(div, i) { if (i != 0) { div.setStyle('display', 'none'); } })
menus.each(function(quick_link, i) { quick_link.getElement("a").blur(); quick_link.addEvent('click', function(event) { e = new Event(event).stop(); contents[selected_menu].setStyle('display', 'none'); menus[selected_menu].removeClass('selected');
#Menu_01을 제외한 다른 content들은 가려주었고, tab menu의 박스에 click 이벤트를 걸어줌으로써 toggle 기능이 완성이 되었다. 만약 content들을 CSS에서 가려주었다면(#Menu_02, #Menu_03 display:none) CSS는 render가 되었는데 Javascript가 동작이 안되는 상황이 오면 다른 content에 접근할 방법이 없어진다. Javascript로 원하는 content를 display:block으로 바꿔줘야 하는데 Javascript가 동작이 안되니 tab을 백날눌러도 그 tab의 content는 볼 수 가 없게 되는 것이다.
결론. 결국은 content는 CSS와 Javascipt에 영향을 받지 않게 설계,코딩 되어야 하고 더불어 semantic하게 markup되어야 한다는 것이다.
다운로드 미리보기 (링크걸리는줄 알았는데 그게 아니네요. 아..이럴때 개인서버가 살아있었다면..)
HTML 코딩을 하다보면 어쩔 수 없이 CSS Hack을 사용해야 만 하는 경우가 있다. 저질 IE6만 특별하게 왕따를 시키거나, FF만 특별대우를 해주거나, 혹은 IE6, IE7, FF 각개격파를 하거나.. 일반적으로 비중이 높은것이 IE6왕따시키기, FF 특별대우 해 주기 인데 이것들을 Hack하는 방법은 여러가지가 있겠지만 아주 간단한 Hack 한가씩만 공개(?)를 한다.
먼저 IE6(저질)만 왕따시키기 방법은
IE6에만 적용시킬 CSS를 쓰고
IE7, FF에 적용시킬 CSS는 style name을 쓰고 한 칸 공백을 준 후 /**/(주석) style value를 적어주는 방법이다.
여기서 중요한것은 순서인데 IE6 CSS를 먼저 쓴 후 IE7, FF CSS를 적는것이다. 순서를 바꿔서 IE7, FF CSS을 먼저 적었다면 IE7, FF는 자기들을 위해 마련된 CSS를 적용한 후 IE6 CSS도 적용하면서 덮어씌워지기 때문이다.
IE7에서(6은 확인 못해봤습니다.) fieldset에 legend가 있을때 fieldset에 bgcolor 줄경우 fieldset border 안으로만 bg가 칠해지는게 아니라 legend의 영역까지 fieldset의 bgcolor가 칠해져 버린다.
legend의 bgcolor는 textNode가 있는 부분만 칠해지기때문에 해결책이 되지 못하고 legend width:100% 해도 왼쪽영역은 여전히 fieldset bgcolor가 먹혀져 있게 된다. 여기에 margin-left:-10px;padding-right:10px 같은 방식으로 장난을 쳐보면 해결이 된 것 같아 보이지만 fieldset의 border가 사라져 버리게 된다.
(그림판 역시 최고 ㅠ,.ㅠ)
이럴경우 fieldset position을 relative로 주고 legend의 position을 absolute로 줘서 positioning을 해 주면 해결이 된다. (CSS Position 을 참고)
relative는 parent element를 기준으로 상태 위치로 지정하는 방법이고 absoulte는 절대 위치로 지정하는 방법인데 이를 하게되면 child element가 아닌 절대위치를 가진 element가 되기때문에 floating과 상관없이 해당 element는 붕 떠있는 상태가 된다. (1) parent element에는 아무값을 주지 않고 본인 스스로 relative를 줘도 되지만 이럴경우 자기 자신이 parent에 속해져 있는 상태가 되기 때문에 자신의 width 혹은 height만큼 parent element도 영향을 받게 된다.
(2) 하지만 parent element를 relative를 주고 child element를 absolute를 주게 되면 parent를 기준으로한 절대위치가 된다.
물런 간단히 예를 들어 보자 HTML 코드는 아래와 같다
<div id="parent_element"> Parent Element <div id="child_element">Child Element Line number #1 <br />Child Element Line number #2 <br/>Child Element Line number #3 </div> </div> <div id="absolute_element">Absolute Element</div>
라고 선언을 했다. 그런데 지금 작업하는 파일에서는 ul, li 를 기존 margin과 padding을 줘야 하는 상황이 왔을경우 초기화 하는 방법이 없다. 중첩 li 가 나타나도 모두 여백없이 딱 붙어있게 되어서, 중첩의 깊이(depth)를 표현할 방법이 없어진다. 이렇게 되면 위의 구문에서(a.css) ul, ol, li 항목을 삭제하고, 기존의 영향을 받던 dom을 전부 찾아서 따로 정의를 해줘야 하는 끔찍한 상황이 생긴다.
border dotted, dashed 같은거에 옵션좀 추가해주라 디쟈인을 받아보면 dotted도 아니고 dashed도 아닌경우가 자주 있다. 이렇게 되면 결국 이미지를 따서 background로 처리하거나 image로 처리하게 된다. 막상 이거 할려면 무지 귀찮아진다.
border의 칠해진 부분 size지정과 border간의 간격에 대한 지정을 할 수 있으면 좋을것 같다 예를들어, 한칸의 border의 size가 width 10px height 3px, 칸사이의 간격이 10px이고, 색깔이 검정색이라고 한다면(아래 이미지 참고)
Box Round(라운드)도 CSS에서 할 수 있게 해줘!! background 혹은 border로 테두리를 둥그렇게 처리된 디쟈인들을 종종 작업하게 될때가 있다. 이것도 위의 border와 비슷하게.. 둥그스름한 정도, 색깔, background인지 border인지 설정할 수 있게 해 주면 좋겠다..
1번은 <a>태그의 display속성을 inline-block으로 바꿔서 사용하는 방법을 쓰거나 아예 hover속성을 li에 걸 수도 있겠구요, 2번은 현재로선 원래 초기 속성을 그대로 재정의해서 사용하는 방법이 있겠죠. 장단은 있겠지만 현존 브라우저 기본 css가 전부 다르고 나중에도 또 변화될 거를 생각한다면 현재가 더 낫다는 생각이 듭니다.
3번은 있었으면 좋긴 하겠지만, 그건 디자이너의 재량이니 디자이너를 설득하든지 그냥 이미지로 배경을 까는 것이 더 맘이 편하고, 4번의 경우는 css3에서 도입이 된다고 들었습니다.
1번, a의 display 속성을 변경하는게 바람직한 방법인것 같네요.ㅎㅎ
하지만 제가 예시한 경우가 아니더라고 parent node와 뭔가를 하게 되는일은 종종 있습니다.
CSS로 끝낼 수 있는것인데, 단지 parent selector가 없어서 번거롭게 js까지 가는게 아쉬워서 적은것이죠. ㅎㅎ
ul { margin:0;padding:0; }
라고 정의가 되어 있는데, 아래 ul을 그대로 표현하고 싶으면 어떻게 하면 되나요..?
<ul>
<li>1-1</li>
<li>1-2
<ul>
<li>2-1</li>
<li>2-2</li>
</ul>
</li>
</ul>
(혹시 방법이 있나 싶어서 찾아봤는데 없더라구요)
하지만, 이러면 왠지 섭섭한 느낌을 지울 수 없습니다
왠지 쓸대없는 코드를 만든것 같은 느낌이라고 해야 할까요..?
자..그럼 어떻게 해야 할까요..?
눈치빠르신 분은 이미 눈치 채셨겠지만..class를 다중으로 선택 할 수 있습니다.!!
CSS는 new 와 hot만 정의하면 됩니다.
헉, 부족한 글을 이리 칭찬해주시니 너무 감사드립니다.
포스팅에 대한 반응이 없어서, 의기소침해하고 포기하고 있었는데, WOW~! 님 덕분에 마무리를 지어야 겠다는 의지가 생기네요, ㅎㅎ
바쁜것들이 해결이 되는 즉시 바로 릴리즈 하겠습니다.
지속적인 관심 부탁드리며, 감사합니다
정답은 바로...!!! 이 녀석은 ol 의 하위에 있는 녀석이 아니기 때문입니다. 즉 무슨말이냐 하면. ol 밑에있는 li 라면 하위선택자로 선택을 해야겠지만.. 이 ol은 자기 자신이기 때문입니다. 무슨 말인지 이해 하셨나요..? list라는 class가 li에 있는게 아니고, ol 자신에게 선언된것이란거죠.. 아직 아리송 하시다고요..? 일단 코드 보시죠..
<ol class="list">
<li>a</li> <li>b</li> <li>c</li>
</ol>
인거지
<ol>
<li class="list">a</li> <li>b</li> <li>c</li>
</ol>
이게 아니니깐요.. 이해 하셨죠..? 못하셨다면. 위 예제코드를 한번 더 보시면 도움이 되실꺼에요.
이렇게 되겠죠? HTML 에서는 list 였던 class명을 sidebarList로 변경이 되었습니다. 그에 맞춰서 CSS도 추가가 되었습니다. list였을때의 성격을 그대로 유지하기 위해, list와 똑같은 CSS를 선언해주고 CSS와 background를 주었습니다.
이 코드에서 눈여겨 봐야 할 점은 #sidebar .list 입니다. (지난 초급편을 보셨다면 #sidebar 와 .list가 어떤건지는 아시겠죠..?) 코드가 직관적이기 때문에, 눈치 없으신분들도 이미 다 눈치 채셨겠지만 ㅎㅎ, 설명을 해드리자면 sidebar 라는 id 아래에 list 라는 class를 1Space(공백 즉 " ")으로 선택하는 것이지요. 이걸 "Descendant selector" 즉 "하위 선택자" 라고 합니다
HTML파일 손 안되도 되고, 새로이 추가되는 속성에 대해서만 정의해주면 끝이죠.!!! 어떻게 이런게 가능하느냐..!!
이게 바로 CSS의 놀라운 기능이니깐요..!
CSS를 풀면 Casecading Stype Sheet 이죠..!!
덮의쓰기..즉 overwrite개념이 아닌...포토샵에서 쓰는 Layer같은 개념인거죠..!! 저는 이걸 "걸린놈만 족쳐" 개념이라고 (우스갯소리) 생각합니다 ㅎㅎ
CSS의 시작은 Selector로부터 한다고 말을 해도 과언이 아닙니다. 그 이유는 모두가 알고 있겠지만, Selector 즉 선택자가 존재하지 않는다면 선언된 CSS가 어떤곳에 적용을 해야 할지 모르기때문이죠. 명령은 했지만, 누구에게 명령을 한건지 모르는것과 비슷하다고 해야 할까요..? 그리고 궁극적으로 CSS을 코딩할려면, Selector부터 코딩해야 하니깐요..ㅎㅎ
물런 inline-Style로 코딩을 한다면 Selector가 필요없을 지 도 모르겠지요. 하지만, 이런 코딩방식은 CSS의 장점을 제대로 활용못한 것이기 때문에, 개발단계 있을때 혹은 디버깅중일때, 즉 임기응변 용으로가 아니면 권고하고 싶지 않은 코딩방식입니다.
그럼 우선 Selector의 종류에 대해서 알아보겠습니다. Selector는 크게 4종류로 나눌 수 있습니다..
공통 선택자 (Universal Selector)
타입 선택자 (Type Selector) 저는 개인적으로 태그 선택자 혹은 엘레먼트 선택자 라고 하는게 더 직관적이라고 생각합니다. ㅎㅎ
그래서 이번 포스팅인 초급에선, 대표적인 선택자들과 기본적 사용법에 대해서 알아보겠습니다. 중급에선, 선택자를 좀 더 응용하는 편으로 진행할 계획이며 고급에선, 가상 엘레먼트 접근에 대해 포스팅할 예정입니다.
1. 공통 선택자 (Universal Selector) 공통 선택자는 * 를 말하는 것입니다. 이 녀석이 하는일은, 이 녀석의 이름을 보면 아시겠지만.. 모든것을 선택하는 것입니다. DOS 시절에서 쓰던 * 와 마찬가지죠. 정규표현식에서도 조금 틀리지만 비슷한 의미로 사용되죠 ㅎㅎ
간단한 예제를 들면
* {
margin:0px; padding:0px;
}
이렇게 선언된 HTML 파일의 모든 엘레먼트들은(혹은 태그들은) margin:0px;padding:0px;border:0px;을 선언하게 되는겁니다.
보통, 위의 예제처럼 CSS 초기화할때 많이 사용합니다. 초기화하는 이유는, 크로스브라우징을 위해서 입니다~, 브라우져별로 기본적으로 주어지는 margin 과 padding 값이 틀리거든요.. (IE는 버젼마다 틀리다는 소문이..흠흠 ㅎㅎ)
2. 타입 선택자 (Type Selector) 타입 선택자....??? 이름만 봐선 이놈이 뭐하는 놈인지 모르겠군요.. 그럼 어디한번 뭐하는 놈인지 한번 볼까요..? 우선 W3C에서는 뭐라 정의했나 함 보겠습니다.
A type
selector matches the name of a document language element
type. A type selector matches every instance of the element type in
the document tree.
흠....뭐라 하는지 아시는분 해석좀 해주세요 -ㅛ-; 아는 단어만 해석하면;;
A type
selector matches the name of a document language element
type 타입 샐렉트는 문서언어 엘레먼트 타입의 이름과 매칭을 한다...
이해하셨나요? 문서언어는 HTLM을 말하는것이고 엘레먼트 타입은, HTML 태그를 말하는 것이고 이름은, 태그의 명칭을 말하는 것이죠 즉, p, h1, div, span, table, ul, ol, li, form, legend, fieldset 같은 HTML 태그를 선택하는 선택자 인것이죠.
그래서, 제가 엘레먼트 선택자 혹은 태그 선택자라고 하는게 더 직관적이라고 한거에요 ㅎㅎ
타입 선택자의 사용방법은 위의 예제코드에서 보셨겠지만. 해당되는 태그를 지시어 없이 HTML 태그의 명칭만 선언해주면 됩니다. 간단하죠~?
3. ID 선택자 (ID Selector) ID 선택자.., 오 이 녀석은 이름만 봐도 뭐하는 놈인지 대충 알 것 같죠? 이런식으로 네이밍 해주면 얼마나 좋아~, 타입 선택자가 모야. ;p
JS를 위해서 엘레먼트에 id 라는 애트리뷰트를 쓰지만, CSS에서도 엄청나게 많이 쓰입니다.
> 여기서 잠깐! 알아두면 좋아요(클릭클릭) <
id 애트리뷰트의 롤은
CSS 선택자로
JS 선택자로
앵커로
입니다~
JS에서는
getElementById('SomeElement_ID'); 혹은 prototype이라면 $('SomeElement_ID')
이런식으로 엘레먼트 ID를 이용해, 엘레먼트에 접근을 하죠. CSS 에서는 # 라는 지시어를 사용합니다.
예제와 함께 좋은 팁을 소개해 주셨네요. 첨언하면, 상대적인 단위는 바로 부모의 값을 1em 또는 100% 으로 인식하게 됩니다. 따라서 body에 75%의 서체크기를 적용하면 body는 75%의 서체크기를 갖지만 p는 body에 적용된 서체크기를 기준으로 다시 75%를 계산하기 때문에 body 보다 75% 더 작아지게 됩니다. 결국 75%의 75%가 되는거죠. 더 헷갈리지 않았나 모르겠네요 ㅜㅜ;
한가지 더 보태자면 보통 쓰는 9pt, 혹은 12px 이 0.75em 입니다. 여기서 0.75를 인식을 못하는 브라우저가 있으니 0.76em 을 보통 쓰게 됩니다. 0.01 의 비밀이죠 ^^
물론 현실적으로 과연 얼마나 되는곳에서 em 을 쓰게 될런지 말입니다... 일단 백터폰트가 많이 퍼지면 혹 많아지게 될수 있긴 하겠죠.
사실 포스팅된 내용은, 웹표준Day 에서 토론해볼려고 했던 주제입니다. 그런데, 능력이 안되어서..ㅎㅎ;; 개인적인 여력이 된다면, 좀 더 정리해서..토론해 보고 싶네요. ㅎㅎ
제가 오래전부터 고민하던것이 있습니다.
우리가 생각하는 접근성의 의미가 부합되지 않는 사이트나 서비스 혹은 메뉴(이하 사이트라 칭함) 같은경우는 어떻게 해야되나..
라는 생각입니다. 이런 사이트같은 경우, 표준은 준수 할 수 있지만 우리가 알고있고, 현재 새워져 있는 웹접근성지침에는 어긋날 수 밖에 없지요..
얘가 무슨말을 하나..? 라고 생각하셨죠..? 제가 써놓고도 이해가 잘 않가네요.. (아, 이 무책임함..ㅎㅎ)
보다 쉽게 알려드리기위해 Flash를 놓고 예를 들어 보겠습니다.
Flash로만 표현이 가능한 콘텐츠들이 있습니다. (Flash로만 표현 가능한 콘텐츠 자체가 접근성에 위배된다고 말씀하시면 어쩔 수 없지만) 그 사이트나 서비스 혹은 메뉴의 성격상 Flash를 써야만 하는 경우가 있습니다. 이런 경우도 "접근성이 좋지 않다" 라고 평가가 되는건지 궁금합니다.
그렇다고 Flash가 비표준이냐..? 그것도 아닙니다. Flash는 엄연한 웹 표준입니다.
한 예로는,
사진사이트같은경우 실질적으로, 시각장애인들이 무언가를 하기엔 불가능한 사이트입니다.(콘텐츠 자체가 이미지이므로) 그런곳에서 사진View 라던가, 간단한 수정작업을 위해 Flash를 썻다고 할경우..
이것또한 접근성에 위배되는건가요..? 꼭 이 사이트에, 우리가 말하는 접근성을 지켜야 할까요..? (이런 사이트는 그래픽기반이므로, CSS를 끄거나 JS가 끄면 구동자체가 안될 수 도 있죠)
어떻게 보면 우리가 생각하는 접근성이, 이 사이트에선 의미가 없는걸 수 도 있죠.
많은 분들이, 접근성에 대한 fallback은 시각장애인에 대해서만 고려하시는것 같아요.. 현재 놓여있는 지침들도 둘러보면 그런 사항들이 많구요.
시각장애인만 고려한다는 전제는 어느곳에도 없습니다. 다만 시각장애인을 고려하면 약시, 청각장애, 지체장애인에 대한 접근성이 모두 함께 개선됩니다. 가장 쉬운예로 키보드만으로 조작 가능한지를 평가하는 것은 시각장애인을 염두해 두고 진행할 수도 있겠지만 사실은 지체장애인의 접근성과도 관계가 있습니다
옳은 말씀입니다. 하지만 흠...뭐라고 해야 할까요.. 정말 모든 사항들에 대해서, 시각장애인에게 맞추면 다른 사항들도 따라오는걸까..? 하는 의문점이 생깁니다.
위에 열거한것들이, 제가 접근성에 대해 고민하는것 중 한 부분입니다. 우리가 생각하는 접근성 정의는 모든 브라우져에, 모든 사람들이 차별없이 동일한 정보를 습득하는것 입니다.
사진사이트 같은경우, 이미 특정인들만을 대상으로 한 사이트이기때문에.. 웹접근성 정의에 벗어나므로, 접근성에 대해선 배제를 해야 되는걸까요..?
현재 새워진 접근성지침같은것을 보면, 시각장애인에 대한 fallback만 있을뿐이죠. 우리가 생각하는 접근성과, 접근성지침이...정말로 접근성 정의에 부합하는지.. 한번쯤 생각해 봄직합니다.
누구나 가질 수 있는 고민이라고 생각합니다. 어떤 문장에서는 요한님과 조금 다른 생각을 가지고 있는데 말씀드려 보겠습니다.
Flash 도 웹 표준이라고 표현하신 부분을 저는 그렇게 생각하지 않습니다. object 태그가 웹 표준일지는 몰라도 Flash 는 표준이라고 말할 수는 없고 '응용기술' 일 뿐이라고 생각합니다. 즉, 웹은 아니지만 웹에 응용된 기술로서 그것이 존재하지 않더라도 무방한 기술이라는 견해 입니다. 극단적으로 표현해 보자면 Adobe 라는 회사가 망했고 더이상 Flash 라는 기술이 업그레이드 되지 않으며 역사의 뒤안길로 사라져간다고 해도(그럴 확률은 희박하겠지만 전혀 없다고 말할 수도 없죠) 웹은 존재할 껍니다. 이것이 플래시를 표준이라고 말하지 않는 이유입니다.
그와는 별도로, 요한님과 같은 생각은 오늘 제 블로그에도 관련 포스팅을 했습니다만 웹 접근성을 말할 때 그 목적이 마치 장애인만 고려하는 듯한 뉘앙스 또는 그러한 정의에 대하여 저 또한 반대합니다. 즉, 소수를 위한 웹 접근성이 아닌 모두를 위한 웹 접근성으로 정의되어야 한다고 생각하며 현재 국내에서 웹 접근성을 평가할 때 장애인에 대한 접근성만 평가하는 것은 개선되어야 한다고 생각합니다.
마지막으로, 사진 갤러리 서비스와 같이 시각을 반드시 지니고 있어야만 원활하게 이용할 수 있는 콘텐트라고 하더라도 시각이 없거나 일시적으로 다른곳에 시각을 사용해야 하기 때문에 그것을 듣는 방식으로 이해해야 하는 일반적인 사람들(일시적으로 불리한 조건, 핸디캡)의 접근성을 보존해 주어야 한다고 생각합니다. 즉, 웹 접근성이란 웹에 존재하는 모든것에 대하여 동일하지는 않더라도 차별없이 이용할 수 있도록 해야 한다는 점을 강조하고 싶습니다. 따라서 사진 갤러리 서비스라고 해서 접근성과 관계없다고 말하기는 어렵다는 생각입니다.
이미지에 Over 했을시, 그때 List.html 파일을 로드하고, Click 했을시 불러온 List.html을 보여주게 됩니다. 이렇게 구분지음으로, 쓸대없는 DB Connect을 줄이는(혹은 데이터 로드를 줄이는) 효과를 볼 수 있습니다. (물런, 예제에서는 DB Connect하지 않습니다.)
소스는 간결하고 쉽게 짜여져 있으므로 별다른 설명을 필요 없을 듯 하여 주요함수만 간략히 어떤일을 하는지만 설명하겠습니다.
RoadMyFav()
위에 설명한 이미지에 onmouseover시 일어나는 일을 하는 함수입니다.
Ajax 객체를 생성하고, List.html 에 접근해서 데이터를 가지고 옵니다.
ShowMyFav()
이미지를 click했을시 실행되는 함수입니다.
RoadMyFav()함수로 얻어온 List.html의 내용을 출력해주는 역활을 합니다.
OverClub(List)
리스트에 onmouseover/out 이벤트시 구동되는 함수로, CSS를 이용해서 유저에게 현재 어떤 리스트에 마우스가 올라와있는지 보여주는 함수입니다.
주요 함수는 위와같이 3가지인데, 소스보시면
에게, 이게뭐야~
하실거에요.
그리고 이것만의 특이한 점은 리스트가 뿌려지는 div의 높이가 특정높이 이상일경우 특정높이로 고정하고, 세로 스크롤바가 생기게 하는것입니다. 그리고 가로스크롤바는 생기지 않게 하는거죠. 위 첨부이미지를 보시면 아시겠지만, 사이트의 주소표시부분은 가차없이 짤리고 끝납니다.
댓글을 달아 주세요