#html #css
#HTML #css
Вопрос:
У меня есть квадрат DIV, содержащий слово «Следующий». Я хотел бы, чтобы цвет фона DIV менялся при наведении на него курсора и чтобы он переходил по ссылке, когда я нажимаю на нее. Могу ли я сделать это без использования Javascript? Я не просто хочу использовать ссылку, как я предполагаю, для этого, тогда это сработало бы, только если я перейду выше «next».
Большое вам спасибо за предварительную помощь.
Комментарии:
1. Вы можете выполнить визуальное наведение курсора с помощью
div:hover{...}
, но для щелчка потребуется JS.2. «пусть это приведет меня к ссылке, когда я нажимаю на нее» означает, что только нажатие на нее приводит вас к фактической ссылке?
Ответ №1:
Неизбежно мы должны спросить: почему бы не сделать это гиперссылкой? Если он крякает как утка и выглядит как утка, это действительно должна быть утка.
Вы можете обработать эффект зависания с помощью простого :hover
правила в вашей таблице стилей (например, div.whatever:hover { color: red; }
), но вы не можете внедрить элемент с функциональностью, такой как переход на новую страницу, без использования JavaScript.
Комментарии:
1. DIV большой, а слово «Следующий» маленькое. Я хотел бы, чтобы пользователь, щелкнув в любом месте DIV, мог перейти по ссылке. Также я хочу изменить цвет DIV. Я не уверен. Могу ли я сделать все это с помощью ссылки? Теперь мой DIV имеет градиент. Могу ли я изменить это также при наведении курсора мыши. Большое вам спасибо.
2. @Beth Вы могли бы установить
display: inline-block;
на эту ссылку и использовать отступы, чтобы увеличить область, доступную для просмотра. Это одно решение, есть еще много других (все требуютdisplay: inline-block;
илиdisplay: block;
)3. Как правило, любой вопрос о том, «как я хочу, чтобы это выглядело», может быть решен с помощью таблиц стилей. Использование другого элемента в вашем HTML не решает никаких проблем и часто (как в этом случае) создает новые. Как предлагает @Arjan, вы можете сделать элемент «больше», либо указав
width
иheight
, либо указавmargin
andpadding
.4. Привет, я пытался использовать <a> . Это работает нормально, но затем я замечаю, что мой курсор не меняется на указатель, как при наведении на кнопку, когда я внутри <a> . Есть идеи? Публикую этот комментарий в двух местах. Надеюсь, это разрешено.
5. Я подозреваю, что вы использовали
margin
который добавляет пространство ЗА пределами элемента (т. Е. Между этим элементом и любыми соседними элементами). Используйтеpadding
, когда вы хотите, чтобы пространство было ВНУТРИ элемента.
Ответ №2:
В HTML4 (и, насколько мне известно) HTML5 вы не можете этого сделать. Я слышал, что они планируют сделать это в XHTML2, но это еще не выпущено.
Вы могли бы просто использовать <a>
элемент как <div>
, просто присвоив ему класс, например NextLink
, а затем вы можете что-то сделать в CSS, чтобы он выглядел и действовал как div:
.NextLink {
display:block;
}
.NextLink:hover {
background-color:red;
}
Ответ №3:
Вы можете добиться этого, поместив гиперссылку в DIV с помощью display:block:
<style>
#next:hover { background-color:red; }
#next a { display:block; }
</style>
<div id="next">
<a href="#">Next</a>
</div>
Комментарии:
1. Вроде того… но гиперссылка не будет автоматически заполнять всю высоту. Лучше просто оформить
<a>
по своему желанию и даже не беспокоиться о<div>
.
Ответ №4:
Да, вы действительно не можете сделать это без javascript — или, по крайней мере, не стоило бы пытаться, на мой взгляд. Лучшим подходом было бы оформить a
тег. Что-то вроде этого:
a {padding:10px;border:solid 1px #000;}
a:HOVER {background-color:yellow;}