Devi utilizzare l'attributo contenteditable e, il comando execCommand di javascript.

L'attributo contentEditable di qualsiasi elemento html, permette di editare il contenuto dell'elemento html se impostato a true.

Il comando execCommand esegue, sulla selezione corrente, il comando che gli viene passato come primo parametro ad esempio: bold, italic ecc.