@quico5
Para que querés hacer eso exactamente? es una cuestión visual? o despues el textarea es procesado por un formulario?
Php, por ejemplo, no te va a reconocer el indent com espacios en blanco.
Interesante, como de costumbre, la solución de @furoya
Aqui te propongo otra
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript"> //<![CDATA[
function editable(){
var texto = document.getElementById('texto').innerText;
document.getElementById('contenido').value = texto;
}
//]]>
<form action="editable.php" method="post" onsubmit="return editable();"> <div id="texto" contenteditable="true" style="width: 400px; height: 400px;text-indent: 2em;border: solid 1px #333333"></div> <input type="hidden" value="" id="contenido" name="contenido" />
Código PHP:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>titulo</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$texto = $_POST['contenido'];
?>
<div>
<?php echo "$texto"; ?>
</div>
</body>
</html>
Es decir, transformas el div en una suerte de textarea. Y pasas el valor en un campo hidden.
Aunque aqui, el que hace de las suyas es Firefox, ya que el comportamiento es más parecido a un editor de texto, enter te genera un nuevo parrafo y Shift+mas enter sólo una nueva linea en opera, Chrome e IE, pafa FF son solo nuevas lineas.
También podés reformatear el valor del post con el mismo php
Saludos