html - CSS:与字段集在同一行的图例

标签 html css

我有一个星级评分系统,我想在上面加上一些图例(所以它不仅仅是星星图标)。

当我使用 Bootstrap4 时,我正在考虑使用一行和 2 列来水平对齐它们,但是,我的图例总是在我的星星上方出现一些像素。

我也试过在图例上使用 margin-top: 10px,但没有得到想要的结果。

@import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css);

        fieldset, label {
            margin: 0;
            padding: 0;
        }

        body {
            margin: 20px;
        }

        h1 {
            font-size: 1.5em;
            margin: 10px;
        }

        /****** Style Star Rating Widget *****/

        .rating {
            border: none;
            float: left;
        }

        .rating > input {
            display: none;
        }

        .rating > label:before {
            margin: 5px;
            font-size: 1.25em;
            font-family: FontAwesome;
            display: inline-block;
            content: "\f005";
        }

        .rating > .half:before {
            content: "\f089";
            position: absolute;
        }

        .rating > label {
            color: #ddd;
            float: right;
        }

        /***** CSS Magic to Highlight Stars on Hover *****/

        .rating > input:checked ~ label, /* show gold star when clicked */
        .rating:not(:checked) > label:hover, /* hover current star */
        .rating:not(:checked) > label:hover ~ label {
            color: #FFD700;
        }

        /* hover previous stars in list */

        .rating > input:checked + label:hover, /* hover current star when changing rating */
        .rating > input:checked ~ label:hover,
        .rating > label:hover ~ input:checked ~ label, /* lighten current selection */
        .rating > input:checked ~ label:hover ~ label {
            color: #FFED85;
        }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">

                            <div class="col-md-12 col-lg-12">
                                <fieldset class="rating hidden text-center">
                                    <legend>Califícanos: </legend>
                                    <input type="radio" id="star5" name="rating" value="5"/><label class="full"
                                                                                                   for="star5"
                                                                                                   title="Awesome - 5 stars"></label>
                                    <input type="radio" id="star4half" name="rating" value="4.5"/><label class="half"
                                                                                                         for="star4half"
                                                                                                         title="Pretty good - 4.5 stars"></label>
                                    <input type="radio" id="star4" name="rating" value="4"/><label class="full"
                                                                                                   for="star4"
                                                                                                   title="Pretty good - 4 stars"></label>
                                    <input type="radio" id="star3half" name="rating" value="3.5"/><label class="half"
                                                                                                         for="star3half"
                                                                                                         title="Meh - 3.5 stars"></label>
                                    <input type="radio" id="star3" name="rating" value="3"/><label class="full"
                                                                                                   for="star3"
                                                                                                   title="Meh - 3 stars"></label>
                                    <input type="radio" id="star2half" name="rating" value="2.5"/><label class="half"
                                                                                                         for="star2half"
                                                                                                         title="Kinda bad - 2.5 stars"></label>
                                    <input type="radio" id="star2" name="rating" value="2"/><label class="full"
                                                                                                   for="star2"
                                                                                                   title="Kinda bad - 2 stars"></label>
                                    <input type="radio" id="star1half" name="rating" value="1.5"/><label class="half"
                                                                                                         for="star1half"
                                                                                                         title="Meh - 1.5 stars"></label>
                                    <input type="radio" id="star1" name="rating" value="1"/><label class="full"
                                                                                                   for="star1"
                                                                                                   title="Sucks big time - 1 star"></label>
                                    <input type="radio" id="starhalf" name="rating" value="0.5"/><label class="half"
                                                                                                        for="starhalf"
                                                                                                        title="Sucks big time - 0.5 stars"></label>
                                </fieldset>
                            </div>
                        </div>

https://codepen.io/anon/pen/GevVYZ

enter image description here

我也试过使用 span 标签:

@import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css);

        fieldset, label {
            margin: 0;
            padding: 0;
        }

        body {
            margin: 20px;
        }

        h1 {
            font-size: 1.5em;
            margin: 10px;
        }

        /****** Style Star Rating Widget *****/

        .rating {
            border: none;
            float: left;
        }

        .rating > input {
            display: none;
        }

        .rating > label:before {
            margin: 5px;
            font-size: 1.25em;
            font-family: FontAwesome;
            display: inline-block;
            content: "\f005";
        }

        .rating > .half:before {
            content: "\f089";
            position: absolute;
        }

        .rating > label {
            color: #ddd;
            float: right;
        }

        /***** CSS Magic to Highlight Stars on Hover *****/

        .rating > input:checked ~ label, /* show gold star when clicked */
        .rating:not(:checked) > label:hover, /* hover current star */
        .rating:not(:checked) > label:hover ~ label {
            color: #FFD700;
        }

        /* hover previous stars in list */

        .rating > input:checked + label:hover, /* hover current star when changing rating */
        .rating > input:checked ~ label:hover,
        .rating > label:hover ~ input:checked ~ label, /* lighten current selection */
        .rating > input:checked ~ label:hover ~ label {
            color: #FFED85;
        }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
                            <div class="col-md-6 col-lg-6">
                                <span class="calificanos-text hidden">Califícanos: </span>
                            </div>
                            <div class="col-md-6 col-lg-6">
                                <fieldset class="rating hidden text-center">

                                    <input type="radio" id="star5" name="rating" value="5"/><label class="full"
                                                                                                   for="star5"
                                                                                                   title="Awesome - 5 stars"></label>
                                    <input type="radio" id="star4half" name="rating" value="4.5"/><label class="half"
                                                                                                         for="star4half"
                                                                                                         title="Pretty good - 4.5 stars"></label>
                                    <input type="radio" id="star4" name="rating" value="4"/><label class="full"
                                                                                                   for="star4"
                                                                                                   title="Pretty good - 4 stars"></label>
                                    <input type="radio" id="star3half" name="rating" value="3.5"/><label class="half"
                                                                                                         for="star3half"
                                                                                                         title="Meh - 3.5 stars"></label>
                                    <input type="radio" id="star3" name="rating" value="3"/><label class="full"
                                                                                                   for="star3"
                                                                                                   title="Meh - 3 stars"></label>
                                    <input type="radio" id="star2half" name="rating" value="2.5"/><label class="half"
                                                                                                         for="star2half"
                                                                                                         title="Kinda bad - 2.5 stars"></label>
                                    <input type="radio" id="star2" name="rating" value="2"/><label class="full"
                                                                                                   for="star2"
                                                                                                   title="Kinda bad - 2 stars"></label>
                                    <input type="radio" id="star1half" name="rating" value="1.5"/><label class="half"
                                                                                                         for="star1half"
                                                                                                         title="Meh - 1.5 stars"></label>
                                    <input type="radio" id="star1" name="rating" value="1"/><label class="full"
                                                                                                   for="star1"
                                                                                                   title="Sucks big time - 1 star"></label>
                                    <input type="radio" id="starhalf" name="rating" value="0.5"/><label class="half"
                                                                                                        for="starhalf"
                                                                                                        title="Sucks big time - 0.5 stars"></label>
                                </fieldset>
                            </div>
                        </div>

https://codepen.io/anon/pen/rRGBvB

这是我在我的 html(本地主机)中看到的:

我在本地看到的:

enter image description here

最佳答案

我将它们全部包裹在 div col6 中并将它们设置为显示 flex 然后我删除了 .rating > label:before 中的边距 5px

        @import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css);
/* NEW */
.col-md-6.col-lg-6 {
    display: flex;
}
 .rating > label:before {
            
            font-size: 1.25em;
            font-family: FontAwesome;
            display: inline-block;
            content: "\f005";
        }
/* END */
        fieldset, label {
            margin: 0;
            padding: 0;
        }

        body {
            margin: 20px;
        }

        h1 {
            font-size: 1.5em;
            margin: 10px;
        }

        /****** Style Star Rating Widget *****/

        .rating {
            border: none;
            float: left;
        }

        .rating > input {
            display: none;
        }

       

        .rating > .half:before {
            content: "\f089";
            position: absolute;
        }

        .rating > label {
            color: #ddd;
            float: right;
        }

        /***** CSS Magic to Highlight Stars on Hover *****/

        .rating > input:checked ~ label, /* show gold star when clicked */
        .rating:not(:checked) > label:hover, /* hover current star */
        .rating:not(:checked) > label:hover ~ label {
            color: #FFD700;
        }

        /* hover previous stars in list */

        .rating > input:checked + label:hover, /* hover current star when changing rating */
        .rating > input:checked ~ label:hover,
        .rating > label:hover ~ input:checked ~ label, /* lighten current selection */
        .rating > input:checked ~ label:hover ~ label {
            color: #FFED85;
        }
 <div class="row">
                            <div class="col-md-6 col-lg-6">
                                <span class="calificanos-text hidden">Califícanos: </span>
                           
                                <fieldset class="rating hidden text-center">

                                    <input type="radio" id="star5" name="rating" value="5"/><label class="full"
                                                                                                   for="star5"
                                                                                                   title="Awesome - 5 stars"></label>
                                    <input type="radio" id="star4half" name="rating" value="4.5"/><label class="half"
                                                                                                         for="star4half"
                                                                                                         title="Pretty good - 4.5 stars"></label>
                                    <input type="radio" id="star4" name="rating" value="4"/><label class="full"
                                                                                                   for="star4"
                                                                                                   title="Pretty good - 4 stars"></label>
                                    <input type="radio" id="star3half" name="rating" value="3.5"/><label class="half"
                                                                                                         for="star3half"
                                                                                                         title="Meh - 3.5 stars"></label>
                                    <input type="radio" id="star3" name="rating" value="3"/><label class="full"
                                                                                                   for="star3"
                                                                                                   title="Meh - 3 stars"></label>
                                    <input type="radio" id="star2half" name="rating" value="2.5"/><label class="half"
                                                                                                         for="star2half"
                                                                                                         title="Kinda bad - 2.5 stars"></label>
                                    <input type="radio" id="star2" name="rating" value="2"/><label class="full"
                                                                                                   for="star2"
                                                                                                   title="Kinda bad - 2 stars"></label>
                                    <input type="radio" id="star1half" name="rating" value="1.5"/><label class="half"
                                                                                                         for="star1half"
                                                                                                         title="Meh - 1.5 stars"></label>
                                    <input type="radio" id="star1" name="rating" value="1"/><label class="full"
                                                                                                   for="star1"
                                                                                                   title="Sucks big time - 1 star"></label>
                                    <input type="radio" id="starhalf" name="rating" value="0.5"/><label class="half"
                                                                                                        for="starhalf"
                                                                                                        title="Sucks big time - 0.5 stars"></label>
                                </fieldset>
                            </div>
                        </div>

关于html - CSS:与字段集在同一行的图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55106254/

相关文章:

html - position:relative,溢出:隐藏父级和绝对子级

javascript - 从地址栏获取页面文件名

html - 在 html/css 中对齐按钮

html - firefox 内容高度不同于 safari/chrome

javascript - 模态 - 内容在较小的显示器上脱离模态?

python - 如何通过添加<span>来修改Django的某部分内容,同时保持段落文本的原始格式?

html - 获取父 div 的背景图像以显示

html - raphael 将对象从一个容器拖放到另一个容器

金钱/货币的html5输入

html - 如何以 Angular 过滤垫卡