홈페이지에 해당되는 글 3건

웹2.0이다 웹표준이다~
더불어 IE7까지 나오는 시점에서.
FF유저는 늘어가고 있고.
아직 웹 표준이 먼지 잘 몰라.

사실 나는 아직까진 table이 더 편한건 사실이야.
table은 단순히, 그니까 표를 그릴때만 써야하고
배열은 div를 써야한다는거지.
하지만 나에겐 아직까지도 div를 이용하려면 css에 의존도를 더 높여야하는거구. 지금껏 내가 작업한 웹페이지들은 css의존도가 현저희 낮아.
모르겠어 단순히 css파일이 늘어나긴하지만 그걸 상단에서 미리 읽어들임에 본 페이지는 div 배열로 소스크기가 줄어 가볍게 느껴진다는게 과연 얼마나 많은 차이를 보일지는 정말 내 생각에는 미지수 일뿐이야.
웹 표준을 지키자 라고 말한것일뿐인데.
몇몇 사람들은 안지키면 죽는건줄 안다.

그냥 IE로 봐서 보이는대로 FF에서도 제대로 보인다면 지금으로서는 만족할만한것 아닌가?
FF의 Validator까지 하면야 좋겠지만.. 많이 어렵더라는..
익숙치 않아서 그렇겠지. 처음의 습관이 그러니깐.
하지만 내가 말하고자 하는건. 웹표준만이 정석은 아니다 라는 생각이야.
모든 유저에게 바르고, 쉽게 가볍게 다가갈수 있는 웹을 만들면 당연 좋지.
그치만 지금에 와서 안하면 죽는다? 그건 아니다라는거지.
모 사이트에서 너무 감정적인 글을 보고 몇자 적어봤어.
어디까지나 모로가든 서울만 가면 되는거 아닌가?
늦게 가건 쉽게가건 그건 그 때 그때 해결하면되는거니깐.
내가 너무 안일한 생각인거야?
웹 표준을 우리가 따지기에 앞서 지금껏 IE와 FF등 외의 타 브라우저들의 호환성이 짙게 달라졌다는것 그 자체부터가 잘못됐다고 보거든?
그래~ 내 지금의 블로그도 FF에서 재대로 안보여.. 이렇게 말하면 대책없는거지?
테이블이 늘어나는 경우
(td style="word-break:break-all;")
이미지로 인해 깨지는 테이블이 늘어나는 경우
테이블넓이에 따라 이미지만 보여준다.
(table style="table-layout:fixed;")
(td style="word-break:break-all;")
이미지로 인해 깨지는 테이블이 늘어나는 경우
테이블넓이에 따라 이미지만 보여준다.
(table style="table-layout:fixed;")
* 스크랩 출처
- <!--
- //최상위 체크 로직(chars로 넘긴 값이 있다면 true)
- function containsCharsOnly(input,chars) {
- for (var inx = 0; inx < input.value.length; inx++) {
- if (chars.indexOf(input.value.charAt(inx)) == -1)
- return false;
- }
- return true;
- }
- //최상위 체크 로직(chars로 넘긴 값이 있다면 false)
- function containsChars(input,chars) {
- for (var inx = 0; inx < input.value.length; inx++) {
- if (chars.indexOf(input.value.charAt(inx)) != -1)
- return true;
- }
- return false;
- }
- // 숫자 체크
- function isNum(input) {
- var chars = "0123456789";
- return containsCharsOnly(input,chars);
- }
- //이름체크
- function nameCheck(input){
- var chars = '0123456789~!#$%^&amp;amp;amp;*()_-+=|{}[]<>,./?@';
- return containsChars(input,chars);
- }
- // 전화 번호 Check
- function isPhoneCheck(input) {
- var chars = "0123456789( ).-,<>{}[]_~";
- return containsCharsOnly(input,chars);
- }
- // 영문 판별
- function isPhoneCheck(input) {
- var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
- return containsCharsOnly(input,chars);
- }
- // 영숫자 판별
- function isPhoneCheck(input) {
- var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- return containsCharsOnly(input,chars);
- }
- // 입력값이 숫자,대시(-)로 되어있는지 체크
- function isNumDash(input) {
- var chars = "-0123456789";
- return containsCharsOnly(input,chars);
- }
- // 입력값이 숫자,콤마(,)로 되어있는지 체크
- function isNumComma(input) {
- var chars = ",0123456789";
- return containsCharsOnly(input,chars);
- }
- // 입력값이 사용자가 정의한 포맷 형식인지 체크
- // 자세한 format 형식은 자바스크립트의 ''regular expression''을 참조
- function isValidFormat(input,format) {
- if (input.value.search(format) != -1) {
- return true; file://올바른 포맷 형식
- }
- return false;
- }
- /**
- * 입력값이 이메일 형식인지 체크
- * ex) if (!isValidEmail(form.email)) {
- * alert("올바른 이메일 주소가 아닙니다.");
- * }
- */
- function isValidEmail(input) {
- // var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;
- var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
- return isValidFormat(input,format);
- }
- /**
- * 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
- */
- function isValidPhone(input) {
- var format = /^(\d+)-(\d+)-(\d+)$/;
- return isValidFormat(input,format);
- }
- // 콤마 없애기
- function removeComma(input) {
- return input.value.replace(/,/gi,"");
- }
- // 문자 변환 함수
- function alterString(str,before,after) {
- var returnStr = "";
- for(i = 0; i < str.length; i++) {
- value = str.charAt(i);
- index = before.indexOf(value);
- if(index >= 0) value = after.charAt(index);
- returnStr += value;
- }
- return returnStr;
- }
- // 소 --> 대문자 변환 함수
- function ToUpper(arg) {
- var str1 = "abcdefghijklmnopqrstuvwxyz";
- var str2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- return alterString(arg,str1,str2);
- }
- // 대 --> 소문자 변환 함수
- function ToLower(arg){
- var str1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- var str2 = "abcdefghijklmnopqrstuvwxyz";
- return alterString(arg,str1,str2);
- }
- // 반각 문자를 전각문자로
- function convert2ByteChar(x_char) {
- var x_2byteChar = ""; //컨버트된 문자
- var c = x_char.charCodeAt(0);
- if(32 <= c && c <= 126) { //전각으로 변환될수 있는 문자의 범위
- if(c == 32) { //스페이스인경우 ascii 코드 32
- x_2byteChar = unescape("%uFFFC");
- } else {
- x_2byteChar = unescape("%u"+gf_DecToHex(c+65248));
- }
- }
- return x_2byteChar;
- }
- // 10진수를 16진수로
- function gf_DecToHex(x_dec) {
- var x_Hex = new Array();
- var x_serial = 0;
- var x_over16 = x_dec;
- var x_tempNum = 0;
- while(x_dec > 15) {
- var x_h = x_dec % 16; //나머지
- x_dec = parseInt(x_dec/16); //몫
- x_Hex[x_serial++] = (x_h > 9 ? String.fromCharCode(x_h + 55) : x_h); //16진수코드변환
- }
- //마지막은 몫의 값을 가짐
- x_Hex[x_serial++] = (x_dec > 9 ? String.fromCharCode(x_dec + 55) : x_dec); //16진수코드변환
- //몫,나머지,나머지,.....
- var retValue = "";
- for(var i=x_Hex.length ; i>0 ;i--) {
- retValue += x_Hex[i-1];
- }
- return retValue;
- }
- // input box에 space, 등 만으로 넣고 장난 칠때 이들 문자 뺀 길이를 통해 유효성 체크한다...
- function CheckStr(strOriginal, strFind, strChange){
- var position, strOri_Length;
- position = strOriginal.indexOf(strFind);
- while (position != -1){
- strOriginal = strOriginal.replace(strFind, strChange);
- position = strOriginal.indexOf(strFind);
- }
- strOri_Length = strOriginal.length;
- return strOri_Length;
- }
- // 체크 박스에 체크가 되어 있으면 true
- function checkValidator(str) {
- if(str.checked) return true;
- else return false;
- }
- // 비밀번호는 4자 등 최대 최소 길이를 파람으로 주고 처리...
- function checkLength(str,minLng,maxLng){
- var ckstr = str.value.length;
- if (parseInt(ckstr) < parseInt(minLng) || parseInt(ckstr) > parseInt(maxLng)) return false;
- return true;
- }
- // 숫자만 받아서 아니면 메세지 보여 주는
- function onlyNumber(objEv) {
- if(!isNum(objEv)){
- alert("숫자만 입력가능합니다.");
- objEv.value = "";
- objEv.focus();
- return;
- }
- }
- // 숫자를 체크하다가 6자 등 원하는 만큼 이동후 다음 input 박스로 이동 시키는...
- function goJump(fname, len, goname){
- onlyNumber(fname);
- if (document.all[fname].value.length == len) document.all[goname].focus();
- }
- // 주민등록번호 체크 로직
- function check_ResidentNO(str_f_num,str_l_num){
- var i3=0
- for (var i=0;i<str_f_num.length;i++){
- var ch1 = str_f_num.substring(i,i+1);
- if (ch1<'0' || ch1>'9') i3=i3+1;
- }
- if ((str_f_num == '') || ( i3 != 0 )) return false;
- var i4=0;
- for (var i=0;i<str_l_num.length;i++){
- var ch1 = str_l_num.substring(i,i+1);
- if (ch1<'0' || ch1>'9') i4=i4+1;
- }
- if ((str_l_num == '') || ( i4 != 0 )) return false;
- if(str_f_num.substring(0,1) < 4) return false;
- if(str_l_num.substring(0,1) > 2) return false;
- if((str_f_num.length > 7) || (str_l_num.length > 8)) return false;
- if ((str_f_num == '72') || ( str_l_num == '18')) return false;
- var f1=str_f_num.substring(0,1)
- var f2=str_f_num.substring(1,2)
- var f3=str_f_num.substring(2,3)
- var f4=str_f_num.substring(3,4)
- var f5=str_f_num.substring(4,5)
- var f6=str_f_num.substring(5,6)
- var hap=f1*2+f2*3+f3*4+f4*5+f5*6+f6*7
- var l1=str_l_num.substring(0,1)
- var l2=str_l_num.substring(1,2)
- var l3=str_l_num.substring(2,3)
- var l4=str_l_num.substring(3,4)
- var l5=str_l_num.substring(4,5)
- var l6=str_l_num.substring(5,6)
- var l7=str_l_num.substring(6,7)
- hap=hap+l1*8+l2*9+l3*2+l4*3+l5*4+l6*5
- hap=hap%11
- hap=11-hap
- hap=hap%10
- if (hap != l7) return false;
- return true;
- }
- // 바이트 구하기
- function getByteLen(str){
- return(str.length+(escape(str)+"%u").match(/%u/g).length-1);
- }
- // url 가져오기
- function getUrlAddress(){
- var pageUrl = document.location;
- pageUrl = new String(pageUrl);
- return pageUrl.substring(0,pageUrl.lastIndexOf("/"));
- }
- // 오른마우스 금지, 나중에 해당 주석 풀고 사용
- function rightbutton(e){
- if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2))
- return false;
- else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3))
- {
- alert("죄송합니다!! 정보무단복제를 막기 위하여 오른쪽 마우스 사용을 허용하지 않습니다.");
- return false;
- }
- return true;
- }
- //document.onmousedown=rightbutton;
- // 컨트롤 키 금지, 나중에 해당 주석 풀고 사용
- function checkCtl(){
- if (document.all){
- if(event.keyCode==17) {
- alert("죄송합니다!! 컨트롤키 사용을 허용하지 않습니다.");
- return false;
- }
- }
- }
- //document.onkeydown = checkCtl;
- function setCookie(name,value) {
- document.cookie = name+"="+escape(value)+";path=/;domain=.kkaok.pe.kr;";
- }
- function setCookie(name,value, expires) {
- document.cookie = name + "=" + escape(value) +
- "; path=/; expires=" + expires.toGMTString();
- }
- function getCookie(Name) {
- var search = Name + "="
- if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면
- offset = document.cookie.indexOf(search)
- if (offset != -1) { // 쿠키가 존재하면
- offset += search.length
- // set index of beginning of value
- end = document.cookie.indexOf(";", offset)
- // 쿠키 값의 마지막 위치 인덱스 번호 설정
- if (end == -1)
- end = document.cookie.length
- return unescape(document.cookie.substring(offset, end));
- }
- }
- }
- //문자 바꾸기, 사용법 var str = 문자열.replaceAll("a", "1");
- String.prototype.trim = function(){
- return this.replace(/(^\s*)|(\s*$)/gi, "");
- }
- String.prototype.replaceAll = function(str1, str2) {
- var temp_str = "";
- if (this.trim() != "" && str1 != str2) {
- temp_str = this.trim();
- while (temp_str.indexOf(str1) > -1){
- temp_str = temp_str.replace(str1, str2);
- }
- }
- return temp_str;
- }
- //-->
head 부분에 script src로 삽입시키면 되겠지.
* 스크랩 출처