Para lograr crearlo es necesario tener un editor de código ya sea sublime text o atom
Normalmente lo primero que hacemos es crear un archivo nuevo dentro de una carpeta
Pasos para crear una carpeta
1: clic derecho ---> Nuevo ---> Carpeta ---> Nombre de carpeta
<pre>
<html lang="es">
<head>
<title>TU CLIMA | CACHORROSDELAWEB</title>
<link href="img/hackerrank.png" rel="icon" type="text/css"></link>
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Lato:300,400,700|Raleway:400,700" rel="stylesheet"></link>
<!-- CSS -->
<style type="text/css">
@import url(Edicion/css/normalize.css);
@import url(Edicion/css/styles.css);
</style>
</head>
<body>
<header class="header">
<h1 class="header__title">
Conoce tu clima</h1>
</header>
<form action="" class="search">
<input class="search__input" data-input="cityAdd" placeholder="Ciudad" required="" type="text" />
<input class="search__button" data-button="add" type="submit" value="Mostrar" />
</form>
<div class="loader-wrap" id="loader-wrap">
<div class="loader">
</div>
</div>
<template id="template--city">
<article class="city">
<header class="city__header">
<h2 class="city__zone" data-zone="">
</h2>
<span class="city__country" data-country=""></span>
</header>
<section class="city__temperature">
<div class="city__degreesList">
<strong class="city__degrees-current" data-temp="current"></strong>
<span class="city__degrees-min" data-temp="min"></span>
<span class="city__degrees-max" data-temp="max"></span>
</div>
<figure class="city__image">
<img alt="" class="city__img" data-image="" src="" />
<figcaption class="city__state">
<span class="city__text" data-state=""></span>
</figcaption>
</figure>
</section>
</article>
</template>
<section class="citiesList wrap-center"></section>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="Edicion/js/script.js"></script>
</body>
</html></pre>
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ /* Document ========================================================================== */ /** * 1. Correct the line height in all browsers. * 2. Prevent adjustments of font size after orientation changes in * IE on Windows Phone and in iOS. */ html { line-height: 1.15; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } /* Sections ========================================================================== */ /** * Remove the margin in all browsers (opinionated). */ body { margin: 0; } /** * Add the correct display in IE 9-. */ article, aside, footer, header, nav, section { display: block; } /** * Correct the font size and margin on `h1` elements within `section` and * `article` contexts in Chrome, Firefox, and Safari. */ h1 { font-size: 2em; margin: 0.67em 0; } /* Grouping content ========================================================================== */ /** * Add the correct display in IE 9-. * 1. Add the correct display in IE. */ figcaption, figure, main { /* 1 */ display: block; } /** * Add the correct margin in IE 8. */ figure { margin: 1em 40px; } /** * 1. Add the correct box sizing in Firefox. * 2. Show the overflow in Edge and IE. */ hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } /* Text-level semantics ========================================================================== */ /** * 1. Remove the gray background on active links in IE 10. * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. */ a { background-color: transparent; /* 1 */ -webkit-text-decoration-skip: objects; /* 2 */ } /** * 1. Remove the bottom border in Chrome 57- and Firefox 39-. * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } /** * Prevent the duplicate application of `bolder` by the next rule in Safari 6. */ b, strong { font-weight: inherit; } /** * Add the correct font weight in Chrome, Edge, and Safari. */ b, strong { font-weight: bolder; } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } /** * Add the correct font style in Android 4.3-. */ dfn { font-style: italic; } /** * Add the correct background and color in IE 9-. */ mark { background-color: #ff0; color: #000; } /** * Add the correct font size in all browsers. */ small { font-size: 80%; } /** * Prevent `sub` and `sup` elements from affecting the line height in * all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } /* Embedded content ========================================================================== */ /** * Add the correct display in IE 9-. */ audio, video { display: inline-block; } /** * Add the correct display in iOS 4-7. */ audio:not([controls]) { display: none; height: 0; } /** * Remove the border on images inside links in IE 10-. */ img { border-style: none; } /** * Hide the overflow in IE. */ svg:not(:root) { overflow: hidden; } /* Forms ========================================================================== */ /** * 1. Change the font styles in all browsers (opinionated). * 2. Remove the margin in Firefox and Safari. */ button, input, optgroup, select, textarea { font-family: sans-serif; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } /** * Show the overflow in IE. * 1. Show the overflow in Edge. */ button, input { /* 1 */ overflow: visible; } /** * Remove the inheritance of text transform in Edge, Firefox, and IE. * 1. Remove the inheritance of text transform in Firefox. */ button, select { /* 1 */ text-transform: none; } /** * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` * controls in Android 4. * 2. Correct the inability to style clickable types in iOS and Safari. */ button, html [type="button"], /* 1 */ [type="reset"], [type="submit"] { -webkit-appearance: button; /* 2 */ } /** * Remove the inner border and padding in Firefox. */ button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } /** * Restore the focus styles unset by the previous rule. */ button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } /** * Correct the padding in Firefox. */ fieldset { padding: 0.35em 0.75em 0.625em; } /** * 1. Correct the text wrapping in Edge and IE. * 2. Correct the color inheritance from `fieldset` elements in IE. * 3. Remove the padding so developers are not caught out when they zero out * `fieldset` elements in all browsers. */ legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } /** * 1. Add the correct display in IE 9-. * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. */ progress { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } /** * Remove the default vertical scrollbar in IE. */ textarea { overflow: auto; } /** * 1. Add the correct box sizing in IE 10-. * 2. Remove the padding in IE 10-. */ [type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /** * Correct the cursor style of increment and decrement buttons in Chrome. */ [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } /** * 1. Correct the odd appearance in Chrome and Safari. * 2. Correct the outline style in Safari. */ [type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } /** * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. */ [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /** * 1. Correct the inability to style clickable types in iOS and Safari. * 2. Change font properties to `inherit` in Safari. */ ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } /* Interactive ========================================================================== */ /* * Add the correct display in IE 9-. * 1. Add the correct display in Edge, IE, and Firefox. */ details, /* 1 */ menu { display: block; } /* * Add the correct display in all browsers. */ summary { display: list-item; } /* Scripting ========================================================================== */ /** * Add the correct display in IE 9-. */ canvas { display: inline-block; } /** * Add the correct display in IE. */ template { display: none; } /* Hidden ========================================================================== */ /** * Add the correct display in IE 10-. */ [hidden] { display: none; }-----------------------------------------------------------------------------:root { --color-blue: #299fd3; --color-dark-gray: #3F4142; --color-gray: #56585A; --color-light-gray: #EEEEEF; --font-titles: 'Raleway', sans-serif; --font-default: 'Lato', sans-serif; } body { font-family: var(--font-default); color: var(--color-dark-gray); } h1,h2,h3,h4,h5,h6 { font-family: var(--font-titles); } figure { margin: 0; } input { outline: 0; border: none; -webkit-appearance: none; -moz-appearance: none; border-radius: 0; } .wrap-center { margin: 0 auto; max-width: 1024px; } .header { background-color: var(--color-blue); padding: 1rem 0.5rem; text-align: center; box-sizing: border-box; } .header .header__title { color: white; letter-spacing: 1px; margin: 0; } .search { display:flex; } .search .search__input { width: 100%; padding: 0.5rem; border-bottom: 1px solid var(--color-gray); height: 40px; box-sizing: border-box; } .search .search__button { flex-basis: 150px; padding: 0.2rem; background-color: var(--color-gray); color: white; height: 40px; cursor: pointer; } @media all and (min-width: 1024px) { .search { margin: 0.5rem auto; max-width: 650px; } .search .search__input { border-left: 1px solid var(--color-gray); border-top: 1px solid var(--color-gray); } } .citiesList { box-sizing: border-box; display: flex; flex-wrap: wrap; } .citiesList .city { border-radius: 0 0 5px 5px; background-color: var(--color-light-gray); box-shadow: 1px 1px 5px rgba(0,0,0,0.3); box-sizing: border-box; margin: 1rem; width: 90%; } .citiesList .city:first-child { border-radius: 0; box-shadow: none; flex-basis: 100%; margin: 1rem 0; } .citiesList .city:first-child .city__header{ border-radius: 0; } @media all and (min-width: 768px){ .citiesList .city { width: 48%; margin: 1rem 1%; } .citiesList .city:first-child { flex-basis: 90%; margin: 1rem auto; box-shadow: 1px 1px 5px rgba(0,0,0,0.3); border-radius: 0 0 5px 5px; } .citiesList .city:first-child .city__header { border-radius: 5px 5px 0 0; } } @media all and (min-width: 1024px) { .citiesList .city { width: 31%; } } .city__header{ background-color: var(--color-blue); padding: 0.5rem; text-align: center; border-radius: 5px 5px 0 0; } .city__header .city__zone { margin: 0 0 0.5rem; } .city__header .city__zone, .city__header .city__country { color: white; } .city__temperature { text-align: center; padding: 0.5rem; } .city__degreesList .city__degrees-current { font-size: 4rem; display: block; margin-bottom: 0.8rem; } .city__degreesList .city__degrees-current:after { content: " °C"; } .city__degreesList .city__degrees-min, .city__degreesList .city__degrees-max { background-color: var(--color-gray); color: white; font-weight: 300; padding: 0.3rem 0.5rem; box-sizing: border-box; display: inline-block; margin: 0 0.3rem; border-radius: 3px; font-size: 0.9rem; } .city__degreesList .city__degrees-min:after { content: " °C MIN"; } .city__degreesList .city__degrees-max:after { content: " °C MAX"; } .city__image .city__img { width: 150px; } .city__image .city__state .city__text { font-size: 1.5rem; font-weight: 700; } .loader-wrap { width: 100vw; height: 100vh; background-color: rgba(0,0,0,0.2); position: absolute; top: 0; left: 0; display: flex; justify-content: center; align-items: center; } .loader { display: inline-block; width: 80px; height: 80px; pointer-events: none; position: relative; } .loader:before, .loader:after { content: " "; display: block; position: absolute; border-radius: 50%; border: 5px solid transparent; top: 0; left: 0; animation: 1s turn linear infinite; } .loader:before { width: 80px; height: 80px; border-bottom-color: var(--color-blue); } .loader:after { width: 80px; height: 80px; animation-direction: reverse; border-bottom-color: var(--color-dark-gray); } @keyframes turn { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }-------------------------------------------------------------------------------------------<pre>(function(){ var WEATHER_KEY = "39a60f72855a3efdcc6c2d2cdea5210b"; var WEATHER_URL = "http://api.openweathermap.org/data/2.5/weather?APPID=" + WEATHER_KEY + "&"; var IMG_WEATHER = "http://openweathermap.org/img/w/"; //City var cityWeather = {}; cityWeather.country; cityWeather.zone; cityWeather.temp; cityWeather.temp_max; cityWeather.temp_min; cityWeather.image; cityWeather.state; cityWeather.main; var $body = $(".citiesList"); var $loader = $('#loader-wrap'); var show_form = $(".icon-edit"); var nameNewCity = $('[data-input="cityAdd"]'); var buttonAdd = $('[data-button="add"]'); $( buttonAdd ).on("click", addNewCity); show_form.click(function() { $(".search-city").slideToggle(); }); if(navigator.geolocation){ navigator.geolocation.getCurrentPosition(getCoords, errorFound); } else{ alert("Por favor actualiza tu navegador"); }; function errorFound(error) { alert("Un error ocurrio: " + error.code + " " + error); //0: Error desconocido //1: Permiso denegado //2: Posición no está disponible //3: Timeout }; function getCoords(position) { var lat = position.coords.latitude; var lon = position.coords.longitude; $.getJSON(WEATHER_URL + 'lat=' + lat + "&lon=" + lon, getCurrentWeather); }; function getCurrentWeather(data) { cityWeather.country = data.sys.country; cityWeather.zone = data.name; cityWeather.temp = data.main.temp - 273.15; cityWeather.temp_max = data.main.temp_max - 273.15; cityWeather.temp_min = data.main.temp_min - 273.15; cityWeather.image = 'svg/' + data.weather[0].icon + '.svg'; cityWeather.state = data.weather[0].description; cityWeather.main = data.weather[0].main; renderTemplate(); }; function activateTemplate(id) { var t = document.querySelector(id); return document.importNode(t.content, true); }; function renderTemplate() { var clone = activateTemplate('#template--city'); clone.querySelector('[data-country]').innerHTML = cityWeather.country; clone.querySelector('[data-zone]').innerHTML = cityWeather.zone; clone.querySelector('[data-temp="current"]').innerHTML = cityWeather.temp.toFixed(1); clone.querySelector('[data-temp="max"]').innerHTML = cityWeather.temp_max.toFixed(1); clone.querySelector('[data-temp="min"]').innerHTML = cityWeather.temp_min.toFixed(1); clone.querySelector('[data-image]').src = cityWeather.image; clone.querySelector('[data-state]').innerHTML = cityWeather.state; $( $loader ).hide(); $( $body ).append(clone); }; function addNewCity(event) { event.preventDefault(); $.getJSON(WEATHER_URL + "q=" + nameNewCity.val(), getWeatherNewCity); } function getWeatherNewCity(data){ cityWeather.country = data.sys.country; cityWeather.zone = data.name; cityWeather.temp = data.main.temp - 273.15; cityWeather.temp_max = data.main.temp_max - 273.15; cityWeather.temp_min = data.main.temp_min - 273.15; cityWeather.image = 'svg/' + data.weather[0].icon + '.svg'; cityWeather.state = data.weather[0].description; cityWeather.main = data.weather[0].main; renderTemplate(); } function reloadWeather() { renderTemplate(); } })();</pre>
No hay comentarios.:
Publicar un comentario