Я пытаюсь стилизовать флажки Контактной формы 7, используя css -только стиль, который я нашел здесь: https://codepen.io/andreasstorm/pen/deRvMy
Стиль включает ряд дополнительных элементов которые не созданы как часть шорткода контактной формы 7.
Насколько мне известно, вывод шорткода контактной формы 7 не легко редактируется, поэтому я пошел по пути использования javascript для добавить и добавить в нужные элементы и классы.
Мне удалось собрать воедино что-то, что работает, но не работает. Я имею в виду, что когда я использую инструменты Chrome Dev для просмотра отредактированной формы, все нужные элементы и классы появляются там. Однако ничто не выглядит иначе. Вероятно, также связано то, что элемент: before из css не отражен в выходном коде html.
Живая версия, которую я использовал для проверки Chrome Dev Tools, находится здесь: https://craftycanineclub.com/book-now/ (сейчас только первый из 5 флажков должен отражать добавленные элементы ... это второстепенная и гораздо более легкая вещь для меня, чтобы понять).
Код, который я здесь предоставил, отражает точный html, который выводится с помощью шорткода контактной формы 7, и js и css, которые я добавил при попытке изменить флажки.
Я надеюсь, что мне просто не хватает понимания того, как javascript работает в этой ситуации. Заранее благодарю за помощь!
jQuery(function ($) {
$('.wpcf7-list-item input').attr("class", "cbx");
var newlabel = document.createElement('label');
newlabel.setAttribute("for",'cbx');
newlabel.setAttribute("class",'check');
var svgElem = document.createElement("svg");
svgElem.setAttribute("width", "18px");
svgElem.setAttribute("height", "18px");
svgElem.setAttribute("viewBox", "0 0 18 18");
var newPath = document.createElement('path');
newPath.setAttribute("d", "M1,9 L1,3.5 C1,2 2,1 3.5,1 L14.5,1 C16,1 17,2 17,3.5 L17,14.5 C17,16 16,17 14.5,17 L3.5,17 C2,17 1,16 1,14.5 L1,9 Z");
var polyLine = document.createElement('polyline');
polyLine.setAttribute("points","1 9 7 14 15 4");
newlabel.appendChild(svgElem);
svgElem.appendChild(newPath);
newPath.appendChild(polyLine);
document.getElementsByClassName("cbx")[0].appendChild(newlabel);
}
)
.check {
cursor: pointer;
position: relative;
margin: auto;
width: 18px;
height: 18px;
-webkit-tap-highlight-color: transparent;
transform: translate3d(0, 0, 0);
}
.check:before {
content: "";
position: absolute;
top: -15px;
left: -15px;
width: 48px;
height: 48px;
border-radius: 50%;
background: rgba(34,50,84,0.03);
opacity: 0;
transition: opacity 0.2s ease;
}
.check svg {
position: relative;
z-index: 1;
fill: none;
stroke-linecap: round;
stroke-linejoin: round;
stroke: #c8ccd4;
stroke-width: 1.5;
transform: translate3d(0, 0, 0);
transition: all 0.2s ease;
}
.check svg path {
stroke-dasharray: 60;
stroke-dashoffset: 0;
}
.check svg polyline {
stroke-dasharray: 22;
stroke-dashoffset: 66;
}
.check:hover:before {
opacity: 1;
}
.check:hover svg {
stroke: #4285f4;
}
.cbx:checked + .check svg {
stroke: #4285f4;
}
.cbx:checked + .check svg path {
stroke-dashoffset: 60;
transition: all 0.3s linear;
}
.cbx:checked + .check svg polyline {
stroke-dashoffset: 42;
transition: all 0.2s linear;
transition-delay: 0.15s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="field-wrap dogname">
<span class="wpcf7-form-control-wrap your-interests">
<span class="wpcf7-form-control wpcf7-checkbox wpcf7-validates-as-required">
<span class="wpcf7-list-item first">
<label>
<input type="checkbox" name="your-interests[]" value="Boarding Only"><span class="wpcf7-list-item-label">Boarding Only</span>
</label>
</span>
</span>
</span>
</div>