使列表项可单击(HTML/CSS)

bf1o4zei  于 2023-02-10  发布在  其他
关注(0)|答案(8)|浏览(158)

所以我试着让my site上的每个列表项都可以点击,但是我不确定什么是最好的方法。请帮助我。
下面是相关的HTML:

<ul>
    <li>Backpack <a href="#" title="Buy on Amazon" target="_blank"><img src="img/basket.png" height="16" width="16" alt="Buy" class="buy" onClick="pageTracker._trackEvent('Amazon', 'School Supplies', 'Backpack');"/></a></li>
    <!-- More List Items -->
</ul>

下面是相关的CSS:

.content ul li {
    display:block;
    list-style:none;
    padding:5px 10px 5px 15px;
}

.content li li {
    // This is for when there are sub-categories.
    border-bottom: none;
    border-top: 1px solid #f8d9d0;
    margin: 3px -10px -3px -15px;
    padding: 5px 0px 5px 30px;
}

.buy {
    float: right;
    margin-top: -2px;
}

// The next ones all deal with the shopping cart icon that appears only on hovers.

.listblock ul li img { 
    visibility: hidden;
}

.listblock ul li:hover img { 
    visibility: visible;
}

.listblock ul li ul li img { 
    visibility: hidden !important;
    margin-right: 10px;
}

.listblock ul li ul li:hover img { 
    visibility: visible !important;
    margin-right: 10px;
}

我怎样才能使整个列表项可点击,同时仍然有购物车图标和谷歌分析事件跟踪仍然工作?有一些jQuery魔术我可以使用?
我尝试过对Amazon链接使用display:block,但这似乎会打乱图像的放置。
太感谢你了!

dl5txlt9

dl5txlt91#

我认为你可以使用下面的HTML和CSS组合来代替:

<li>
  <a href="#">Backback</a>
</li>

然后使用CSS背景显示悬停时的购物篮可见性:

.listblock ul li a {
    padding: 5px 30px 5px 10px;
    display: block;
}

.listblock ul li a:hover {
    background: transparent url('../img/basket.png') no-repeat 3px 170px;
}

傻瓜!

ruyhziif

ruyhziif2#

li元素支持onclick事件。

<ul>
<li onclick="location.href = 'http://stackoverflow.com/questions/3486110/make-a-list-item-clickable-html-css';">Make A List Item Clickable</li>
</ul>
1cklez4t

1cklez4t3#

下面是一个可行的解决方案-https://codepen.io/dragoeco/pen/YMJYqW(编辑:死链接http://jsfiddle.net/STTaf/
我使用了简单的jQuery:

$(function() {
    $('li').css('cursor', 'pointer')

    .click(function() {
        window.location = $('a', this).attr('href');
        return false;
    });
});
4urapxun

4urapxun4#

关键是给锚点链接一个显示属性"block"和一个宽度属性100%

    • 使列表项目可单击(示例):**

超文本:

<ul>
    <li><a href="">link1</a></li>
    <li><a href="">link2</a></li>
    <li><a href="">link3</a></li>
</ul>

CSS:

ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
ul li a {
  display: block;
  width: 100%;
  text-decoration: none;
  padding: 5px;
}
ul li a:hover {
  background-color: #ccc;
}
lmyy7pcs

lmyy7pcs5#

仅限HTML和CSS。

#leftsideMenu ul li {
  border-bottom: 1px dashed lightgray;
  background-color: cadetblue;
}

#leftsideMenu ul li a {
  padding: 8px 20px 8px 20px;
  color: white;
  display: block;
}

#leftsideMenu ul li a:hover {
  background-color: lightgreen;
  transition: 0.5s;
  padding-left: 30px;
  padding-right: 10px;
}
<div id="leftsideMenu">
  <ul style="list-style-type:none">
    <li><a href="#">India</a></li>
    <li><a href="#">USA</a></li>
    <li><a href="#">Russia</a></li>
    <li><a href="#">China</a></li>
    <li><a href="#">Afganistan</a></li>
    <li><a href="#">Landon</a></li>
    <li><a href="#">Scotland</a></li>
    <li><a href="#">Ireland</a></li>
  </ul>
</div>
oyjwcjzk

oyjwcjzk6#

丢弃<a href="...">,将onclick(全部小写)处理程序放在<li>标记本身上。

00jrzges

00jrzges7#

把所有内容放在链接里怎么样?

<li><a href="#" onClick="..." ... >Backpack <img ... /></a></li>

似乎是最自然的尝试。

polkgigr

polkgigr8#

我肯定这是一个迟来的回复,但也许对其他人有用。你可以把你所有的<li>元素内容放到<a>标签中,并添加以下css:

li a { 
    display: block; 
    /* and you can use padding for additional space if needs, as a clickable area / or other styling */ 
    padding: 5px 20px; 
}

相关问题