Typescript и CSS: выровняйте метку с флажком

Я работаю над проектом, в котором есть флажок и метка, и их нужно выровнять по одной строке, а текст выровнять по вертикали по центру флажка. Но текст находится чуть ниже флажка.

import React from "react";

import './checkbox.less';

interface ICheckBoxProps {
  label: string;
}

const Checkbox:React.FC<ICheckBoxProps> = ({label}) => (
    <div className = "flex">
      <div>
        <input
          type = "checkbox"
          id = {label}
          className = "container"
        />     
        <label htmlFor = {label} className = "label">{label}</label> 
      </div>
    </div>
  )
export default Checkbox;

CSS-файл:

.App {
    font-family: sans-serif;
    text-align: center;
    position:relative;
    display: inline;
  }


.container {
    margin-bottom: 12px;
    cursor: pointer;
    font-size: 22px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    text-align: left;
    vertical-align:middle;
    display:inline-block;
    }

  
.flex{
display: flex;
align-items: center;
justify-content: flex-start;
vertical-align:middle;
display: inline-flex;
}

.label{
    display : inline;
}

Пожалуйста помоги

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
0
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это потому, что вы применяете margin-bottom: 12px; к своему элементу <input type = "checkbox"/> (через класс .container):

        <input
          type = "checkbox"
          id = {label}
          className = "container"
        />   
.container {
    margin-bottom: 12px;

Вы можете просто не применять это поле только к <input> (см. label1 на снимке экрана ниже) или применить его к содержащему div (который охватывает как <input>, так и <label>, см. label2 на снимке экрана ниже):

  <div className = "flex">
    <div class = "container2">
      <input type = "checkbox" id = "label2" class = "container1" />
      <label for = "label2" class = "label">{label2 margin-bottom on containing div (both input and label)}</label>
    </div>
  </div>
.container1 {
  /*margin-bottom: 12px;*/
}

.container2 {
  margin-bottom: 12px;
}

Демо: https://jsfiddle.net/sabr7xw0/2/

Другие вопросы по теме