#html #css
#HTML #css
Вопрос:
Я создал панель громкости HTML:
.volume_bar {
background: #A5D5FF;
border-radius: 20px;
height: 12px;
}
<div class="volume_bar"></div>
Я пытаюсь отформатировать эту панель громкости таким образом, чтобы при наличии дохода от объема отображать объем на панели другим цветом. Итак, это выглядит так:
Я правильно определил входные коды объема чтения. Я просто пытаюсь разобраться в интерфейсе. Один из способов, которым я думал добиться этого, — отформатировать только часть div. Таким образом, чтобы 20% ширины было желтым, а остальное — синим. Возможно ли отформатировать только часть ширины div с помощью CSS?
Ответ №1:
Просто измените свойство width класса .volume с помощью javascript, чтобы заставить его работать.
document.querySelector(".volume").style.width="50%";
.volume_bar {
background: #A5D5FF;
border-radius: 20px;
height: 12px;
}
.volume {
background: #ffd105;
width: 25%;
height: 100%;
border-radius: 20px;
font-size:10px;
text-align:center;
}
<div class="volume_bar">
<div class="volume"></div>
</div>
Ответ №2:
const volume_bar = document.querySelector('.volume_bar');
const volume_control = document.querySelector('.volume_control');
const rect = volume_bar.getBoundingClientRect();
volume_bar.addEventListener('mousemove', e=>{
let per = (e.clientX - rect.x) / (rect.width) * 100;
volume_control.style.width = per '%';
});
.volume_bar,
.volume_control {
border-radius: 20px;
height: 12px;
}
.volume_bar{
background: #A5D5FF;
}
.volume_control{
background: red;
width: 0;
}
<div class="volume_bar"><div class="volume_control"></div></div>
Ответ №3:
Чтобы ответить на ваш вопрос, да, вы можете оформить div так, чтобы слева был один цвет, справа другой. Liner-gradient может создать этот эффект. Ваша проблема — закругленный край левой стороны — для этого, я думаю, вам нужен второй элемент или псевдоселектор.
Использование linear-gradient() для упрощения эффекта, но без закругления края
.volume {
width: 80%;
height: 50px;
border-radius: 25px;
background: linear-gradient(90deg, blue 30%, yellow 30%);
}
<div class="volume"></div>
Использование псевдоселектора:
.volume {
width: 80%;
height: 50px;
border-radius: 25px;
background: rgb(253 216 53);
}
.volume::after {
height: 100%;
width: 30%;
border-radius: 25px;
background: rgb(3 169 244);
content: "";
display: block;
}
<div class="volume"></div>