HTML Tip

HTML °ü·Ã °£´ÜÇÑ ÆÁÀ» Á¤¸®ÇÑ´Ù.

box-sizing DIV Å©±â Á¤È®ÇÏ°Ô ÁöÁ¤Çϱâ

box-sizingÀÇ ¼Ó¼ºÀÌ ¸î°³ ÀÖÁö¸¸ ¿©±â¼­´Â content-box¿Í border-box¸¸ ¼³¸íÇÑ´Ù.

content-box : 
  • box-sizingÀÇ ±âº»°ªÀº content-boxÀÌ´Ù.
  • width ¿Í height ¼Ó¼ºÀº ÄÁÅÙÃ÷¸¸ Æ÷ÇÔÇÑ´Ù.,
  • padding, border, margin Àº Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù.
border-box:
  • width ¿Í height ¼Ó¼ºÀÌ padding, border¸¦ Æ÷ÇÔÇÑ´Ù.
  • marginÀº Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù.
  • ¹Ú½ºÀÇ Å©±â¸¦ Á¤È®ÇÏ°Ô Á¤ÇÒ¼ö ÀÖ´Ù.
box-sizing:border-box;

ÁöÁ¤ÇÑ ¿ä¼Ò³»¿¡¼­ id·Î ¿ä¼Ò ã±â

id´Â À¯ÀÏÇϱ⠶§¹®¿¡ ÁöÁ¤ÇÑ ¿ä¼Ò ³»¿¡¼­ getElementById ÇÔ¼ö¸¦ »ç¿ëÇÒ¼ö ¾ø´Ù.
querySelector ÇÔ¼ö¸¦ »ç¿ëÇؼ­ ¿ä¼Ò¸¦ ãÀ»¼ö ÀÖ´Ù.

getElementsByTagName ÇÔ¼ö³ª getElementsByClassName ÇÔ¼ö ¶ÇÇÑ ÁöÁ¤ÇÑ ¿ä¼Ò ³»¿¡¼­ »ç¿ë ÇÒ¼ö ÀÖ´Ù.

let el = document.getElementById('keyboard_id');
el = document.getElementById('child_id');
let child = el.querySelector('#child_id');

¼Ó¼º À̸§À» ¹®ÀÚ¿­·Î ¹Ù²Ù±â

¼Ó¼º À̸§À¸·Î ¹®ÀÚ¿­À» ¾ò´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.

let animal = {
    none: 0,
    cat: 1,
    dog: 2
};

function propName(prop, value){
   for(var i in prop) {
       if (prop[i] == value){
            return i;
       }
   }
   return false;
}

let pn = propName(animal, animal.dog);

´ÙÀ½°ú °°ÀÌ ¹®ÀÚ¿­À» ÀÌ¿ëÇØ ¼Ó¼ºÀÇ ÇÔ¼ö¸¦ ½ÇÇà ÇÒ¼öµµ ÀÖ´Ù.
¼Ó¼ºÀ̸§ÀÌ ¼Ó¼º °´Ã¼¿¡ Á¸Àç ÇÏ´ÂÁö üũ ÈÄ ½ÇÇà ÇÑ´Ù.

let tooltipState = {
    leftMove : function() {
        console.log('tooltipState leftMove');
    },
    rightMove : function() {
        console.log('tooltipState rightMove');
    }
};

let stateText = 'leftMove';
let exist = propName(tooltipState, tooltipState[stateText]);
if(exist) {
    tooltipState[stateText]();
}

°á°ú)
tooltipState leftMove

¹è¿­ Á¦°Å

pop ÇÔ¼ö·Î °ªÀ» Á¦°ÅÇÑ´Ù.

let list = [1, 2, 3, 4, 5];
while (list.length > 0)
        list.pop();

ÀÚ½Ä ¿ä¼Ò ¸ðµÎ Á¦°Å

let element = document.getElementById('Parent_Id');
while (element.firstChild) {
    element.removeChild(element.firstChild);
}

ÇÔ¼ö°¡ Á¸Àç ÇÏ´ÂÁö °Ë»çÇϱâ

function initUi() {
    console.log('run initUI');
}

if(typeof initUi == 'function'){
    initUi();
}

parentElement or parentNode

parentElement :  ºÎ¸ð ³ëµå°¡ ¾øÀ¸¸é nullÀ» ¹ÝȯÇÑ´Ù.
parentNode´Â :  ºÎ¸ð ³ëµå°¡ ¾øÀ¸¸é Document Node¸¦ ¹ÝȯÇÑ´Ù.

¿¤¸®¸ÕÆ® º¹Á¦

cloneNode(true)¸¦ »ç¿ëÇÏ¸é ¿ä¼Ò¸¦ º¹Á¦ ÇÒ¼ö ÀÖ´Ù.
var cloneElement = srcElement.cloneNode(true);

let srcEl = document.getElementById('keyboard_id');
if(!srcEl.parentElement)
    throw new Error("Parent element does not exist.");
let cloneEl = srcEl.cloneNode(true);
srcEl.parentElement.appendChild(cloneEl);
cloneEl.style.left = '500px';
var elKey = cloneEl.querySelector('#Cursofr_Left');
elKey.textContent = 'CopyTest';

ÀÚ¹Ù½ºÅ©¸³Æ® Object Deep Copy

ÀÚ¹Ù½ºÅ©¸³Æ® Object¸¦ º¹»çÇÑ´Ù.

function deepcopy(obj) {
    if (obj === null || typeof obj !== 'object') {
        return obj;
    }

    const copiedObject = obj.constructor();

    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            copiedObject[key] = deepcopy(obj[key]);
        }
    }

    return copiedObject;
}

Å×½ºÆ® ÄÚµå

const now = new Date();
let arr = [1, 2, 3, 4, now];
let temp = deepcopy(arr);
temp[0] = 100;
console.log(arr);
console.log(temp);

document to html string

ÇöÀç ÆäÀÌÁö Àüü¸¦ HTML ¹®ÀÚ¿­·Î º¯È¯ÇÑ´Ù.
µð¹ö±ëÀ» À§ÇØ HTML·Î ÀúÀåÇÑ´Ù.
´ÙÀ½ 2°¡ÁöÁß¿¡ Çϳª¸¦ ½ÇÇàÇÏ¸é µÈ´Ù.

console.log(document.getElementsByTagName('html')[0].innerHTML);

  or

console.log(document.documentElement.outerHTML);

What is the difference between the selectors ¡°.class.class¡± and ¡°.class .class¡±?

.class1.class2: µÎ°¡Áö Ŭ·¡½º¸¦ ÇÔ²² »ç¿ë ÇÒ¶§ÀÌ´Ù.
<div class="class1 class2">...</div>


.class1 .class2: °ø¹éÀÌ ÀÖÀ¸¸é ÀÚ½Ä ³ëµå°¡ ÀÖÀ»¶§ ÀÌ´Ù.
<div class1="class1">
    <div class2="class2">
        ...
    </div>
</div>

.class1, .class2: ½°Ç¥°¡ ÀÖÀ¸¸é µÎ Ŭ·¡½º ¸ðµÎ ÁöÁ¤ÇÑ ½ºÅ¸ÀÏÀ» °¡Áú¼ö ÀÖ´Ù.

.class1 > .class2: class1ÀÇ Á÷°è ÀÚ¼ÕÀÌ class2À϶§ Àû¿ë µÈ´Ù.
<div class1="class1">
    <div class2="class2">
        ...
    </div>
</div>