¿cual es el script, ccs y html para hacer un editor html con vista previa a un lado, con botones arriba para agregar todas las etiquetas o codigos html ?
Aquí te dejo un ejemplo sencillo de cómo crear un editor HTML con vista previa a un lado y botones arriba para agregar etiquetas o códigos HTML.
HTML:
```
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Editor HTML</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<div class="toolbar">
<button onclick="addTag('<b>', '</b>')">Bold</button>
<button onclick="addTag('<i>', '</i>')">Italic</button>
<button onclick="addTag('<u>', '</u>')">Underline</button>
<button onclick="addTag('<br>')">Line break</button>
</div>
<div class="editor">
<textarea id="textArea" oninput="preview()"></textarea>
</div>
<div class="preview">
<p id="preview"></p>
</div>
</div>
<script src="app.js"></script>
</body>
</html>
```
CSS:
```
.container {
display: flex;
flex-direction: row;
}
.editor,
.preview {
width: 50%;
padding: 10px;
}
textarea {
width: 100%;
height: 100%;
border: none;
resize:none;
}
.toolbar {
display: flex;
flex-direction: row;
background: #eee;
padding: 10px;
}
button {
margin-right: 5px;
}
```
Javascript:
```
function addTag(openingTag, closingTag = '') {
const textField = document.getElementById('textArea');
const startPos = textField.selectionStart;
const endPos = textField.selectionEnd;
const selectedText = textField.value.substring(startPos, endPos);
const newText = textField.value.slice(0, startPos) + openingTag + selectedText + closingTag + textField.value.slice(endPos);
textField.value = newText;
textField.focus();
textField.setSelectionRange(startPos + openingTag.length, endPos + openingTag.length);
preview();
}
function preview() {
const textField = document.getElementById('textArea');
const preview = document.getElementById('preview');
preview.innerHTML = textField.value;
}
```
Explicación:
- La estructura HTML incluye tres divs, uno para la barra de herramientas, otro para el editor de texto y otro para la vista previa.
- La barra de herramientas contiene botones que llaman a la función addTag con los valores HTML de las etiquetas correspondientes.
- La función addTag agrega las etiquetas HTML seleccionadas en la posición correcta dentro del editor de texto y actualiza la vista previa de la parte derecha.
- La función preview simplemente actualiza la vista previa de la parte derecha a medida que se va escribiendo en el editor de texto.
- La hoja de estilo define la estructura básica de la página y los estilos para los diferentes elementos.
- El archivo de JavaScript implementa la funcionalidad de agregar etiquetas o códigos HTML y actualizar la vista previa.
Nota: Este ejemplo es solo un punto de partida y se puede modificar según las necesidades específicas de tu proyecto.