Как сделать HTML ссылку активированной, нажав на кнопку?


у меня есть следующие разметки,

<ul id="menu">              
    <li><a href="#">Something1</a></li>
    <li><a href="#">Something2</a></li>
    <li><a href="#">Something3</a></li>
    <li><a href="#">Something4</a></li>
</ul>

The <li> немного большой, с небольшим изображением слева, Я должен на самом деле нажать на <a> для активации ссылки. Как я могу сделать клик на <li> активировать ссылку?

Edit1:

ul#menu li
{
    display:block;
    list-style: none;
    background: #e8eef4 url(images/arrow.png) 2% 50% no-repeat;
    border: 1px solid #b2b2b2;
    padding: 0;
    margin-top: 5px;
}

ul#menu li a
{

    font-weight: bold;
    text-decoration: none;
    line-height: 2.8em;
    padding-right:.5em;
    color: #696969;
}
11 55

11 ответов:

#menu li { padding: 0px; }
#menu li a { margin: 0px; display: block; width: 100%; height: 100%; }

возможно, потребуется некоторая настройка для IE6, но это о том, как вы это делаете.

как сказал Маринейо, вы могли бы использовать

просто чтобы бросить эту опцию там:

<ul id="menu">
    <a href="#"><li>Something1</li></a>
    <a href="#"><li>Something2</li></a>
    <a href="#"><li>Something3</li></a>
    <a href="#"><li>Something4</li></a>
</ul>

это стиль, который я использую в своих меню, он делает сам элемент списка гиперссылкой (аналогично тому, как можно было бы сделать изображение ссылкой).
Для укладки я обычно применяю что-то вроде этого:

nav ul a {
    color: inherit;
    text-decoration: none;
}

затем я могу применить любой стиль к

  • , который я хочу.

    Примечание: валидаторы будут жаловаться на этот метод, но если вы похожи на меня и не основывают свою жизнь вокруг них, это должно работать просто отлично.

  • просто добавьте текст ссылки в тег " p " или что-то подобное и добавьте поля и отступы к этому элементу, таким образом, это не повлияет на настройки, которые вам дал MiffTheFox, т. е.

    <li> <a href="#"> <p>Link Text </p> </a> </li>
    

    это сделает целое <li> объект как ссылку :

    <li onclick="location.href='page.html';"  style="cursor:pointer;">...</li>
    

    jqyery это еще одна версия с jquery немного короче. предполагая, что <a> элемент находится внутри de <li> элемент

    $(li).click(function(){
        $(this).children().click();
    });
    

    следующий, кажется, работает:

    ul#menu li a {
        color:#696969;
        display:block;
        font-weight:bold;
        line-height:2.8;
        text-decoration:none;
        width:100%;
    }
    

    или вы можете создать пустую ссылку в конце вашего <li>:

    <a href="link"></a>
    
    .menu li{position:relative;padding:0;}
    .link{
         bottom: 0;
         left: 0;
         position: absolute;
         right: 0;
         top: 0;
    }
    

    это создаст полный кликабельный <li> и сохранить форматирование на реальную ссылку. Это может быть полезно для <div> - тег как

    вы можете попробовать событие "onclick "внутри тега LI и изменить" местоположение.href " как в javascript.

    вы также можете попробовать разместить теги li в тегах a, однако это, вероятно, неверный HTML.

    как сделать HTML ссылку активированной, нажав на

  • ?
  • сделав вашу ссылку такой же большой, как ваш li: просто переместите инструкцию

    display: block;
    

    от li до a и все готово.

    что есть:

    #menu li
    {
        /* no more display:block; on list item */
    
        list-style: none;
        background: #e8eef4 url(arrow.gif) 2% 50% no-repeat;
        border: 1px solid #b2b2b2;
        padding: 0;
        margin-top: 5px;
    }
    
    #menu li a
    {
        display:block; /* moved to link */
        font-weight: bold;
        text-decoration: none;
        line-height: 2.8em;
        padding-right:.5em;
        color: #696969;
    }
    

    боковое Примечание: Вы можете удалить "ul" из ваших двух селекторов: #меню является достаточным указанием, за исключением случаев, когда вам нужно придать вес этим двум правилам, чтобы переопределить другие инструкции.

    используйте jQuery, поэтому вам не нужно писать встроенный javascript на <li> элемент:

    $(document).ready(function(){
        $("li > a").each(function(index, value) {
            var link = $(this).attr("href");
            $(this).parent().bind("click", function() {
                location.href = link;
            });
        });
    });