Monday, May 21, 2012

ဇော်ဂျီနဲ့ ယူနီကုဒ် တစ်လှည့်စီ ပြောင်းကြမယ်

သူငယ်ချင်းတို့ရဲ့ ဆိုဒ်မှာ ဇော်ဂျီ နဲ့ ယူနီကုဒ် ပြဿနာတက်နေမယ်ဆိုရင် ဘာဖောင့်ဘဲဖြစ်ဖြစ်
ဒီ script လေးကို ထည့်လိုက်ပါ....ကျွန်တော်လည်း သူများဆိုဒ်ကနေ copy လုပ်ပြီး နည်းနည်းပြန်ပြင်ထားတာပါ....

<script type="text/javascript">
function Uni_Z1(input)
{
            var output=input;

            output = output.replace(/\u104E\u1004\u103A\u1038/g, '\u104E');
            output = output.replace(/\u102B\u103A/g, '\u105A');
            output = output.replace(/\u102D\u1036/g, '\u108E');
            output = output.replace(/\u103F/g, '\u1086');

            output = output.replace(/(\u102F[\u1036]?)\u1037/g, function($0, $1){return $1 ? $1 + '\u1094' : $0 + $1;});
            output = output.replace(/(\u1030[\u1036]?)\u1037/g, function($0, $1){return $1 ? $1 + '\u1094' : $0 + $1;});
            output = output.replace(/(\u1014[\u103A\u1032]?)\u1037/g, function($0, $1){return $1 ? $1 + '\u1094' : $0 + $1;});
            output = output.replace(/(\u103B[\u1032\u1036]?)\u1037/g, function($0, $1){return $1 ? $1 + '\u1095' : $0 + $1;});

            output = output.replace(/(\u103D[\u1032]?)\u1037/g, function($0, $1){return $1 ? $1 + '\u1095' : $0 + $1;});
            output = output.replace(/([\u103B\u103C\u103D][\u102D\u1036]?)\u102F/g, function($0, $1){return $1 ? $1 + '\u1033' : $0 + $1;});
            output = output.replace(/((\u1039[\u1000-\u1021])[\u102D\u1036]?)\u102F/g, function($0, $1){return $1 ? $1 + '\u1033' : $0 + $1;});
            output = output.replace(/([\u100A\u100C\u1020\u1025\u1029][\u102D\u1036]?)\u102F/g, function($0, $1){return $1 ? $1 + '\u1033' : $0 + $1;});
            output = output.replace(/([\u103B\u103C][\u103D]?[\u103E]?[\u102D\u1036]?)\u1030/g, function($0, $1){return $1 ? $1 + '\u1034' : $0 + $1;});
            // uu - 2
            output = output.replace(/((\u1039[\u1000-\u1021])[\u102D\u1036]?)\u1030/g, function($0, $1){return $1 ? $1 + '\u1034' : $0 + $1;});
            // uu - 2
            output = output.replace(/([\u100A\u100C\u1020\u1025\u1029][\u102D\u1036]?)\u1030/g, function($0, $1){return $1 ? $1 + '\u1034' : $0 + $1;});
            // uu - 2

            output = output.replace(/(\u103C)\u103E/g, function($0, $1){return $1 ? $1 + '\u1087' : $0 + $1;});
            // ha - 2


            output = output.replace(/\u1009(?=[\u103A])/g, '\u1025');
            output = output.replace(/\u1009(?=\u1039[\u1000-\u1021])/g, '\u1025');

            // E render
            output = output.replace( /([\u1000-\u1021\u1029])(\u1039[\u1000-\u1021])?([\u103B-\u103E\u1087]*)?\u1031/g, "\u1031$1$2$3");

            // Ra render
            output = output.replace( /([\u1000-\u1021\u1029])(\u1039[\u1000-\u1021\u1000-\u1021])?(\u103C)/g, "$3$1$2");

            // Kinzi
            output = output.replace(/\u1004\u103A\u1039/g, "\u1064");
            // kinzi
            output = output.replace(/(\u1064)([\u1031]?)([\u103C]?)([\u1000-\u1021])\u102D/g, "$2$3$4\u108B");
            // reordering kinzi lgt
            output = output.replace(/(\u1064)(\u1031)?(\u103C)?([\u1000-\u1021])\u102E/g, "$2$3$4\u108C");
            // reordering kinzi lgtsk
            output = output.replace(/(\u1064)(\u1031)?(\u103C)?([\u1000-\u1021])\u1036/g, "$2$3$4\u108D");
            // reordering kinzi ttt
            output = output.replace(/(\u1064)(\u1031)?(\u103C)?([\u1000-\u1021])/g, "$2$3$4\u1064");
            // reordering kinzi

            // Consonant

            output = output.replace(/\u100A(?=[\u1039\u102F\u1030])/g, "\u106B");
            // nnya - 2
            output = output.replace(/\u100A/g, "\u100A");
            // nnya

            output = output.replace(/\u101B(?=[\u102F\u1030])/g, "\u1090");
            // ra - 2
            output = output.replace(/\u101B/g, "\u101B");
            // ra

            output = output.replace(/\u1014(?=[\u1039\u103D\u103E\u102F\u1030])/g, "\u108F");
            // na - 2
            output = output.replace(/\u1014/g, "\u1014");
            // na

            // Stacked consonants
            output = output.replace(/\u1039\u1000/g, "\u1060");
            output = output.replace(/\u1039\u1001/g, "\u1061");
            output = output.replace(/\u1039\u1002/g, "\u1062");
            output = output.replace(/\u1039\u1003/g, "\u1063");
            output = output.replace(/\u1039\u1005/g, "\u1065");
            output = output.replace(/\u1039\u1006/g, "\u1066");
            // 1067
            output = output.replace(/([\u1001\u1002\u1004\u1005\u1007\u1012\u1013\u108F\u1015\u1016\u1017\u1019\u101D])\u1066/g, function($0, $1){return $1 ? $1 + '\u1067' : $0 + $1;});
            // 1067
            output = output.replace(/\u1039\u1007/g, "\u1068");
            output = output.replace(/\u1039\u1008/g, "\u1069");

            output = output.replace(/\u1039\u100F/g, "\u1070");
            output = output.replace(/\u1039\u1010/g, "\u1071");
            // 1072 omit (little shift to right)
            output = output.replace(/([\u1001\u1002\u1004\u1005\u1007\u1012\u1013\u108F\u1015\u1016\u1017\u1019\u101D])\u1071/g, function($0, $1){return $1 ? $1 + '\u1072' : $0 + $1;});
            // 1067
            output = output.replace(/\u1039\u1011/g, "\u1073");
            // \u1074 omit(little shift to right)
            output = output.replace(/([\u1001\u1002\u1004\u1005\u1007\u1012\u1013\u108F\u1015\u1016\u1017\u1019\u101D])\u1073/g, function($0, $1){return $1 ? $1 + '\u1074' : $0 + $1;});
            // 1067
            output = output.replace(/\u1039\u1012/g, "\u1075");
            output = output.replace(/\u1039\u1013/g, "\u1076");
            output = output.replace(/\u1039\u1014/g, "\u1077");
            output = output.replace(/\u1039\u1015/g, "\u1078");
            output = output.replace(/\u1039\u1016/g, "\u1079");
            output = output.replace(/\u1039\u1017/g, "\u107A");
            output = output.replace(/\u1039\u1018/g, "\u107B");
            output = output.replace(/\u1039\u1019/g, "\u107C");
            output = output.replace(/\u1039\u101C/g, "\u1085");


            output = output.replace(/\u100F\u1039\u100D/g, "\u1091");
            output = output.replace(/\u100B\u1039\u100C/g, "\u1092");
            output = output.replace(/\u1039\u100C/g, "\u106D");
            output = output.replace(/\u100B\u1039\u100B/g, "\u1097");
            output = output.replace(/\u1039\u100B/g, "\u106C");
            output = output.replace(/\u100E\u1039\u100D/g, "\u106F");
            output = output.replace(/\u100D\u1039\u100D/g, "\u106E");
            output = output.replace(/\u1009(?=\u103A)/g, "\u1025");
            // u
            output = output.replace(/\u1025(?=[\u1039\u102F\u1030])/g, "\u106A");
            // u - 2
            output = output.replace(/\u1025/g, "\u1025");
            // u
            /////////////////////////////////////

            output = output.replace(/\u103A/g, "\u1039");
            // asat

            output = output.replace(/\u103B\u103D\u103E/g, "\u107D\u108A");
            // ya wa ha
            output = output.replace(/\u103D\u103E/g, "\u108A");
            // wa ha

            output = output.replace(/\u103B/g, "\u103A");
            // ya
            output = output.replace(/\u103C/g, "\u103B");
            // ra
            output = output.replace(/\u103D/g, "\u103C");
            // wa
            output = output.replace(/\u103E/g, "\u103D");
            // ha
            output = output.replace(/\u103A(?=[\u103C\u103D\u108A])/g, "\u107D");
            // ya - 2

            output = output.replace(/(\u100A(?:[\u102D\u102E\u1036\u108B\u108C\u108D\u108E])?)\u103D/g, function($0, $1){return $1 ? $1 + '\u1087' : $0 ;});
            // ha - 2

            output = output.replace(/\u103B(?=[\u1000\u1003\u1006\u100F\u1010\u1011\u1018\u101A\u101C\u101E\u101F\u1021])/g, "\u107E");
            // great Ra with wide consonants
            output = output.replace(/\u107E([\u1000-\u1021\u108F])(?=[\u102D\u102E\u1036\u108B\u108C\u108D\u108E])/g, "\u1080$1");
            // great Ra with upper sign
            output = output.replace(/\u107E([\u1000-\u1021\u108F])(?=[\u103C\u108A])/g, "\u1082$1");
            // great Ra with under signs

            output = output.replace(/\u103B([\u1000-\u1021\u108F])(?=[\u102D \u102E \u1036 \u108B \u108C \u108D \u108E])/g, "\u107F$1");
            // little Ra with upper sign

            output = output.replace(/\u103B([\u1000-\u1021\u108F])(?=[\u103C\u108A])/g, "\u1081$1");
            // little Ra with under signs

            output = output.replace(/(\u1014[\u103A\u1032]?)\u1037/g, function($0, $1){return $1 ? $1 + '\u1094' : $0 + $1;});
            // aukmyint
            output = output.replace(/(\u1033[\u1036]?)\u1094/g, function($0, $1){return $1 ? $1 + '\u1095' : $0 + $1;});
            // aukmyint
            output = output.replace(/(\u1034[\u1036]?)\u1094/g, function($0, $1){return $1 ? $1 + '\u1095' : $0 + $1;});
            // aukmyint
            output = output.replace(/([\u103C\u103D\u108A][\u1032]?)\u1037/g, function($0, $1){return $1 ? $1 + '\u1095' : $0 + $1;});
            // aukmyint

            return output;

        }//Uni_Z1


        // JavaScript Document
        function Z1_Uni(input)
        {
            var output=input;

            var tallAA = "\u102B";
            var AA = "\u102C";
            var vi = "\u102D";
            // lone gyi tin
            var ii = "\u102E";
            var u = "\u102F";
            var uu = "\u1030";
            var ve = "\u1031";
            var ai = "\u1032";
            var ans = "\u1036";
            var db = "\u1037";
            var visarga = "\u1038";

            var asat = "\u103A";

            var ya = "\u103B";
            var ra = "\u103C";
            var wa = "\u103D";
            var ha = "\u103E";
            var zero = "\u1040";

            output = output.replace( /\u106A/g, " \u1009");
            output = output.replace( /\u106B/g, "\u100A");
            output = output.replace( /\u1090/g, "\u101B");
            output = output.replace( /\u1040/g, zero);

            output = output.replace( /\u108F/g, "\u1014");
            output = output.replace( /\u1012/g, "\u1012");
            output = output.replace( /\u1013/g, "\u1013");
            /////////////


            output = output.replace( /[\u103D\u1087]/g, ha);
            // ha
            output = output.replace( /\u103C/g, wa);
            // wa
            output = output.replace( /[\u103B\u107E\u107F\u1080\u1081\u1082\u1083\u1084]/g, ra);
            // ya yint(ra)
            output = output.replace( /[\u103A\u107D]/g, ya);
            // ya

            output = output.replace( /ha + ya/g, ya + ha);
            // reorder

            output = output.replace( /\u108A/g, wa + ha);
            // wa ha

            ////////////////////// Reordering

            output = output.replace( /(\u1031)?(\u103C)?([\u1000-\u1021])\u1064/g, "\u1064$1$2$3");
            // reordering kinzi
            output = output.replace( /(\u1031)?(\u103C)?([\u1000-\u1021])\u108B/g, "\u1064$1$2$3\u102D");
            // reordering kinzi lgt
            output = output.replace( /(\u1031)?(\u103C)?([\u1000-\u1021])\u108C/g, "\u1064$1$2$3\u102E");
            // reordering kinzi lgtsk
            output = output.replace( /(\u1031)?(\u103C)?([\u1000-\u1021])\u108D/g, "\u1064$1$2$3\u1036");
            // reordering kinzi ttt

            ////////////////////////////////////////

            output = output.replace( /\u105A/g, tallAA + asat);
            output = output.replace( /\u108E/g, vi + ans);
            // lgt ttt
            output = output.replace( /\u1033/g, u);
            output = output.replace( /\u1034/g, uu);
            output = output.replace( /\u1088/g, ha + u);
            // ha u
            output = output.replace( /\u1089/g, ha + uu);
            // ha uu

            ///////////////////////////////////////

            output = output.replace( /\u1039/g, "\u103A");
            output = output.replace( /[\u1094\u1095]/g, db);
            // aukmyint

            ///////////////////////////////////////
            output = output.replace( /\u1064/g, "\u1004\u103A\u1039");


            output = output.replace( /\u104E/g, "\u104E\u1004\u103A\u1038");
            output = output.replace( /\u1086/g, "\u103F");

            output = output.replace( /\u1060/g, '\u1039\u1000');
            output = output.replace( /\u1061/g, '\u1039\u1001');
            output = output.replace( /\u1062/g, '\u1039\u1002');
            output = output.replace( /\u1063/g, '\u1039\u1003');
            output = output.replace( /\u1065/g, '\u1039\u1005');
            output = output.replace( /[\u1066\u1067]/g, '\u1039\u1006');
            output = output.replace( /\u1068/g, '\u1039\u1007');
            output = output.replace( /\u1069/g, '\u1039\u1008');
            output = output.replace( /\u106C/g, '\u1039\u100B');
            output = output.replace( /\u1070/g, '\u1039\u100F');
            output = output.replace( /[\u1071\u1072]/g, '\u1039\u1010');
            output = output.replace( /[\u1073\u1074]/g, '\u1039\u1011');
            output = output.replace( /\u1075/g, '\u1039\u1012');
            output = output.replace( /\u1076/g, '\u1039\u1013');
            output = output.replace( /\u1077/g, '\u1039\u1014');
            output = output.replace( /\u1078/g, '\u1039\u1015');
            output = output.replace( /\u1079/g, '\u1039\u1016');
            output = output.replace( /\u107A/g, '\u1039\u1017');
            output = output.replace( /\u107B/g, '\u1039\u1018');
            output = output.replace( /\u107C/g, '\u1039\u1019');
            output = output.replace( /\u1085/g, '\u1039\u101C');
            output = output.replace( /\u106D/g, '\u1039\u100C');

            output = output.replace( /\u1091/g, '\u100F\u1039\u100D');
            output = output.replace( /\u1092/g, '\u100B\u1039\u100C');
            output = output.replace( /\u1097/g, '\u100B\u1039\u100B');
            output = output.replace( /\u106F/g, '\u100E\u1039\u100D');
            output = output.replace( /\u106E/g, '\u100D\u1039\u100D');

            /////////////////////////////////////////////////////////

            output = output.replace( /(\u103C)([\u1000-\u1021])(\u1039[\u1000-\u1021])?/g, "$2$3$1");
            // reordering ra

            output = output.replace(/(([\u1000-\u101C\u101E-\u102A\u102C\u102E-\u103F\u104C-\u109F\u0020]))(\u1040)/g, function($0, $1){return $1 ? $1 + '\u101D' : $0 + $1;});
            // zero and wa

            output = output.replace( /(\u1040)(?=[\u1000-\u101C\u101E-\u102A\u102C\u102E-\u103F\u104C-\u109F\u0020])/g, "\u101D");
            // zero and wa

            output = output.replace(/(([\u1000-\u101C\u101E-\u102A\u102C\u102E-\u103F\u104C-\u109F\u0020]))(\u1047)/g, function($0, $1){return $1 ? $1 + '\u101B' : $0 + $1;});
            // seven and ra

            output = output.replace( /(\u1047)( ? = [\u1000 - \u101C\u101E - \u102A\u102C\u102E - \u103F\u104C - \u109F\u0020])/g, "\u101B");
            // seven and ra

            output = output.replace( /(\u1031)?([\u1000-\u1021])(\u1039[\u1000-\u1021])?([\u102D\u102E\u1032])?([\u1036\u1037\u1038]){0,2}([\u103B-\u103E])*([\u102F\u1030])?([\u102D\u102E\u1032])?/g, "$2$3$6$1$4$8$7$5");
            // reordering storage order

            return output;

        }//Z1_Uni

        var _curFont=getcookie("leikpyar_converter_font")||1;
        var _enabled=getcookie("leikpyar_converter_enable")||2;
        var _origFont;var _html;
        var _title;
        window.onload=leikpyar_init;

        function $(_s){
            return document.getElementById(_s);
        }

        function leikpyar_init(){
            if(!/[\u1000-\u109F]/.test(document.body.innerHTML)) return; //non-burmese characters
            if(/(?:action=edit|mail\.google\.com)/.test(location.href)) return; //un-supported sites
            if(/[\u1004\u100A\u1014]\u1039/.test(document.body.innerHTML) && !/[\u1004\u100A\u1014]\u103A/.test(document.body.innerHTML)){ //Zawgyi-One
                _origFont=1;
            }else if(/[\u1004\u100A\u1014]\u103A/.test(document.body.innerHTML)){ //Unicode 5.1
                _origFont=2;
            }
            addStyle({css:'.converter span{vertical-align:middle;font-family:Arial;}.converter{position:absolute;top:0px;left:0;z-index:99999;padding:5px;width:300px;float:right;text-align:center;border:#87CEFA solid 1px;background-color:#e5ecf9;filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;font-family:Arial;}'});
            _switch_font(_curFont);
        }

        function _switch_font(_opt){
            if($("leikpyar_converter")) document.body.removeChild($("leikpyar_converter"));
            if(_enabled==2){
                setcookie("leikpyar_converter_font",_curFont=_opt,1000);
                if(_curFont!=_origFont){
                    _convertFont();
                    addStyle({id:"leikpyar_converter_style",css:'*{font-family:'+(_curFont==2?'Myanmar3,Parabaik,Padauk':'Zawgyi-One')+' !important;}'});
                }else if(_html && _title){
                    document.getElementsByTagName("head")[0].removeChild($("leikpyar_converter_style"));
                    document.body.innerHTML=_html;
                    document.title=_title;
                }
            }
            var txtdiv = document.createElement("div");
            txtdiv.id="leikpyar_converter";
            txtdiv.className='converter';
            txtdiv.innerHTML = 'Choose Font Here &nbsp;<\/span><span><select onchange="_switch_font(this.value);"><option value=1'+(_curFont==1?' selected':'')+'>Zawgyi-One<\/option><option value=2'+(_curFont==2?' selected':'')+'>Unicode<\/option><\/select>'+'<span style="cursor:pointer;" onclick="setcookie("leikpyar_converter_enable","'+(_enabled?'1':'2')+'",1000)">&nbsp;['+(_enabled==2?'DISABLE':'ENABLE')+']<\/span>';
            document.body.appendChild(txtdiv);           
        }

        function _convertFont(){
            _html=document.body.innerHTML;
            _title=document.title;
            if(/&#[0-9]{1,4};/.test(_html)) _html=_html.replace(/&#([0-9]{1,4});/g,function($0,$1){return String.fromCharCode($1);});
            var a2=_html.split(/[\u1000-\u109F]+/);var _tmp=a2[0];
            var b2=_html.split(/[^\u1000-\u109F]+/);
            var ch_f=_curFont-_origFont;           
            if(ch_f==1){
                b2 = Z1_Uni(b2.join('||')).split("||");
                _tmp2= Z1_Uni(_title);               
            }else {
                b2=Uni_Z1(b2.join('||')).split("||");
                _tmp2=Uni_Z1(_title);               
            }
           
            if(isIE){for(var i=0;i<b2.length-1;i++) _tmp+=b2[i]+a2[i+1];_tmp+=b2[i];}
            else{for(var i=1;i<b2.length-1;i++) _tmp+=b2[i]+a2[i];}
            document.body.innerHTML=_tmp;
            document.title=_tmp2;
        }

        function addStyle(_opt){
            var ss1 = document.createElement('style');
            ss1.setAttribute("type", "text/css");
            if(_opt.id) ss1.setAttribute("id", _opt.id);
            if (ss1.styleSheet) {
                ss1.styleSheet.cssText = _opt.css;
            }else {
                var tt1 = document.createTextNode(_opt.css);
                ss1.appendChild(tt1);
            }
            var hh1 = document.getElementsByTagName('head')[0];
            hh1.appendChild(ss1);
        }

        var isGecko= /Gecko/.test(navigator.userAgent);
        var isIE= /MSIE/.test(navigator.userAgent);

        function _deactivate(_s){
            $(_s).style.display="none";
            $(_s).visible=false;
        }

        function setcookie(_s,_val,_day) {
            var expires = '';
            if (_day) {
                var _date = new Date();
                _date.setTime(_date.getTime()+(_day*86400000));
                expires = "; expires="+_date.toGMTString();
            }
            document.cookie = _s+"="+_val+expires+"; path=/";
        }

        function getcookie(_s) {
            var _t = _s + "=";
            var _ck = document.cookie.split(';');
            for(var i=0;i < _ck.length;i++) {
                var _c = _ck[i];
                while (_c.charAt(0)==' ') _c = _c.substring(1,_c.length);
                if (_c.indexOf(_t) == 0) return _c.substring(_t.length,_c.length);
            }
            return null;
        } 
</script>

- head tag မှာ ထည့်ပြီး သုံး ကြည့်ကြပါဗျာ...

Sunday, May 13, 2012

Javascripg Right Click Protection

သူငယ္ခ်င္းတို႔ေတြမိမိpage က data ေတြကို သူမ်ားေတြ ကူးယူလို႔မရေအာင္ right protection လုပ္ထားတာကို ေတြဖူးပါလိမ့္မယ္။ အဲဒီလို မ်ိဳးသူငယ္ခ်င္းေတြလုပ္ခ်င္တယ္ဆိုရင္ javascript ေလးနဲ႔ လုပ္ရပါတယ္။ google မွာရွာရင္ ၾကာေနပါလိမ့္မယ္။ကၽြန္ေတာ္မၽွေဝေပးလိုက္ပါတယ္။
<script language=JavaScript> var message="Function Disabled!"; function clickIE4(){ if (event.button==2){ alert(message); return false; } } function clickNS4(e){ if (document.layers||document.getElementById&&!document.all){ if (e.which==2||e.which==3){ alert(message); return false; } } } if (document.layers){ document.captureEvents(Event.MOUSEDOWN); document.onmousedown=clickNS4; } else if (document.all&&!document.getElementById){ document.onmousedown=clickIE4; } document.oncontextmenu=new Function("alert(message);return false") </script>

စမ်းကြည့်ရင်းနဲ့ပျော်ရွှင်ကြပါစေဗျာ။

web applicatin developer မ်ားအတြက္ သတင္းေကာင္း

web  applicatin developer မ်ားအတြက္ သတင္းေကာင္းကေတာ့ ကၽြန္ေတာ္ တစ္ရက္ အလုပ္မရွိတာနဲ႔
webdesign.tutsplus.com မွာစာ၀င္ဖတ္ေတာ့ Bootstrap ကိုသြားေတြ႕ပါတယ္. သူက web app developer
ေတြအတြက္ေတာ့ ေတာ္ေတာ္ေကာင္းတယ္ဗ် ….ကၽြန္ေတာ္ စသုံးေတာ့ version 1.4 ပါ…အခုစာေရးခ်ိန္မွာေတာ့ version က 2.0.0 ကိုေရာက္ေနပါၿပီ။
ဘယ္လိုေကာင္းတာလဲဆိုေတာ့ သူ႔မွာ css ကို အရမ္းေၾကာက္တဲ့သူေတြေတာင္ css သုံးခ်င္စိတ္ျဖစ္ေအာင္ကို
ေကာင္းတာဗ်ာ….
သူ႔ကိုသုံးခ်င္တယ္ဆိုရင္ေတာ့ ဒီမွာေဒါင္းလုပ္ လုပ္နိုင္ပါတယ္.
http://twitter.github.com/bootstrap/
သူ႔ရဲ့ Features ေတြကေတာ့
  1.     The Grid System
  2.     Typography
  3.     Tables
  4.     Forms and Buttons
  5.     Navigation
  6.     Tabs and Pills
  7.     Pagination
  8.     Alerts and Error Messages
  9.     Modals
ဆိုၿပီး ၉ပိုင္းခြဲထားတယ္ဗ်…
The Grid System
960px grid system လို႔လူေတြ သိေနၾကတဲ့ Web design grid ကိုေတာ့ Bootstrap က 940px နဲ႔ default လုပ္ထားတာ ကိုလည္းစတင္ ေတြ႕နိုင္ပါတယ္. ဒါေပမဲ့ သူ႔မွာ အေျခခံ span ေလးေတြ ၁၆ ခုနဲ႔ ခြဲျပထားတာကိုလည္းေတြ႕ရပါတယ္. ပုံမွန္ grid ကို သုံးခ်င္တယ္ဆိုရင္ေတာ့
<body>
<div class=”container”>
//design your page
</div>
</body>
fluid layout ကိုသုံးခ်င္တယ္ဆိုရင္ေတာ့
<body>
<div class=”container-fluid”>
<div class=”sidebar”>

</div>
<div class=”content”>

</div>
</div>
</body>
ဒီလိုေရးရမယ္လို႔လည္း အေသးစိတ္ရွင္းျပထားပါတယ္. div ေလးေတြကို ကိုယ့္စိတ္ႀကိဳက္ပုံစံေျပာင္းသုံးလို႔ရေအာင္ <div>,<div> အစရွိသျဖင့္ span 24 အထိ အသုံးျပဳလို႔ရေအာင္ လုပ္ေပးထားပါေသးတယ္။ အဲဒါေၾကာင့္ Bootstrap grid ေလးေတြကို အသုံးျပဳၿပီး ကိုယ့္ရဲ့ စိတ္ႀကိဳက္ layout စမ္းၾကည့္ၾကပါလို႔ လက္တို႔လိုက္ပါရေစဗ်ာ။