1603256040
Optional Chaining is one of the newest features in JavaScript. This feature may seem insignificant. However, it can save you a lot of time, code and also a lot of headaches. In this tutorial, you will learn what this feature is about, how it works and how to use it to write better JavaScript code.
Have you ever worked with objects? Then, you know how easy it is to run into following problem. Let’s say you have an object. This object has some properties and maybe also some methods. Next, let’s say that you want to work with some of these properties or methods.
Getting this done is very simple. You can access any property using either dot or square bracket notation. The same applies to methods. What happens is if you try to access some property, or method, that doesn’t exist in that object? When you try to access property that doesn’t exist you will get undefined
.
// Create an object
let myObj = {
name: 'Joe Saladino',
email: 'joe@saladino.io'
}
// Try to access non-existing property "location"
console.log(myObj.location)
// Output:
// undefined
What if you try to access some property that is nested deeper? Imagine you have some object. This object contains some properties. The value of one of these properties is supposed to be also an object. This object should contain some additional properties. What if this nested object doesn’t exist?
What happens if you try to access some property in that non-existing nested object? You will not get undefined
. What will you get instead is a TypeError
. JavaScript will complain that it can’t read property of an object that is not defined.
// Create an object
let myObj = {
name: 'Joe Saladino',
email: 'joe@saladino.io'
}
// Try to access non-existing property "location"
console.log(myObj.location)
// Output:
// undefined
// Try to access non-existing property "city"
// in non-existing object "location"
console.log(myObj.location.city)
// Output:
// TypeError: Cannot read property 'city' of undefined
#javascript #optional chaining
1655715965
En esta guía, aprenderá cómo crear impresionantes botones de radio personalizados usando solo HTML y CSS. Para crear impresionantes botones de radio personalizados usando solo HTML y CSS. Primero, debe crear dos archivos, un archivo HTML y otro es un archivo CSS.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Custom Radio Buttons | Codequs</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrapper">
<div class="title">Select your option</div>
<div class="box">
<input type="radio" name="select" id="option-1">
<input type="radio" name="select" id="option-2">
<input type="radio" name="select" id="option-3">
<input type="radio" name="select" id="option-4">
<label for="option-1" class="option-1">
<div class="dot"></div>
<div class="text">Gamer</div>
</label>
<label for="option-2" class="option-2">
<div class="dot"></div>
<div class="text">YouTuber</div>
</label>
<label for="option-3" class="option-3">
<div class="dot"></div>
<div class="text">Student</div>
</label>
<label for="option-4" class="option-4">
<div class="dot"></div>
<div class="text">Developer</div>
</label>
</div>
</div>
</body>
</html>
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
html,body{
display: grid;
height: 100%;
place-items: center;
}
.wrapper{
width: 350px;
background: #fff;
border-radius: 10px;
box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
}
.wrapper .title{
color: #fff;
line-height: 65px;
text-align: center;
background: #333;
font-size: 25px;
font-weight: 500;
border-radius: 10px 10px 0 0;
}
.wrapper .box{
padding: 20px 30px;
background: #fff;
border-radius: 10px;
}
.wrapper .box label{
display: flex;
height: 53px;
width: 100%;
align-items: center;
border: 1px solid lightgrey;
border-radius: 50px;
margin: 10px 0;
padding-left: 20px;
cursor: default;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
background: #333;
border-color: #333;
}
.wrapper .box label .dot{
height: 20px;
width: 20px;
background: #d9d9d9;
border-radius: 50%;
position: relative;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
background: #fff;
}
.box label .dot::before{
position: absolute;
content: "";
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(2);
width: 9px;
height: 9px;
border-radius: 50%;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
background: #333;
transform: translate(-50%, -50%) scale(1);
}
.wrapper .box label .text{
color: #333;
font-size: 18px;
font-weight: 400;
padding-left: 10px;
transition: color 0.3s ease;
}
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
color: #fff;
}
.wrapper .box input[type="radio"]{
display: none;
}
Ahora ha creado con éxito impresionantes botones de radio personalizados usando solo HTML y CSS.
1655730729
Neste guia, você aprenderá como criar botões de rádio personalizados incríveis usando apenas HTML e CSS. Para criar botões de rádio personalizados incríveis usando apenas HTML e CSS. Primeiro, você precisa criar dois arquivos, um arquivo HTML e outro arquivo CSS.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Custom Radio Buttons | Codequs</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrapper">
<div class="title">Select your option</div>
<div class="box">
<input type="radio" name="select" id="option-1">
<input type="radio" name="select" id="option-2">
<input type="radio" name="select" id="option-3">
<input type="radio" name="select" id="option-4">
<label for="option-1" class="option-1">
<div class="dot"></div>
<div class="text">Gamer</div>
</label>
<label for="option-2" class="option-2">
<div class="dot"></div>
<div class="text">YouTuber</div>
</label>
<label for="option-3" class="option-3">
<div class="dot"></div>
<div class="text">Student</div>
</label>
<label for="option-4" class="option-4">
<div class="dot"></div>
<div class="text">Developer</div>
</label>
</div>
</div>
</body>
</html>
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
html,body{
display: grid;
height: 100%;
place-items: center;
}
.wrapper{
width: 350px;
background: #fff;
border-radius: 10px;
box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
}
.wrapper .title{
color: #fff;
line-height: 65px;
text-align: center;
background: #333;
font-size: 25px;
font-weight: 500;
border-radius: 10px 10px 0 0;
}
.wrapper .box{
padding: 20px 30px;
background: #fff;
border-radius: 10px;
}
.wrapper .box label{
display: flex;
height: 53px;
width: 100%;
align-items: center;
border: 1px solid lightgrey;
border-radius: 50px;
margin: 10px 0;
padding-left: 20px;
cursor: default;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
background: #333;
border-color: #333;
}
.wrapper .box label .dot{
height: 20px;
width: 20px;
background: #d9d9d9;
border-radius: 50%;
position: relative;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
background: #fff;
}
.box label .dot::before{
position: absolute;
content: "";
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(2);
width: 9px;
height: 9px;
border-radius: 50%;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
background: #333;
transform: translate(-50%, -50%) scale(1);
}
.wrapper .box label .text{
color: #333;
font-size: 18px;
font-weight: 400;
padding-left: 10px;
transition: color 0.3s ease;
}
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
color: #fff;
}
.wrapper .box input[type="radio"]{
display: none;
}
Agora você criou com sucesso botões de rádio personalizados incríveis usando apenas HTML e CSS.
1655723340
このガイドでは、HTMLとCSSのみを使用して素晴らしいカスタムラジオボタンを作成する方法を学習します。HTMLとCSSのみを使用して素晴らしいカスタムラジオボタンを作成します。まず、2つのファイルを作成する必要があります。1つはHTMLファイルで、もう1つはCSSファイルです。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Custom Radio Buttons | Codequs</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrapper">
<div class="title">Select your option</div>
<div class="box">
<input type="radio" name="select" id="option-1">
<input type="radio" name="select" id="option-2">
<input type="radio" name="select" id="option-3">
<input type="radio" name="select" id="option-4">
<label for="option-1" class="option-1">
<div class="dot"></div>
<div class="text">Gamer</div>
</label>
<label for="option-2" class="option-2">
<div class="dot"></div>
<div class="text">YouTuber</div>
</label>
<label for="option-3" class="option-3">
<div class="dot"></div>
<div class="text">Student</div>
</label>
<label for="option-4" class="option-4">
<div class="dot"></div>
<div class="text">Developer</div>
</label>
</div>
</div>
</body>
</html>
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
html,body{
display: grid;
height: 100%;
place-items: center;
}
.wrapper{
width: 350px;
background: #fff;
border-radius: 10px;
box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
}
.wrapper .title{
color: #fff;
line-height: 65px;
text-align: center;
background: #333;
font-size: 25px;
font-weight: 500;
border-radius: 10px 10px 0 0;
}
.wrapper .box{
padding: 20px 30px;
background: #fff;
border-radius: 10px;
}
.wrapper .box label{
display: flex;
height: 53px;
width: 100%;
align-items: center;
border: 1px solid lightgrey;
border-radius: 50px;
margin: 10px 0;
padding-left: 20px;
cursor: default;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
background: #333;
border-color: #333;
}
.wrapper .box label .dot{
height: 20px;
width: 20px;
background: #d9d9d9;
border-radius: 50%;
position: relative;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
background: #fff;
}
.box label .dot::before{
position: absolute;
content: "";
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(2);
width: 9px;
height: 9px;
border-radius: 50%;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
background: #333;
transform: translate(-50%, -50%) scale(1);
}
.wrapper .box label .text{
color: #333;
font-size: 18px;
font-weight: 400;
padding-left: 10px;
transition: color 0.3s ease;
}
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
color: #fff;
}
.wrapper .box input[type="radio"]{
display: none;
}
これで、HTMLとCSSのみを使用して素晴らしいカスタムラジオボタンを正常に作成できました。
1655727060
In diesem Leitfaden erfahren Sie, wie Sie fantastische benutzerdefinierte Optionsfelder nur mit HTML und CSS erstellen. Um fantastische benutzerdefinierte Optionsfelder nur mit HTML und CSS zu erstellen. Zuerst müssen Sie zwei Dateien erstellen, eine HTML-Datei und eine CSS-Datei.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Custom Radio Buttons | Codequs</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrapper">
<div class="title">Select your option</div>
<div class="box">
<input type="radio" name="select" id="option-1">
<input type="radio" name="select" id="option-2">
<input type="radio" name="select" id="option-3">
<input type="radio" name="select" id="option-4">
<label for="option-1" class="option-1">
<div class="dot"></div>
<div class="text">Gamer</div>
</label>
<label for="option-2" class="option-2">
<div class="dot"></div>
<div class="text">YouTuber</div>
</label>
<label for="option-3" class="option-3">
<div class="dot"></div>
<div class="text">Student</div>
</label>
<label for="option-4" class="option-4">
<div class="dot"></div>
<div class="text">Developer</div>
</label>
</div>
</div>
</body>
</html>
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
html,body{
display: grid;
height: 100%;
place-items: center;
}
.wrapper{
width: 350px;
background: #fff;
border-radius: 10px;
box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
}
.wrapper .title{
color: #fff;
line-height: 65px;
text-align: center;
background: #333;
font-size: 25px;
font-weight: 500;
border-radius: 10px 10px 0 0;
}
.wrapper .box{
padding: 20px 30px;
background: #fff;
border-radius: 10px;
}
.wrapper .box label{
display: flex;
height: 53px;
width: 100%;
align-items: center;
border: 1px solid lightgrey;
border-radius: 50px;
margin: 10px 0;
padding-left: 20px;
cursor: default;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
background: #333;
border-color: #333;
}
.wrapper .box label .dot{
height: 20px;
width: 20px;
background: #d9d9d9;
border-radius: 50%;
position: relative;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
background: #fff;
}
.box label .dot::before{
position: absolute;
content: "";
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(2);
width: 9px;
height: 9px;
border-radius: 50%;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
background: #333;
transform: translate(-50%, -50%) scale(1);
}
.wrapper .box label .text{
color: #333;
font-size: 18px;
font-weight: 400;
padding-left: 10px;
transition: color 0.3s ease;
}
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
color: #fff;
}
.wrapper .box input[type="radio"]{
display: none;
}
Jetzt haben Sie erfolgreich fantastische benutzerdefinierte Optionsfelder nur mit HTML und CSS erstellt.
1655719680
Dans ce guide, vous apprendrez à créer des boutons radio personnalisés impressionnants en utilisant uniquement HTML et CSS. Pour créer des boutons radio personnalisés impressionnants en utilisant uniquement HTML et CSS. Tout d'abord, vous devez créer deux fichiers, un fichier HTML et un autre fichier CSS.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Custom Radio Buttons | Codequs</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrapper">
<div class="title">Select your option</div>
<div class="box">
<input type="radio" name="select" id="option-1">
<input type="radio" name="select" id="option-2">
<input type="radio" name="select" id="option-3">
<input type="radio" name="select" id="option-4">
<label for="option-1" class="option-1">
<div class="dot"></div>
<div class="text">Gamer</div>
</label>
<label for="option-2" class="option-2">
<div class="dot"></div>
<div class="text">YouTuber</div>
</label>
<label for="option-3" class="option-3">
<div class="dot"></div>
<div class="text">Student</div>
</label>
<label for="option-4" class="option-4">
<div class="dot"></div>
<div class="text">Developer</div>
</label>
</div>
</div>
</body>
</html>
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
html,body{
display: grid;
height: 100%;
place-items: center;
}
.wrapper{
width: 350px;
background: #fff;
border-radius: 10px;
box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
}
.wrapper .title{
color: #fff;
line-height: 65px;
text-align: center;
background: #333;
font-size: 25px;
font-weight: 500;
border-radius: 10px 10px 0 0;
}
.wrapper .box{
padding: 20px 30px;
background: #fff;
border-radius: 10px;
}
.wrapper .box label{
display: flex;
height: 53px;
width: 100%;
align-items: center;
border: 1px solid lightgrey;
border-radius: 50px;
margin: 10px 0;
padding-left: 20px;
cursor: default;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
background: #333;
border-color: #333;
}
.wrapper .box label .dot{
height: 20px;
width: 20px;
background: #d9d9d9;
border-radius: 50%;
position: relative;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
background: #fff;
}
.box label .dot::before{
position: absolute;
content: "";
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(2);
width: 9px;
height: 9px;
border-radius: 50%;
transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
background: #333;
transform: translate(-50%, -50%) scale(1);
}
.wrapper .box label .text{
color: #333;
font-size: 18px;
font-weight: 400;
padding-left: 10px;
transition: color 0.3s ease;
}
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
color: #fff;
}
.wrapper .box input[type="radio"]{
display: none;
}
Vous avez maintenant créé avec succès des boutons radio personnalisés impressionnants en utilisant uniquement HTML et CSS.