简体   繁体   English

在 react html5 应用程序中,如何并排放置 3 个选择列表?

[英]In a react html5 app, how to a place 3 select lists side by side?

I'm building a react page using Gatsby, and a premade template.我正在使用 Gatsby 和预制模板构建反应页面。 I'm trying to build a form, and put 3 select lists side by side, since the contents are small.我正在尝试构建一个表单,并将 3 个选择列表并排放置,因为内容很小。 But it keeps stacking them vertically.但它一直在垂直堆叠它们。 I've tried to add additional css to overwrite what the template is doing, but it isn't working.我试图添加额外的 css 来覆盖模板正在做的事情,但它不起作用。

elements.js:元素.js:

    <div className="col-12">
        <div className="select-wrapper mb-5">
            <select name="demo-category1" id="demo-category1">
                <option defaultValue="">- Category -</option>
                <option value="1">Cat1</option>
                <option value="2">Cat2</option>
            </select>
        </div>
        <div className="select-wrapper mb-5">
            <select name="demo-category2" id="demo-category2">
                <option defaultValue="">- Category -</option>
                <option value="1">Cat1</option>
                <option value="2">Cat2</option>
            </select>
        </div>
        <div className="select-wrapper mb-5">
            <select name="demo-category3" id="demo-category3">
                <option defaultValue="">- Category -</option>
                <option value="1">Cat1</option>
                <option value="2">Cat2</option>
            </select>
        </div>
    </div>

In my _form.scss:在我的 _form.scss 中:

    .select-wrapper {
        @include icon;
        display: block;
        position: relative;

        &:before {
            color: _palette(border);
            content: '\f078';
            display: block;
            height: _size(element-height);
            line-height: _size(element-height);
            pointer-events: none;
            position: absolute;
            right: 0;
            text-align: center;
            top: 0;
            width: _size(element-height);
        }

        select::-ms-expand {
            display: none;
        }
    }

    .demo-category1, .demo-category2, .demo-category3{
        width: 33% !important;
        display: inline-block !important;
        margin-right: 50px !important;
    }

Just put display: flex on the container of select boxes to make them horizontal只需将display: flex放在选择框的容器上,使它们水平

(I changed the className="col-12" to class="col-12" to make the fiddle work) (我将 className="col-12" 更改为 class="col-12" 以使小提琴工作)

 .col-12 { display: flex; }
 <div class="col-12"> <div className="select-wrapper mb-5"> <select name="demo-category1" id="demo-category1"> <option defaultValue="">- Category -</option> <option value="1">Cat1</option> <option value="2">Cat2</option> </select> </div> <div className="select-wrapper mb-5"> <select name="demo-category2" id="demo-category2"> <option defaultValue="">- Category -</option> <option value="1">Cat1</option> <option value="2">Cat2</option> </select> </div> <div className="select-wrapper mb-5"> <select name="demo-category3" id="demo-category3"> <option defaultValue="">- Category -</option> <option value="1">Cat1</option> <option value="2">Cat2</option> </select> </div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM