<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/tags/html/best-of/2023/12" -->

---
title: Best HTML posts — December 2023 | daily.dev
description: The most upvoted HTML posts from December 2023, curated by the daily.dev community.
canonical: https://daily.dev/tags/html/best-of/2023/12
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/tags/html/best-of/2023/12
og:type: website
og:site_name: daily.dev
og:title: Best HTML posts — December 2023 | daily.dev
og:description: The most upvoted HTML posts from December 2023, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of HTML — December 2023

1. 1  
[](https://daily.dev/posts/html-can-do-this-part-1-bboctxbfd "HTML can do this? Part 1")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV·3y  
HTML can do this? Part 1  
Discover some cool things that HTML can do, including creating open/close widgets, linking to email addresses and telephone numbers, using autocomplete in a list, and modifying text directly.  
451  
14
2. 2  
[](https://daily.dev/posts/create-a-virtual-world-with-javascript-5gtzoschy "Create a Virtual World with JavaScript")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp·3y  
Create a Virtual World with JavaScript  
Learn how to create a virtual world using JavaScript, HTML, and CSS. The course covers building a spatial graph, user-friendly interfaces, generating road borders and buildings, loading real-world data, and more.  
291  
8
3. 3  
[](https://daily.dev/posts/you-don-t-need-javascript-for-that-ghdrvlg6e "You don't need JavaScript for that")  
Article  
![Avatar of hn](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn)Hacker News·3y  
You don't need JavaScript for that  
The article discusses the rule of least power in web development, which advocates for choosing the least powerful language suitable for a given purpose. It highlights examples of using native HTML and CSS instead of JavaScript, such as creating custom switches, using the datalist element for autosuggest, utilizing the native color picker, implementing accordions, and using dialog modals. The article also mentions future features that will further reduce the need for JavaScript.  
285  
14
4. 4  
[](https://daily.dev/posts/10-css-techniques-for-hiding-elements-oxeavbiar "10 CSS Techniques for Hiding Elements")  
Article  
![Avatar of asayer](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/be8d9d38650943c8a1718ba79f23e9ac)asayer·3y  
10 CSS Techniques for Hiding Elements  
This article explores ten different methods for hiding content using CSS, including using the display property, visibility property, and opacity property. The techniques discussed can improve the user experience and create more dynamic and interactive web pages.  
95  
4
5. 5  
[](https://daily.dev/posts/how-to-manipulate-the-dom-in-javascript-most-commonly-used-techniques-khoupvsxs "How to Manipulate the DOM in JavaScript – Most Commonly Used Techniques")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp·3y  
How to Manipulate the DOM in JavaScript – Most Commonly Used Techniques  
Learn about common techniques for manipulating the DOM in JavaScript, such as changing the content of an element, manipulating the class attribute, and setting CSS styles.  
91  
1
6. 6  
[](https://daily.dev/posts/innerhtml-vs-innertext-vs-textcontent-what-s-the-difference--flpvdl0e2 "innerHTML vs innerText vs textContent – What's the Difference?")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp·3y  
innerHTML vs innerText vs textContent – What's the Difference?  
Learn about the differences between innerHTML, innerText, and textContent properties in HTML and how they handle HTML markup and content. Be cautious when using innerHTML due to security risks. innerText focuses on rendered text content, while textContent ignores HTML tags and includes hidden content. Update content using all three properties.  
77
7. 7  
[](https://daily.dev/posts/toqxxkqag "🐍 🕹️ 💻")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp·3y  
🐍 🕹️ 💻  
Learn JavaScript skills by building a snake game inspired by the iconic Nokia Snake game. Improve your web development capabilities with a step-by-step course. Enhance the snake's size, control its movement, and track the score. Try the game before watching the course and find it on the freeCodeCamp.org YouTube channel.  
75
8. 8  
[](https://daily.dev/posts/you-don-t-need-html--06hwerhtl "YOU DON'T NEED HTML!")  
Article  
![Avatar of hn](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn)Hacker News·3y  
YOU DON'T NEED HTML!  
The article discusses a website called NO-HT.ML that proves HTML is not necessary to create a beautiful and useful website. It explores the elements used in the website's source code and compares the concept to playing a game with arbitrary restrictions.  
58  
1
9. 9  
[](https://daily.dev/posts/building-a-collaborative-whiteboard-app-using-reactjs-socket-io-and-nodejs-t0scm2cur "Building a collaborative whiteboard app using ReactJS, Socket.io and NodeJS")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV·3y  
Building a collaborative whiteboard app using ReactJS, Socket.io and NodeJS  
Learn how to build a collaborative whiteboard using ReactJS, Socket.io, and NodeJS. The project uses HTML canvas to create the whiteboard and implements real-time communication with Socket.io. Multiple users can use the whiteboard simultaneously.  
54
10. 10  
[](https://daily.dev/posts/using-event-listeners-in-javascript-gnctgn8ug "Using Event Listeners in JavaScript")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks·3y  
Using Event Listeners in JavaScript  
Learn how to use the addEventListener() method in JavaScript to add event handlers to HTML elements. Discover its advantages and various use cases for web development.  
54
11. 11  
[](https://daily.dev/posts/mastering-the-flip-a-step-by-step-guide-to-crafting-an-eye-catching-html-css-flipping-card-ui-desig-xxxsuuh6b "Mastering the Flip: A Step-by-Step Guide to Crafting an Eye-Catching HTML CSS Flipping Card UI Design")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev·3y  
Mastering the Flip: A Step-by-Step Guide to Crafting an Eye-Catching HTML CSS Flipping Card UI Design  
Learn how to create a mesmerizing flipping card UI design using HTML and CSS. This step-by-step guide provides all the necessary steps to craft an eye-catching card with a flip effect. Enhance your web development skills and implement this creative technique in your projects to create stunning user interfaces.  
38  
2
12. 12  
[](https://daily.dev/posts/the-untold-history-of-web-development-t5k3lsbp1 "the untold history of web development")  
Video  
![Avatar of fireship](https://media.daily.dev/image/upload/s--75ndqrkr--/f_auto,t_logo/v1702882094/logos/fireship.jpg)Fireship·3y  
the untold history of web development  
A brief overview of the history and evolution of web development, including key inventions and technologies.  
36  
2

[See all HTML archives](/tags/html/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/tags/html/best-of/2023/12#page","url":"https://daily.dev/tags/html/best-of/2023/12","name":"Best HTML Posts — December 2023","description":"The most upvoted HTML posts from December 2023, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/tags/html/best-of/2023/12#items","numberOfItems":12,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/html-can-do-this-part-1-bboctxbfd","name":"HTML can do this? Part 1"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/create-a-virtual-world-with-javascript-5gtzoschy","name":"Create a Virtual World with JavaScript"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/you-don-t-need-javascript-for-that-ghdrvlg6e","name":"You don't need JavaScript for that"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/10-css-techniques-for-hiding-elements-oxeavbiar","name":"10 CSS Techniques for Hiding Elements"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/how-to-manipulate-the-dom-in-javascript-most-commonly-used-techniques-khoupvsxs","name":"How to Manipulate the DOM in JavaScript – Most Commonly Used Techniques"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/innerhtml-vs-innertext-vs-textcontent-what-s-the-difference--flpvdl0e2","name":"innerHTML vs innerText vs textContent – What's the Difference?"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/toqxxkqag","name":"🐍 🕹️ 💻"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/you-don-t-need-html--06hwerhtl","name":"YOU DON'T NEED HTML!"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/building-a-collaborative-whiteboard-app-using-reactjs-socket-io-and-nodejs-t0scm2cur","name":"Building a collaborative whiteboard app using ReactJS, Socket.io and NodeJS"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/using-event-listeners-in-javascript-gnctgn8ug","name":"Using Event Listeners in JavaScript"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/mastering-the-flip-a-step-by-step-guide-to-crafting-an-eye-catching-html-css-flipping-card-ui-desig-xxxsuuh6b","name":"Mastering the Flip: A Step-by-Step Guide to Crafting an Eye-Catching HTML CSS Flipping Card UI Design"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/the-untold-history-of-web-development-t5k3lsbp1","name":"the untold history of web development"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tags","item":"https://daily.dev/tags"},{"@type":"ListItem","position":3,"name":"HTML","item":"https://daily.dev/tags/html"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/tags/html/best-of"},{"@type":"ListItem","position":5,"name":"December 2023"}]}]}
```

