如何在我的复选框内联和复选框旁边获取文本?

绿色炸弹

我正在一个网页上,我需要与每个文本关联的文本都在复选框旁边。当前,它是这样的:

复选框下方的文字

我不希望任何与它们相关联的复选框或标签居中。我希望它们向左对齐。这是我的JavaScript和全局样式代码:

JS:

import React from 'react'

import { Link } from 'react-router-dom';
import { Form } from '../../global styles/index';
import { useForm } from 'react-hook-form';

function ArtistForm(){

    const { register, handleSubmit, errors } = useForm();
    const onSubmit = data => console.log(data);
    console.log(errors);
    
    return(
        <div>
            <Form onSubmit={handleSubmit(onSubmit)}>
                <div className="form-container">
                    <div className="row">
                        <div className="column">
                            <label>First Name:</label> 
                            <input type="text" placeholder="First Name" name="FirstName" ref={register({required: true, max: 30, min: 2})} />
                        </div>
                        <div className="column">
                            <label>Last Name:</label>
                            <input type="text" placeholder="Last Name" name="LastName" ref={register({max: 30, min: 2})} />
                        </div>
                    </div>
            
                    <div>
                        <label>Medium:</label>
                        <input type="checkbox" id= "designillustration" name="medium" /><span>Design & Illustration</span>
                        <input type="checkbox" id="digitalart" name="medium" /><span>Digital Art</span>
                        <input type="checkbox" id="drawing" name="medium" /><span>Drawing</span>
                        <input type="checkbox" id="paintingmixedmedia" name="medium" /><span>Painting & Mixed Media</span>
                        <input type="checkbox" id="photography" name="medium" /><span>Photography</span>
                    </div>


                    <div>
                        <label>Artist Bio:  </label>
                        <textarea placeholder="Bio" name="Bio" ref={register({required: true, maxLength: 500})} />
                    </div>
            </Form>
        </div>
    )
}

export default ArtistForm

表单组件的全局样式:

// form styling
export const Form = styled.form`
    max-width: 1000px;
    margin: 0 auto;

    label {
        float: left;
        text-align: left;
        display: inline-block;
        padding-left: 15px;
        text-indent: -15px;
    }

    input {
        box-sizing: border-box;
        width: 100%;
        border-radius: 4px;
        padding: 10px 15px;
        margin-bottom: 10px;
        font-size: 14px;
        margin-top: 10px; 
        display: block;
    }

    textarea {
        box-sizing: border-box;
        width: 100%;
        border-radius: 4px;
        padding: 10px 15px;
        margin-bottom: 10px;
        font-size: 14px;
    }

    .form-container {
        display: flex;
        flex-direction: column;
        width: 90%;
        padding: 20px;
        
        @media(max-width: 500px){
            padding: 20px 50px 50px;
        }
    }

    div {
        display: inline-block, flex;
        flex-direction: row;
        justify-content: flex-start;
        padding: .2rem;
    }

    p {
        margin: 0;
    }

    .instructions{
        text-align: center;
        margin-bottom: 40px;
    }

    .column {
        float: left;
        width: 50%;
        padding: 10px;
    }


    .row:after {
        content: "";
        display: table;
        clear: both;
    }
`

输入标签是否有某些东西会干扰复选框显示标签的方式?我已经反复尝试使用,display: inline-block但是由于某种原因,我无法使文本与复选框内联。我也尝试将标签的文本向左对齐,但是没有运气。

阿里埃拉

根据您的代码,该解决方案可以通过3个步骤完成:

  1. input选择器中删除以下样式

     width: 100%;
     display: block;
    

    这两种样式都为输入元素提供了宽度:100%,将下面的文本压入。

  2. 然后从那里开始,我要做的是将每个inputspan成对包装在div中。这会将两个内联元素分割成自己的容器,同时为元素分配完整宽度,例如

    <div>
       <input type="checkbox" id= "designillustration" name="medium" />
       <span>Design & Illustration</span>
    </div>
    
  3. 添加以下CSS以恢复宽度:在文本输入上为100%

    input[type="text"] {
         width: 100%;
    }
    

以下是一个代码笔,它在第一个复选框输入行上演示了解决方案:https ://codepen.io/ariellav/pen/poyvPKR

其他说明:

更换

label {
    float: left;
    text-align: left;
    display: inline-block;
    padding-left: 15px;
    text-indent: -15px;
}

label {
    display: block;
}

应该获得相同的结果

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何对齐文本旁边的复选框

来自分类Dev

如何在复选框旁边引用文本?

来自分类Dev

标签和复选框内联高度修复

来自分类Dev

文本框内的复选框

来自分类Dev

如何获取复选框的文本?

来自分类Dev

如何使用jQuery显示复选框旁边的复选框文本

来自分类Dev

复选框旁边的文本对齐

来自分类Dev

对齐复选框及其旁边的文本

来自分类Dev

文本旁边的对齐复选框

来自分类Dev

文本旁边的对齐复选框

来自分类Dev

复选框内的图像

来自分类Dev

如何使复选框旁边的文本垂直居中对齐?

来自分类Dev

如何在文本旁边放置自定义图像而不是复选框?

来自分类Dev

jQuery,如何获取复选框未选中事件和复选框值?

来自分类Dev

根据文本获取复选框的状态

来自分类Dev

如何更改实际复选框内 J 复选框的背景颜色

来自分类Dev

我想获取复选框值

来自分类Dev

如何使用Javascript从复选框获取跨度文本?

来自分类Dev

如何获取每个复选框的文本字段值

来自分类Dev

弹出框内的复选框功能

来自分类Dev

下拉复选框内的引导程序

来自分类Dev

值复选框内部模态

来自分类Dev

在新行中的复选框旁边显示文本

来自分类Dev

如何从FormCollection获取复选框值?

来自分类Dev

如何设置/获取复选框的值

来自分类Dev

如何获取垫复选框值

来自分类Dev

如何获取未选中的复选框

来自分类Dev

如何获取复选框索引/行号?

来自分类Dev

如何从复选框中获取价值?