раздел

я небольшой вопрос, так как я не слишком хорош в CSS, я хочу знать, есть ли способ, как я могу воссоздать такой хороший стиль элемента input [type = color]? Я имею в виду не все на скриншоте, а только тот симпатичный круг, который вводится [type = color].

Здесь у меня есть некоторый код, который был написан с ним, но он не стилизует ввод [type = color], как на скриншоте ... Также я видел, что автор использует Vue.js в своем проекте ... Большое спасибо за Помогите!

<input type="color" id="primary_color" class="field-radio" name="primary-color" v-model="scheme.primary" @change="changeColor()"> 
input[type="color"] {
    width: 3rem;
    height: 3rem;
    padding: .5rem;
    background-color: transparent;
    border: 0;
    border-radius: 100%;
}
input[type="color" i] {
    -webkit-appearance: square-button;
    width: 44px;
    height: 23px;
    background-color: buttonface;
    cursor: default;
    border-width: 1px;
    border-style: solid;
    border-color: rgb(169, 169, 169);
    border-image: initial;
    padding: 1px 2px;
}
input {
    -webkit-appearance: textfield;
    background-color: white;
    -webkit-rtl-ordering: logical;
    cursor: text;
    padding: 1px;
    border-width: 2px;
    border-style: inset;
    border-color: initial;
    border-image: initial;
}
input, textarea, select, button {
    text-rendering: auto;
    color: initial;
    letter-spacing: normal;
    word-spacing: normal;
    text-transform: none;
    text-indent: 0px;
    text-shadow: none;
    display: inline-block;
    text-align: start;
    margin: 0em;
    font: 400 13.3333px Arial;
}
input, textarea, select, button, meter, progress {
    -webkit-writing-mode: horizontal-tb;
}
 Andreas 25 дек. 2017 г., 20:32
 user869081825 дек. 2017 г., 20:34
@ Андреас, да, спасибо, я смотрел это раньше, но этот метод обеспечивает маленькую неловкую границу, которую нельзя удалить
 user869081825 дек. 2017 г., 20:10
@Highdef Добавил HTML, извините за это
 user720717025 дек. 2017 г., 20:05
Где HTML?

Ответы на вопрос(2)

Решение Вопроса

var colorButton = document.getElementById("primary_color");
    var colorDiv = document.getElementById("color_val");
    colorButton.onchange = function() {
        colorDiv.innerHTML = colorButton.value;
        colorDiv.style.color = colorButton.value;
    }
#primary_color{
    border-radius: 100%;
    height: 60px;
    width: 60px;
    border: none;
    outline: none;
    -webkit-appearance: none;
}

#primary_color::-webkit-color-swatch-wrapper {
    padding: 0;	
}
#primary_color::-webkit-color-swatch {
    border: none;
    border-radius: 100%;
}
<div class="container">
    <input type="color" id="primary_color" class="field-radio">
    <span class="container" id="color_val"></span>
</div>

Достаточно легко понять, удачи! :)

 user869081826 дек. 2017 г., 16:07
Это действительно здорово, большое спасибо :)
 SeReGa27 дек. 2017 г., 16:53
@YegorGunko Добро пожаловать :)

что это возможно только с помощью HTML и CSS, чтобы добиться этого. Но используя Javascript, вы можете приготовить что-то вроде следующего:

Обертывание входной цветовой метки в метку с радиусом границы 50%.Скрытие ввода и установка фона для метки.Использование JavaScript для изменения цвета надписи в зависимости от цвета, измененного в контейнере входного цвета.

Javascript:

var color_picker = document.getElementById("primary_color");
var color_picker_wrapper = document.getElementById("test_wrapper");
color_picker.onchange = function() {
  color_picker_wrapper.style.background = color_picker.value;
}
#primary_color {
  visibility: hidden;
}

#test_wrapper {
  background: linear-gradient(to bottom right, red, orange, yellow, green, blue, violet);
  height: 32px;
  width: 32px;
  position: fixed;
  border-radius: 50%;
  box-shadow: 1px 4px 10px black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label id="test_wrapper"><input type="color" id="primary_color" class="field-radio" name="primary-color" v-model="scheme.primary" @change="changeColor()"> </label>

Jquery:

$(document).on('change', '#primary_color', function() {
  $("#test_wrapper").css('background', "" + document.getElementById('primary_color').value);
});
#primary_color {
  visibility: hidden;
}

#test_wrapper {
  background: linear-gradient(to bottom right, red, orange, yellow, green, blue, violet);
  height: 32px;
  width: 32px;
  position: fixed;
  border-radius: 50%;
  box-shadow: 1px 4px 10px black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label id="test_wrapper"><input type="color" id="primary_color" class="field-radio" name="primary-color" v-model="scheme.primary" @change="changeColor()"> </label>

 user720717025 дек. 2017 г., 20:33
@YegorGunko Вы хотите реализовать это с помощью Jquery?
 user720717025 дек. 2017 г., 20:38
@YegorGunko Хорошо, мы используем обработчик события onchange, чтобы увидеть, изменился ли цвет поля ввода (с идентификатором #primary_color). Если оно изменилось, мы получаем это значение и применяем тот же цвет, что и фон, к обертке надписи. Но вам нужно изучить javascript или jquery, чтобы понять, что означает синтаксис.
 user720717025 дек. 2017 г., 20:35
@YegorGunko Обновленное решение для javascript и jquery.
 user869081825 дек. 2017 г., 20:33
Спасибо, это работает, но я не знаю, как это работает с JQuery. Точно так же, если я уберу цвет фона #test_wrapper, он не будет работать ...
 user869081825 дек. 2017 г., 20:36
как я даже не могу узнать, как это работает, но ваше решение очень хорошее, спасибо: 3

Ваш ответ на вопрос