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.