Скрыть код в исходном коде страницы
Проблема следующая - делаю адаптивную верстку админки, у меня грубо говоря 2 блока
<span class='big'><input name='NAME'></span> <span class='mobile'><input name='NAME'></span> При применении @media, display:none не скрывает код в исходном коде страницы, получается проблема с внесением данных, тк 2 инпута с одинаковым полем. Возможны ли варианты решения этой проблемы с помощью js? Верстка там сложная и приходится именно дублировать блоки. Существует ли альтернатива, чтобы скрыть в том числе и в исходном коде? Напр. в зависимости от разрешения экрана подключать тот или иной код... |
<div class="big"><input type="text" name="name"></div>
<div class="mobile"><input type="text" name="name"></div>
<style>
input {
all: initial;
}
.mobile {
background: #ffeaea;
display: initial;
}
.big {
background: #d2ffde;
display: none;
}
@media (min-width: 600px) {
.mobile {
display: none;
}
.big {
display: initial;
}
}
</style>
<script>
{
let onResizeHandler = event => {
for(let element of document.querySelectorAll("input[name], input[data-name]")) {
if(!("name" in element.dataset)) element.dataset.name = element.name;
// если элемент формы не виден,
// то удаляем его "name" атрибут;
// иначе восстанавливаем
if(element.offsetWidth > 0 && element.offsetHeight > 0) {
element.setAttribute("name", element.dataset.name);
} else {
element.removeAttribute("name");
}
}
};
addEventListener("resize", onResizeHandler);
onResizeHandler();
};
</script>
<!-- просто кнопка, не к теме, но открывает в новом окне, чтобы можно было изменять его размеры смотря в консоль на inputs -->
<input type="button" style="position:absolute;bottom:0;right:0" value="In new tab" onclick="var o=open('', '', '');o.document.write(document.documentElement.outerHTML);">
Хотя такое решение, не является *на самом деле* решением, поскольку в HTML следует хранить только данные, а не их представление. У вас на самом деле одна форма, но вы хотите чтобы она по разному выглядела. С помощью CSS можно как угодно оформлять и переставлять элементы на странице. http://www.mezzoblue.com/zengarden/alldesigns/ Пример одного HTML, и как его можно разными способами при помощи CSS преображать... |
Ничего ж себе... ES6 уже новичкам рекомендуют) Идёт прогресс по-тихоньку)
|
| Часовой пояс GMT +3, время: 07:16. |