html - 如何用css模拟点击功能?

标签 html css

我只想用css模拟点击功能。

当鼠标点击第一个 li 标签时,我希望下拉所有列表。

这是我的带有 css 的简单 html 代码,我该怎么做?

jsfiddle

<div id="lang_sel">
  <ul>
    <li><a href="#">option1</a>
      <ul>
        <li><a href="#">option2</a></li>
        <li><a href="#">option3</a></li>
      </ul>
    </li>
  </ul>
</div>
#lang_sel {
  height: 32px;
  position: relative;
  font-family: verdana, arial, sans-serif;
  display: inline-block;
}

#lang_sel ul, #lang_sel li {
  padding: 0!important;
  margin: 0!important;
  list-style-type: none!important;
}
#lang_sel li:before {
  content: ''!important;
}
#lang_sel ul ul {
  width: 149px;
}
#lang_sel li {
  float: left;
  width: 149px;
  position: relative;
}
#lang_sel a, #lang_sel a:visited {
  display: block;
  font-size: 11px;
  text-decoration: none!important;
  color: #444444;
  border: 1px solid #cdcdcd;
  background: #fff;
  padding-left: 10px;
  line-height: 24px;
}
#lang_sel ul ul {
  visibility: hidden;
  position: absolute;
  height: 0;
  top: 25px;
  left: 0;
  width: 149px;
  border-top: 1px solid #cdcdcd;
}
#lang_sel a:hover, #lang_sel ul ul a:hover {
  color: #000;
  background: #eee;
}
#lang_sel ul li:hover ul{
  visibility: visible;
}

............................................

最佳答案

你可以使用checkbox hack

#lang_sel {
	height: 32px;
	position: relative;
	font-family: verdana, arial, sans-serif;
	display: inline-block;
}
#opt{
    width:200px;
    height:30px;
    opacity:0;
}
label{
    display:block;
}
label span{
    top:0;
    width:200px;
    height:30px;
    position:absolute;
}

label ul{
    display:none;
}

input:checked + label ul{
    display:block;
    
}
#lang_sel ul, #lang_sel li {
	padding: 0!important;
	margin: 0!important;
	list-style-type: none!important;
}

#lang_sel ul ul {
	width: 149px;
}
#lang_sel li {
	float: left;
	width: 149px;
	position: relative;
}
#lang_sel a, #lang_sel a:visited {
	display: block;
	font-size: 11px;
	text-decoration: none!important;
	color: #444444;
	border: 1px solid #cdcdcd;
	background: #fff;
	padding-left: 10px;
	line-height: 24px;
}
#lang_sel ul ul {
	visibility: hidden;
	position: absolute;
	height: 0;
	top: 25px;
	left: 0;
	width: 149px;
	border-top: 1px solid #cdcdcd;
}
#lang_sel a:hover, #lang_sel ul ul a:hover {
	color: #000;
	background: #eee;
}
<div id="lang_sel">
    <input type="checkbox" id="opt"/>
    <label for="opt">
        <span>Option1</span>
        <ul>
            <li>Suboption</li>
            <li>Suboption</li>
            <li>Suboption</li>
            <li>Suboption</li>
            <li>Suboption</li>
        </ul>
    </label>
</div>

关于html - 如何用css模拟点击功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31135285/

相关文章:

python - 如何将不同的应用程序合并到一个网页中?

javascript - Onchange 不执行任何操作

html - 滚动条调整页面大小

html - float div 中的内容导致下面的 div 下降

html - 在同一个元素中链接两个 css 动画是行不通的。只有最后一个播放

html - 链接以重新加载当前页面

javascript - 使用 Javascript 为样式切换器添加样式表的最佳方法?

javascript - 旋转元素后的过渡

php - 在 div 不回显 php 之后

html - 在图像中显示文本