насправді jQuery просто очищає значення властивості 'display', а не встановлює його на 'block' (див. внутрішню реалізацію jQuery.showHide ()) -
function showHide(elements, show) {
var display, elem, hidden,
...
if (show) {
// Reset the inline display of this element to learn if it is
// being hidden by cascaded rules or not
if (!values[index] && display === "none") {
elem.style.display = "";
}
...
if (!show || elem.style.display === "none" || elem.style.display === "") {
elem.style.display = show ? values[index] || "" : "none";
}
}
Зверніть увагу, що ви можете перекрити $ .fn.show () / $. Fn.hide (); збереження оригінального відображення в самому елементі при хованні (наприклад, як атрибут або в $ .data ()); а потім знову застосувати його назад, коли показується.
Також важливо використовувати css ! напевно, тут не вийде - оскільки встановлення стилю встроєне зазвичай сильніше, ніж будь-яке інше правило