100JSProjects
LearnProjectsExplore all projects
100JS_WORKSPACE/Build · Learn · Repeat
100JSProjects

Practical HTML, CSS, and JavaScript projects designed to help you turn concepts into real skills—one build at a time.

01Explore

./All projects./Learning guides./About./Contact./Privacy

02Resources

./GitHub repository./Support the project

© 2026 100 JS Projects. Built for developers.

TermsCookiesContact
JS//Projects/Q&A Section

Q&A Section

Build a q&a section with HTML, CSS, and JavaScript while practicing click events and DOM selection.

Beginner20–30 minutesHTML5CSS3JavaScript
You’ll practice
Click EventsDOM SelectionCSS Class Toggling
View Source CodeLive Demo
demo.100jsprojects.com/q-and-a-section
Final resultQ&A Section project previewTry Live Demo
01 — What you’ll build

Q&A Section

This project shows you how HTML, CSS, and JavaScript work together in a q&a section. You’ll connect user interactions to visible changes on the page, then practice click events, DOM selection, and CSS class toggling as you build the complete project from scratch.

02 — Included
  • ✓Click-based interactions
  • ✓Q&A Section interface
  • ✓Responsive HTML and CSS layout
  • ✓Complete source code and live demo
03 — You’ll practice
  • >Handle user clicks
  • >Select HTML elements from the DOM
  • >Change styles by updating CSS classes
  • >Process data with array methods
  • >Perform calculations with JavaScript

Recommended knowledge: Basic HTML and CSS, JavaScript arrays and array methods, JavaScript variables and number operations, DOM selection and click events.

Complete project files

Build It from the Source Code

This project runs directly in the browser with HTML, CSS, and JavaScript.

  1. 1Create 3 files
  2. →
  3. 2Copy the code
  4. →
  5. 3Run index.html
Before you run it
  • Keep an internet connection available for external assets.
Project structure
q-and-a-section/
├──
├──
└──
Need help setting up the project?

Create project files, install Live Server, and run your first project.

Open beginner guide
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Q & A</title>
    <!-- font-awesome -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" />

    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
      <section class="questions">
        <!-- questions -->
        <div class="section-center">
          <!-- single question -->
          <article class="question">
            <!-- question title -->
            <div class="question-title">
              <p>do you accept all major credit cards?</p>
              <button type="button" class="question-btn">
                <span class="plus-icon">
                  <i class="far fa-plus-square"></i>
                </span>
                <span class="minus-icon">
                  <i class="far fa-minus-square"></i>
                </span>
              </button>
            </div>
            <!-- question text -->
            <div class="question-text">
              <p>
                Lorem ipsum dolor sit amet, consectetur adipisicing elit. Est
                dolore illo dolores quia nemo doloribus quaerat, magni numquam
                repellat reprehenderit.
              </p>
            </div>
          </article>
          <!-- end of single question -->
          <!-- single question -->
          <article class="question">
            <!-- question title -->
            <div class="question-title">
              <p>do you suppport local farmers?</p>
              <button type="button" class="question-btn">
                <span class="plus-icon">
                  <i class="far fa-plus-square"></i>
                </span>
                <span class="minus-icon">
                  <i class="far fa-minus-square"></i>
                </span>
              </button>
            </div>
            <!-- question text -->
            <div class="question-text">
              <p>
                Lorem ipsum dolor sit amet, consectetur adipisicing elit. Est
                dolore illo dolores quia nemo doloribus quaerat, magni numquam
                repellat reprehenderit.
              </p>
            </div>
          </article>
          <!-- end of single question -->
          <!-- single question -->
          <article class="question">
            <!-- question title -->
            <div class="question-title">
              <p>do you use organic ingredients?</p>
              <!-- button -->
              <button type="button" class="question-btn">
                <span class="plus-icon">
                  <i class="far fa-plus-square"></i>
                </span>
                <span class="minus-icon">
                  <i class="far fa-minus-square"></i>
                </span>
              </button>
            </div>
            <!-- question text -->
            <div class="question-text">
              <p>
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe, obcaecati. Esse maxime doloremque, libero, repellat quae debitis quis illo ab odio vero iste molestias accusantium expedita dolorum ipsam officia nesciunt?.
              </p>
            </div>
          </article>
          <!-- end of single question -->
      </section>
    </main>
    <!-- javascript -->
    <script src="app.js"></script>
  </body>
</html>

JS// Related Projects

Practice with Related Projects

Practice array methods, javaScript calculations, and click events with these related projects.

Emoji Rating project preview★Best match
Related: array methodsBeginner

Emoji Rating

Transform collections of data into dynamic page content.

Build an emoji rating →
Social Media Selector Menu project preview
Related: JavaScript calculations

Social Media Selector Menu

Turn JavaScript calculations into clear visual results.

Build the selector menu →
Tabs Section project preview
Related: click eventsBeginner

Tabs Section

Connect user clicks to visible interface changes.

Build a tabs section →
Emoji Rating project preview
Related: array methods★Best match

Emoji Rating

Transform collections of data into dynamic page content.

Build an emoji rating
Social Media Selector Menu project preview
Related: JavaScript calculations

Social Media Selector Menu

Turn JavaScript calculations into clear visual results.

Build the selector menu
Tabs Section project preview
Related: click events

Tabs Section

Connect user clicks to visible interface changes.

Build a tabs section
JS{ }Explore All JavaScript ProjectsBrowse by difficulty or concept.Explore All Projects