#jquery #html #css
#jquery #HTML #css
Вопрос:
Я создаю приложение с помощью jquery mobile, и у меня есть функция, которая позволяет пользователю нажимать на изображение, которое открывается
<input type="file" name="file" id="file" onchange="submitForm(this)" capture="camera" class="hideme" accept="image/*" />
Это работает хорошо, однако мне нужно, чтобы поле ввода было скрыто. Я написал следующий код:
.hideme
{
display:none;
visibility:hidden;
border: 0px;
}
но все, что это делает, это скрывает текст внутри поля, на самом деле он не скрывает контур. Есть идеи о том, как я могу избавиться от этого? js скрипка здесь http://jsfiddle.net/DLC4Y /
Комментарии:
1. Пожалуйста, посмотрите мой ответ и дайте мне знать, если он не работает, я его обновлю
2. почему
display:none
иvisibility:hidden
в том же классе?3.
display : none
должно быть достаточно! Убедитесь, что вы не перезаписываете CSS где-то еще ( jsfiddle.net/D9T6v )4. пожалуйста, посмотрите Мой jsfiddle — я добавил его в исходный вопрос
5. jQuery mobile добавляет
<div>
элемент в ваше<input>
поле. Граница исходит от этого элемента div, а не от вашего ввода. Поэтому вам нужно удалить это<div>
. проверьте мой ответ
Ответ №1:
ДЕМОНСТРАЦИЯ
Используйте это,
$('#file').parent().hide();
jQuery mobile добавляет <div>
элемент в ваше <input>
поле. Граница исходит от этого элемента div, а не от вашего ввода. Итак, вам нужно удалить это <div>
или
Добавьте это в CSS.
.ui-input-text{
display:none;
}
Комментарии:
1. привет — как я могу сказать, что я хочу изменить .ui-input-text, но только для #file? Я знаю глупый вопрос!
2. у вас нет
parent
селектора в CSS. вы должны использовать jQuery там3. когда я использую этот $(‘#file’).parent().hide(); он также скрывает изображение в моей форме:(
4. можете ли вы предоставить полный html
5. У меня получилось, я завернул #file в div. Спасибо за вашу помощь! 😀
Ответ №2:
display: none;
должно быть достаточно — он полностью скрывает элемент, включая границы.
Это то, что я использую, у меня нет визуальных или технических проблем:
<style>
.hide-me { display: none; }
.i-am-a-link { cursor: pointer; }
</style>
<label for="image-upload" class="i-am-a-link">
<img src="placeholder.jpg"
id="image-upload-label">
</label>
<input type="file" id="image-upload" class="hide-me">
Комментарии:
1. Правильно, не уверен, почему все пытаются скрыть границу, когда ничего не видно, а элемент не занимает места в DOM…
2. это ничего не скрывает, даже текст.
3. Используйте инспектор CSS, чтобы увидеть, какие правила применяются к вашему вводу… Это решение правильное
4. взгляните на jsfiddle, который я добавил к своему вопросу. Спасибо
Ответ №3:
border: 0px;
это то, что вы упоминаете
где так и должно быть
border: none;
Ответ №4:
Убедитесь, что вы не переопределяете CSS в другой части файла, также вам, вероятно, следует использовать
border: none;
Вы также могли бы использовать !important
on it, чтобы переопределить любой CSS, который позже изменит свойство.
border: none !important;
Ответ №5:
Вот ваше решение:
Удалите ваши предыдущие стили, связанные с hideme
классом (т.е. .hideme
), и добавьте следующий класс.
.ui-body-c, .ui-overlay-c{
border: none;
box-shadow: none;
}
Хорошего дня.