WEBLEB
Inicio
Editora de código
Iniciar sesión
Pro
Español
English
Français
Español
Português
Deutsch
Italiano
हिंदी
Ben Lucas Alves
1844
Metehan
Abrir en el editor
Publica tu código
Recomendado
26 July 2025
Editor HTML en línea | CodeCanvas: herramienta gratuita para desarrollo web
13 November 2024
Efecto de marco para imágenes usando CSS puro
24 July 2025
Transformación de datos
HTML
Copy
Live Demo
CSS
Copy
/*-------------------------------------------------------------- /** 1. Normalize --------------------------------------------------------------*/ html, body { position: relative; width: 100%; height: 100%; font-family: Source Sans Pro, Roboto, sans-serif; } html { font-size: 100%; font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; } body { margin: 0; font-style: normal; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; text-rendering: optimizeLegibility; } article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary { display: block; } audio, canvas, progress, video { display: inline-block; vertical-align: baseline; } audio:not([controls]) { display: none; height: 0; } [hidden], template { display: none; } a { background-color: transparent; outline: 0; text-decoration: none; cursor: pointer; -webkit-text-decoration-skip: objects; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; } abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; } b, strong, .strong { font-weight: bolder; } dfn { font-style: italic; } mark { background-color: #ff0; color: #111; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } h1 { font-size: 2em; margin: 0.67em 0; } h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dd, small { padding: 0; } img { border: 0; } svg:not(:root) { overflow: hidden; display: block; } figure { margin: 1em 40px; } hr { height: 0; overflow: visible; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; } pre { overflow: auto; } code, kbd, pre, samp { font-family: Courier, monospace; font-size: 1em; } blockquote::before, blockquote::after, q::before, q::after { content: ''; } blockquote, q { quotes: "" ""; } button, input, optgroup, select, textarea { color: inherit; font: inherit; margin: 0; } button, input { overflow: visible; } button, select { text-transform: none; } select { text-indent: 45px; } button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; } button[disabled], html input[disabled] { cursor: default; } button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } input { line-height: normal; } input[type="checkbox"], input[type="radio"] { padding: 0; outline: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } input[type="search"] { -webkit-appearance: textfield; outline-offset: -2px; } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } ::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; } fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } legend { border: 0; padding: 0; } textarea { overflow: auto; } optgroup { font-weight: bold; } table { border-collapse: collapse; border-spacing: 0; width: 100%; } td, th { padding: 0; } /*-------------------------------------------------------------- /** 2. Base Styles --------------------------------------------------------------*/ *, *::before, *::after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } html { box-sizing: border-box; } body { font-family: Source Sans Pro; font-style: normal; font-weight: normal; font-size: 19px; line-height: 180%; color: #777777; } body.no-scroll { overflow: hidden; } a { color: #111; } a:hover { color: #111; text-decoration: none; } .light a { color: #fff; } .light a:hover, .light a:active, .light a:focus { color: #fff; } .light b, .light strong { color: #fff; } ul, ol { margin-top: 0; margin-bottom: 10px; margin-left: 0; padding: 0; padding-left: 30px; } ul ul, ol ul, ul ol, ol ol { margin-top: 5px; margin-bottom: 0; } ul li, ol li { margin-bottom: 5px; outline: 0; } ul li.active a{ color: #111; } ul li:last-child, ol li:last-child { margin-bottom: 0; } .list-unstyled { padding-left: 0; list-style: none; } .list-inline { padding-left: 0; list-style: none; margin-left: -0.5rem; } .list-inline > li { display: inline-block; padding-left: 1rem; padding-right: 1rem; } dl { margin-top: 0; margin-bottom: 2rem; } dt, dd { line-height: 1.42857143; } dt { font-weight: bold; } dd { margin-left: 0; } button, input, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; outline: 0; } figure { margin: 0; } img { display: inline-block; border: 0; max-width: 100%; height: auto; vertical-align: middle; } ::selection { background: rgba(0,0,0,0.8); color: #fff; text-shadow: none; } ::-moz-selection { background: rgba(0,0,0,0.8); color: #fff; text-shadow: none; } ::-webkit-input-placeholder { color: #939393; /* WebKit browsers */ -webkit-transition: color .2s; transition: color .2s; } ::-moz-placeholder { color: #939393; /* Mozilla Firefox 19+ */ -webkit-transition: color .2s; transition: color .2s; } :-ms-input-placeholder { color: #939393;/* Internet Explorer 10+ */ -webkit-transition: color .2s; transition: color .2s; } ::placeholder { color: #939393; -webkit-transition: color .2s; transition: color .2s; } /* Navigation styles removed */ .btn { display: block; padding: 0px 10px; font-size: 14px; font-weight: 700; text-transform: uppercase; border-radius: 8px; background: #0070e4; color: #fff; box-shadow: rgba(0,0,0,0.1) 0px 0px 20px; transition: background 0.3s ease-out; } .btn:hover { background: #2c8bed; } .devices { display: flex; } .devices a { padding: 2px; } #template-selector { background: #111; } #iframe-view { margin: auto; background: #fff; height: 100vh; } body { overflow: hidden; text-align: center; background: #111111; } /* Button settings styles removed */ @media only screen and (max-width: 991px) { a.device { display: none; } }
JS
Copy
/** * Template Demo Viewer * Responsive demo viewer with device options * * @author YourName * @version 1.1 */ (function($) { "use strict"; // Device screen size presets const deviceSizes = { desktop: { width: "100%", height: "100%" }, tablet: { width: "768px", height: "1024px" }, mobile: { width: "375px", height: "812px" } }; // Initialize when document is ready $(document).ready(function() { // Navigation toggle $('#toggle-nav').on('click', function() { $('#demo-page-nav').toggleClass('hidden'); }); // Device selector functionality $('.device-btn').on('click', function(e) { e.preventDefault(); // Remove active class from all device buttons $('.device-btn').removeClass('active'); // Add active class to clicked button $(this).addClass('active'); const screenSize = $(this).attr('href').substring(1); // Remove # from href let dimensions; // Set iframe dimensions based on selected device switch(screenSize) { case 'desktop': dimensions = deviceSizes.desktop; break; case 'tablet': dimensions = deviceSizes.tablet; break; case 'mobile': dimensions = deviceSizes.mobile; break; default: dimensions = deviceSizes.desktop; } // Apply dimensions with smooth transition $('#iframe-view').css({ width: dimensions.width, height: dimensions.height }); // Center iframe if smaller than viewport centerIframe(); }); // Template selector functionality (if needed) $('#template-selector').on('change', function() { const demoUrl = this.value; const productUrl = $(this).find(':selected').data('product'); // Update iframe source $("#iframe-view").attr("src", demoUrl); // Update product link URL if available if (productUrl && $("#product-link").length) { $("#product-link").attr("href", productUrl); } }); // Center iframe in viewport when dimensions change function centerIframe() { const iframe = $('#iframe-view'); const container = $('.iframe-container'); // Only center if iframe width is less than 100% if (iframe.width() < container.width()) { iframe.css({ 'position': 'absolute', 'top': '50%', 'left': '50%', 'transform': 'translate(-50%, -50%)' }); } else { iframe.css({ 'position': '', 'top': '', 'left': '', 'transform': '' }); } } // Handle window resize $(window).on('resize', function() { centerIframe(); }); // Set desktop view as default $('.device-btn[href="#desktop"]').trigger('click'); }); })(jQuery);