A mirror of my website's source code.

By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.

Dismiss

 creatingaswitch.html

View raw Download
text/html • 5.05 kiB
HTML document, ASCII text, with very long lines (2828)
        
            
1
<!DOCTYPE html>
2
<html lang="en">
3
4
<head>
5
6
7
<meta charset="UTF-8" />
8
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
<title>Creating a Switch in HTML and CSS - S0G</title>
10
<link rel="stylesheet" href="/src/global.css" />
11
12
<link rel="stylesheet" href="/src/pygments-friendly.css" />
13
<link rel="stylesheet" href="/src/blog.css" />
14
15
</head>
16
17
<body>
18
<header>
19
<h2><a href="/">Steve0Greatness</a></h2>
20
<nav>
21
<a href="/blog">Blog</a>
22
<a href="/link-tree.html">Link Tree</a>
23
</nav>
24
</header>
25
26
<ol role="navigation" class="breadcrumbs" aria-roledescription="Site breadcrumb">
27
<li>
28
<a href="/">Index</a>
29
</li>
30
31
<li >
32
<a href="/blog">
33
Blog Index
34
</a>
35
</li>
36
37
<li aria-current="location">
38
39
Creating a Switch in HTML and CSS
40
41
</li>
42
43
</ol>
44
<main>
45
<article>
46
<header>
47
<h2 id="blog-post-titled">Creating a Switch in HTML and CSS</h2>
48
<div role="toolbar" class="toolbar">
49
<a href="https://toot.kytta.dev/?text=Take a look at this article by @S0G@mastodon.social: https://steve0greatness.github.io/blog/creatingaswitch.html" title="Share to Mastodon">
50
<img src="/toot-kytta-dev-icon.svg" width="16" height="16" aria-hidden="true" title="Share to Mastodon" />
51
</a>
52
<a href="/blog/creatingaswitch.html" title="Direct link">
53
<span aria-hidden="true">
54
&#128279;
55
</span>
56
</a>
57
<a href="/blog/creatingaswitch.txt" title="Markdown source">
58
<img src="/md-src.svg" width="16" height="16" />
59
</a>
60
</div>
61
<time>2022 Feb 11</time>
62
</header>
63
<p><p>A switch is something that is basically just a nicer checkbox. Here, I'll be showing you how to make one.</p>The first step is to create checkbox with any classname; I'll be using <span class="code">switch</span>.<div class="code">&lt;style&gt;<div style="margin-left:1em;">input[type=checkbox].switch {}</div>&lt;/style&gt;<br>&lt;input type="checkbox" class="switch"&gt;</div><p>Next step is to add an appearance of none to the CSS--make sure to add <span class="code">-moz-</span> and <span class="code">-webkit-</span>. After that, you're going to want to set it so that the checkbox a rectangle--make sure it's in <span class="code">px</span>. We also want to set the position to relative</p><div class="code">&lt;style&gt;<div style="margin-left:1em;">input[type=checkbox].switch {<div style="margin-left:1em;">-webkit-appearance: none;<br>-moz-appearance: none;<br>appearance: none;<br>position: relative;<br>width: 30px;<br>height: 16px;</div>}</div>&lt;/style&gt;<br>&lt;input type="checkbox" class="switch"&gt;</div><p>Next we want to create a <span class="code">::before</span> pseudo. In there we want to make it have a position of relative, a width and height that are abit less than the height of the main switch, a display of inline-block, a top and left of 0, a content of anything, color of transparent, and a background color that's different from the one in the main switch.</p><div class="code">&lt;style&gt;<div style="margin-left:1em;">input[type=checkbox].switch {<div style="margin-left:1em;">-webkit-appearance: none;<br>-moz-appearance: none;<br>appearance: none;<br>position: relative;<br>width: 30px;<br>height: 16px;</div>}<br>input[type=checkbox].switch::before {<div style="margin-left:1em;">top: 0;<br>left: 0;<br>position: relative;<br>background: red;<br>content: ".";<br>color: transparent;<br>width: 14px;<br>height: 14px;</div>}</div>&lt;/style&gt;<br>&lt;input type="checkbox" class="switch"&gt;</div><p>Finally add a pseudo called <span class="code">:checked</span> which checks if a checkbox, or a radio, was checked; you'll want to change the before pseudo if the the checkbox is checked. You need to set the left to a bit less than the width of the checkbox; you can adjust it until it looks right to you.</p>Now, let's look at what it looks like<br><iframe style="background:#fff;border:none" srcdoc='<style>input[type=checkbox].switch {-webkit-appearance: none;-moz-appearance: none;appearance: none;background: #efefef;position: relative;border: 1px black solid;width: 30px;height: 16px;border-radius: 0;}input[type=checkbox].switch::before {top: 0;left: 0.24px;position: relative;background: red;content: ".";color: transparent;width: 20px;height: 14px;}input[type=checkbox].switch:checked::before {left: 25px;}</style><input type="checkbox" class="switch">'></iframe></p>
64
65
</article>
66
</main>
67
<footer role="group">
68
<div class="footer-link-list-holder">
69
<span aria-hidden="true" id="footer-label-social-accounts" class="footer-link-list-label">Social Accounts</span>
70
<ol class="footer-link-list" aria-labelledby="footer-label-social-accounts">
71
<li><a href="https://mastodon.social/@S0G" rel="me">Mastodon</a></li>
72
<li><a href="https://youtube.com/@s0g">YouTube</a></li>
73
</ol>
74
</div>
75
</footer>
76
</body>
77
78
</html>