Para restablecer una sección de una página que hayas creado, usa un restablecimiento CSS específico para el marcado que controlas, Shadow DOM para estilos de componentes aislados o un iframe para un documento independiente. Esta guía muestra cómo elegir una opción y previsualizar el resultado en un Mac.
¿Qué tipo de restablecimiento necesita tu sección?
La tarea del lector es específica: dar a un panel de vista previa anidado su propia tipografía, espaciado y gráficos abstractos, y preservar al mismo tiempo la apariencia de la página que lo rodea. Necesitas acceso a los archivos fuente de la página y permiso para editarlos.
Elige el límite antes de elegir la declaración de restablecimiento. Los valores de las propiedades CSS, el alcance de los selectores y los recursos del documento son cuestiones distintas. La siguiente guía de decisión combina el comportamiento documentado de los restablecimientos CSS, Shadow DOM y los marcos en línea.
| Tu requisito | Opción práctica | Condición que debes tener en cuenta |
|---|---|---|
| Quitar estilos seleccionados del marcado anidado normal | Declaraciones específicas o all |
Los selectores externos aún pueden coincidir con los elementos de la sección. |
| Mantener separados los selectores internos y los de la página | Shadow DOM con una base interna explícita | Aun así, hay que tener en cuenta los valores heredados. |
| Dar a la sección su propio documento y configuración de hojas de estilo | Un iframe | Sus dimensiones y recursos requieren una configuración independiente. |
Para un panel de vista previa pequeño que hayas creado, Shadow DOM es un buen punto de partida. Proporciona un límite para los selectores sin exigir un segundo archivo HTML. Si solo necesitas quitar un borde o cambiar la fuente de un encabezado, las declaraciones explícitas son más sencillas que introducir un límite de componente.
¿Por qué all: revert no restablece por completo una sección anidada?
La forma abreviada all cambia las propiedades de los elementos con los que coincide. Excluye las propiedades personalizadas, direction y unicode-bidi. No crea un documento independiente ni impide que otros selectores coincidan con esos elementos. Referencia de MDN para all
Las palabras clave de restablecimiento también producen bases distintas. initial usa el valor inicial definido por la especificación para cada propiedad. unset hereda las propiedades que normalmente se heredan e inicializa las demás. En una hoja de estilo del autor, revert revierte la propiedad afectada más allá de los estilos del autor; los valores heredados aún pueden proceder del elemento padre. CSS Cascading and Inheritance Level 5
Por ejemplo, restablecer el color de una sección no elimina una declaración de color que coincida directamente con un párrafo de su interior. MDN muestra esta distinción exacta: el párrafo conserva el color que se le asignó directamente aunque el elemento padre use revert. Por tanto, restablecer un elemento contenedor no basta cuando los selectores de los elementos descendientes son la causa de la apariencia no deseada. Ejemplo de MDN sobre el restablecimiento del elemento padre
Aplicar un restablecimiento a todos los descendientes amplía su alcance, pero también elimina elementos útiles de diseño y formato. Con all: initial, incluso se pierde la visualización en bloque habitual del navegador para un elemento de división, a menos que la restaures. Usa un restablecimiento así solo si puedes reconstruir deliberadamente la presentación necesaria. Ejemplo de restablecimiento de un widget en la especificación
revert-layer tiene otro propósito: revertir una propiedad a través de las capas de la cascada. Es útil cuando el problema proviene de una capa específica de estilos, pero no establece un límite de componente. Reversión de una capa de la cascada CSS
Crea un panel de vista previa autónomo en tu Mac
Este ejemplo completo crea una interfaz oscura alrededor de un panel anidado claro que contiene etiquetas ficticias y dos formas CSS originales. Todo está en línea: no se necesitan descargas, paquetes, fuentes externas ni archivos de imagen.
En TextEdit, elige File > New y luego Format > Make Plain Text. Pega el ejemplo completo de abajo, guárdalo como section-reset.html y, si se te pregunta, elige Use .html. Estos son los pasos que Apple documenta para crear un archivo HTML. Trabajar con documentos HTML en TextEdit en Mac
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Section reset demonstration</title>
<style>
body {
margin: 0;
padding: 32px;
background: #202a36;
color: #f2f5f8;
font: 18px/1.6 Georgia, serif;
letter-spacing: 1px;
}
main { max-width: 720px; margin: auto; }
h2 { color: #bce8ff; text-transform: uppercase; }
p { border-left: 4px solid #7db5cf; padding-left: 12px; }
#panel-host { display: block; margin: 24px 0; }
</style>
</head>
<body>
<main>
<h1>Shape workspace</h1>
<p>Outer label Alpha</p>
<div id="panel-host">
<p>Preview unavailable. Use a browser supporting Shadow DOM.</p>
</div>
<h2>Outer label Beta</h2>
<p>This paragraph belongs to the surrounding interface.</p>
</main>
<script>
const host = document.getElementById("panel-host");
if (typeof host.attachShadow === "function") {
const root = host.attachShadow({ mode: "open" });
const style = document.createElement("style");
style.textContent = `
.panel {
all: initial;
display: block;
box-sizing: border-box;
direction: ltr;
unicode-bidi: normal;
font: 16px/1.5 system-ui, sans-serif;
color: #233344;
background: #f4f7fa;
padding: 24px;
border: 2px solid #9db0c1;
border-radius: 12px;
}
h2 { margin: 0 0 12px; font-size: 22px; }
p { margin: 0 0 16px; }
.shapes { display: flex; gap: 16px; flex-wrap: wrap; }
.circle {
width: 56px; height: 56px;
border-radius: 50%; background: #386f91;
}
.bar {
width: 104px; height: 56px;
border-radius: 8px; background: #c98252;
}
`;
const panel = document.createElement("section");
panel.className = "panel";
const heading = document.createElement("h2");
heading.textContent = "Panel Delta";
const text = document.createElement("p");
text.textContent = "Circle and rounded bar";
const shapes = document.createElement("div");
shapes.className = "shapes";
shapes.setAttribute("aria-hidden", "true");
for (const name of ["circle", "bar"]) {
const shape = document.createElement("div");
shape.className = name;
shapes.append(shape);
}
panel.append(heading, text, shapes);
root.append(style, panel);
}
</script>
</body>
</html>
Abre el archivo guardado en el navegador de tu Mac. El resultado esperado es un panel claro con un encabezado en mayúsculas y minúsculas, y un párrafo sin borde. Fuera del panel, el encabezado sigue en mayúsculas y azul, y los párrafos conservan sus bordes izquierdos. Estos son los resultados esperados del ejemplo, no mediciones obtenidas en pruebas de navegador.
El script adjunta una raíz de sombra al elemento host, que está vacío por diseño, y crea el panel dentro de esa raíz. La hoja de estilos pertenece al árbol de sombra, por lo que sus selectores normales para encabezados y párrafos se aplican internamente. Los selectores normales del documento para encabezados y párrafos no alcanzan esos elementos internos. Esto sigue el patrón de estilos de Shadow DOM documentado por MDN.
El .panel interno aporta la segunda parte de la solución: una base explícita. Los límites de sombra separan la coincidencia de selectores, mientras que la herencia sigue funcionando a través del árbol de elementos renderizado. Restablecer el contenedor interno impide que la fuente serif y el espaciado entre letras del entorno se conviertan en su base de herencia habitual. La especificación actual CSS Shadow describe ese modelo de herencia; sigue siendo un borrador del editor. CSS Shadow Module Level 1
¿Qué sigue atravesando o afectando el límite?
El host sigue siendo un elemento del documento que lo rodea. Las reglas de la página pueden cambiar su margen, ancho o visualización, y un elemento antecesor sigue determinando cuánto espacio recibe el panel. Mantén la ubicación del host bajo el control de la hoja de estilos de la página y la apariencia interna del panel bajo el control de su hoja de estilos de sombra. Esta división sigue la distinción documentada entre un host de sombra y su árbol interno. Guía sobre el alcance de CSS
Las propiedades personalizadas también requieren un contrato deliberado. all no las elimina. Este ejemplo evita usar propiedades personalizadas heredadas, así que una variable externa no puede cambiar los colores elegidos mediante una referencia var(). Si más adelante introduces variables de tema, define qué nombres acepta el componente y proporciona valores predeterminados internos. Exclusiones de los restablecimientos según MDN
Mantén el contenido nuevo del panel dentro de la raíz de sombra si quieres conservar el mismo límite para los selectores. El contenido asignado a espacios tiene relaciones de estilo distintas porque se origina en el árbol ligero; añadir espacios cambia los supuestos de este ejemplo. Explicación de CSS Shadow sobre los espacios y las relaciones entre árboles
Shadow DOM tampoco es un comando para restablecer recursos. El ejemplo evita por completo las dependencias de recursos. Si el contrato necesario exige un documento HTML independiente con sus propias referencias a hojas de estilo, usa el enfoque con marcos que se muestra a continuación.
¿Cuándo deberías usar un iframe?
Un iframe incrusta otro documento. Esto lo hace apropiado para una vista previa con estilos independientes cuya configuración de documento deba estar separada de la página que la rodea. El estándar HTML define src para un recurso referenciado y srcdoc para un documento en línea. Estándar HTML: el elemento iframe
Para una estructura local de dos archivos, crea un segundo archivo HTML completo llamado panel.html que contenga el panel y su hoja de estilos. Sustituye el host y su script por un iframe que haga referencia a ese archivo. Lo siguiente es un fragmento de integración, no un documento independiente:
<iframe
title="Shape panel preview"
src="panel.html"
style="display:block;width:100%;height:280px;border:0">
</iframe>
Los nombres de archivo que aparecen aquí son ejemplos locales. Crea el segundo archivo correspondiente antes de usar el fragmento. El tamaño exterior del marco depende de la página contenedora; la página incrustada proporciona su presentación interna. Considera 280px una altura inicial ilustrativa y comprueba el contenido más largo en lugar de dar por sentado que cabrá.
Si eliges srcdoc, recuerda que las URL de recursos relativos se resuelven respecto a la URL de la página contenedora. Por tanto, el contenido de un documento en línea no obtiene automáticamente una base de recursos independiente. MDN también documenta que, si srcdoc no es compatible, se usa src como alternativa. Referencia de MDN a los atributos de iframe
Comprueba la compatibilidad y diagnostica estilos inesperados
MDN indica que tanto attachShadow() básico como la propiedad all están ampliamente disponibles en los navegadores desde enero de 2020. Esto no garantiza la compatibilidad con todas las opciones más recientes de esas funciones. Este ejemplo usa el modo básico open y conserva un mensaje alternativo visible cuando Shadow DOM no está disponible. MDN: attachShadow(), MDN: all
@scope es otra forma compatible de limitar dónde se aplica un conjunto de selectores, pero no detiene la herencia ni impide que reglas globales ajenas lleguen al subárbol. MDN indica que está disponible en los navegadores actuales desde marzo de 2026, con limitaciones en los navegadores más antiguos. Úsalo cuando la organización de los selectores satisfaga el requisito; conserva Shadow DOM o un marco cuando necesites sus respectivos límites. MDN: @scope
Sigue esta secuencia de diagnóstico después de editar el ejemplo:
- Si el archivo muestra el texto fuente, confirma que la extensión guardada sea
.htmly ábrelo en el navegador. - Si el mensaje alternativo sigue visible, confirma que JavaScript se ejecute y que el navegador sea compatible con
attachShadow(). - Si el panel se ve mal, confirma que su contenido se haya añadido a la raíz de sombra y luego inspecciona su base interna y su hoja de estilos.
- Si cambia la interfaz que lo rodea, inspecciona las modificaciones de la hoja de estilos del documento y las reglas del host.
- Si el contenido deja de caber, comprueba las dimensiones del host o del marco antes de cambiar la tipografía.
Elige el límite más pequeño que cumpla la tarea: CSS específico para una corrección controlada, Shadow DOM con una base definida para un panel aislado o un iframe para un documento independiente. Define claramente la ubicación, los estilos internos y las referencias a recursos para que la sección pueda cambiar sin tener que rediseñar lo que la rodea.
Fuentes
- Propiedad CSS all — MDN Web Docs
- Palabra clave CSS revert — MDN Web Docs
- CSS Cascading and Inheritance Level 5 — W3C
- Uso de Shadow DOM — MDN Web Docs
- CSS Shadow Module Level 1 — Grupo de trabajo CSS del W3C
- Ámbito de CSS — MDN Web Docs
- Elemento: método attachShadow() — MDN Web Docs
- Regla at CSS @scope — MDN Web Docs
- Elemento de marco en línea de HTML — MDN Web Docs
- Estándar HTML: el elemento iframe — WHATWG
- Trabajar con documentos HTML en TextEdit en Mac — Apple Support