我有一个星级评分系统,我想在上面加上一些图例(所以它不仅仅是星星图标)。
当我使用 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
我也试过使用 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(本地主机)中看到的:
我在本地看到的:
最佳答案
我将它们全部包裹在 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/