MihirK98
MihirK98

Reputation: 185

Input checkboxes not clickable inside divs

I am a beginner and have a simple problem.

If I place an input checkbox inside #container div, it works but if place them inside #container div > #section div, then they don't work.

*,
html,
body {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
}

#content {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-content: center;
  flex-wrap: wrap;
}

@media only screen and (orientation: portrait) {
  #content {
    flex-direction: column;
  }
}

.section {
  width: 33%;
  height: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

#today-tasks,
#upcoming-tasks,
#recurring-tasks {
  width: 100%;
  height: auto;
}

.task {
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 8px;
}


/* Text */

.title {
  flex: 0;
  padding: 4px;
  font-size: 4vw;
}

.task-text {
  font-size: 6vw;
}

@media only screen and (orientation: landscape) {
  .title {
    font-size: 3vh;
  }
  .task-text {
    font-size: 6vh;
  }
}
<body>
  <div id="content">
    <div class="section" id="today">
      <div class="title">
        <h4>today</h4>
      </div>
      <ul id="today-tasks">
        <li class="task">
          <p class="task-text">task</p>
          <input type="checkbox" />
        </li>
      </ul>
    </div>
    <div class="section" id="upcoming">
      <div class="title">
        <h4>upcoming</h4>
      </div>
      <ul id="upcoming-tasks">
        <li class="task">
          <p class="task-text">task</p>
          <input type="checkbox" />
        </li>
      </ul>
    </div>
    <div class="section" id="recurring">
      <div class="title">
        <h4>recurring</h4>
      </div>
      <ul id="recurring-tasks">
        <li class="task">
          <p class="task-text">task</p>
          <!-- <label for="toggle"><input type="checkbox" id="toggle" /></label> -->
          <input type="checkbox" />
        </li>
      </ul>
    </div>
  </div>

Upvotes: 2

Views: 1036

Answers (1)

Ahmad
Ahmad

Reputation: 884

There were lots of useless height:100%; width:100%; that cause a little bit mess in your result, so I just made your code a little tidy.

*,
html,
body {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

#content {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-content: center;
  flex-wrap: wrap;
}

@media only screen and (orientation: portrait) {
  #content {
    flex-direction: column;
  }
}

.section {
  width: 33%;
  height: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

#today-tasks,
#upcoming-tasks,
#recurring-tasks {
  width: 100%;
  height: auto;
}

.task {
  display: flex;
  justify-content: center;
  flex-direction: row;
  align-items: center;
  padding: 8px;
}


/* Text */

.title {
  flex: 0;
  padding: 4px;
  font-size: 4vw;
}

.task-text {
  font-size: 6vw;
  padding-right:5px;
}

@media only screen and (orientation: landscape) {
  .title {
    font-size: 3vh;
  }
  .task-text {
    font-size: 6vh;
  }
}
<body>
  <div id="content">
    <div class="section" id="today">
      <div class="title">
        <h4>today</h4>
      </div>
      <ul id="today-tasks">
        <li class="task">
          <p class="task-text">task</p>
          <input type="checkbox" />
        </li>
      </ul>
    </div>
    <div class="section" id="upcoming">
      <div class="title">
        <h4>upcoming</h4>
      </div>
      <ul id="upcoming-tasks">
        <li class="task">
          <p class="task-text">task</p>
          <input type="checkbox" />
        </li>
      </ul>
    </div>
    <div class="section" id="recurring">
      <div class="title">
        <h4>recurring</h4>
      </div>
      <ul id="recurring-tasks">
        <li class="task">
          <p class="task-text">task</p>
          <!-- <label for="toggle"><input type="checkbox" id="toggle" /></label> -->
          <input type="checkbox" />
        </li>
      </ul>
    </div>
  </div>

Upvotes: 1

Related Questions