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