html - 如何使悬停适用于包括浮动图标在内的整行
问题描述
我想为整行悬停,但在我下面的代码中,悬停仅适用于文本。我想为包括caret
菜单标题在内的整行制作它。
我试过这段代码:
$(".treeparent").click(function () {
var $tog = $(this).next('.tog');
$tog.slideToggle();
if ($tog.hasClass('open')){
$tog.removeClass('open');
$(this).removeClass('caret-down');
}else{
$tog.addClass('open');
$(this).addClass('caret-down');
}
});
ul, #myUL {
list-style-type: none;
}
#myUL {
margin: 0;
padding: 0;
}
.caret {
cursor: pointer;
-webkit-user-select: none; /* Safari 3.1+ */
-moz-user-select: none; /* Firefox 2+ */
-ms-user-select: none; /* IE 10+ */
user-select: none;
font-size: 17px;
}
.caret::before {
font-family: "FontAwesome";
content: "\f078";
color: #007BFF;
margin-right: 10px;
float:right;
-moz-transition: transform 0.6s;
-webkit-transition: transform 0.6s;
transition: transform 0.6s;
}
.caret-down::before {
-ms-transform: rotate(-180deg); /* IE 9 */
-webkit-transform: rotate(-180deg); /* Safari */
transform: rotate(-180deg);
}
.nested {
display: none;
margin: 10px;
}
.active {
display: block;
}
.treeparent {
/* display: table-cell; */
overflow: auto;
max-width: 350px;
max-height: 350px;
margin: auto;
height: 35px;
font-size: 14px;
color: #007BFF;
margin: 3px;
width: 260px;
vertical-align:middle;
padding: 2px;
}
.treeparent:hover {
background-color: #cee0f5;
color: black;
transition: background 0.5s;
}
.flip {
transform: rotate(-180deg);
}
.ripple {
background-position: center;
}
.ripple:hover {
background: #cee0f5 radial-gradient(circle, transparent 5%, #a8cdf7 1%) center/15000%;
}
.ripple:active {
background-color: #6eb9f7;
background-size: 100%;
transition: background 0s;
}
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
color: #007bff;
background-color: #f8f9fa!important;
font-weight: bold;
}
.nav-item {
margin-bottom: -8px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="myUL">
<div class="menu-text">
<li>
<span class="caret treeparent ripple">Menu 1<i class="fas fa-chevron-down arrow"></i></span>
<ul class="nested nav nav-pills flex-column tog">
<li class="nav-item" rel="0">
<a class="nav-link" href="javascript:window.location.reload(true)">Sub 1</a>
</li>
<li class="nav-item" rel="1">
<a class="nav-link" href="javascript:window.location.reload(true)">Sub 2</a>
</li>
</ul>
</li>
<li>
<span class="caret treeparent ripple">Menu 2<i class="fas fa-chevron-down arrow"></i></span>
<ul class="nested nav nav-pills flex-column tog">
<li class="nav-item" rel="0">
<a class="nav-link" href="javascript:window.location.reload(true)">Sub 1</a>
</li>
</ul>
</li>
</div>
</ul>
您可以重现该问题-> https://jsfiddle.net/gL4ombkt/
我应该如何更改我的代码来解决问题?
解决方案
你可以display:inline-block;
用来.caret{...}
上课。
ul,
#myUL {
list-style-type: none;
}
#myUL {
margin: 0;
padding: 0;
}
.caret {
cursor: pointer;
-webkit-user-select: none;
/* Safari 3.1+ */
-moz-user-select: none;
/* Firefox 2+ */
-ms-user-select: none;
/* IE 10+ */
user-select: none;
font-size: 17px;
display: block;
}
.caret::before {
font-family: "FontAwesome";
content: "\f078";
color: #007BFF;
margin-right: 10px;
float: right;
-moz-transition: transform 0.6s;
-webkit-transition: transform 0.6s;
transition: transform 0.6s;
}
.caret-down::before {
-ms-transform: rotate(-180deg);
/* IE 9 */
-webkit-transform: rotate(-180deg);
/* Safari */
transform: rotate(-180deg);
}
.nested {
display: none;
margin: 10px;
}
.active {
display: block;
}
.treeparent {
/* display: table-cell; */
overflow: auto;
max-width: 350px;
max-height: 350px;
margin: auto;
height: 35px;
font-size: 14px;
color: #007BFF;
margin: 3px;
width: 260px;
vertical-align: middle;
padding: 2px;
}
.treeparent:hover {
background-color: #cee0f5;
color: black;
transition: background 0.5s;
}
.flip {
transform: rotate(-180deg);
}
.ripple {
background-position: center;
}
.ripple:hover {
background: #cee0f5 radial-gradient(circle, transparent 5%, #a8cdf7 1%) center/15000%;
}
.ripple:active {
background-color: #6eb9f7;
background-size: 100%;
transition: background 0s;
}
.nav-pills .nav-link.active,
.nav-pills .show>.nav-link {
color: #007bff;
background-color: #f8f9fa!important;
font-weight: bold;
}
.nav-item {
margin-bottom: -8px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="myUL">
<div class="menu-text">
<li>
<span class="caret treeparent ripple">Menu 1<i class="fas fa-chevron-down arrow"></i></span>
<ul class="nested nav nav-pills flex-column tog">
<li class="nav-item" rel="0">
<a class="nav-link" href="javascript:window.location.reload(true)">Sub 1</a>
</li>
<li class="nav-item" rel="1">
<a class="nav-link" href="javascript:window.location.reload(true)">Sub 2</a>
</li>
</ul>
</li>
<li>
<span class="caret treeparent ripple">Menu 2<i class="fas fa-chevron-down arrow"></i></span>
<ul class="nested nav nav-pills flex-column tog">
<li class="nav-item" rel="0">
<a class="nav-link" href="javascript:window.location.reload(true)">Sub 1</a>
</li>
</ul>
</li>
</div>
</ul>
推荐阅读
- sql - 为什么 $P!{} 在 JasperServer 上不能正常工作?
- vuejs2 - 如何为 VueJS Mixin 制作可重用的模板
- python - 如何使用 Plotly 为图形设置通用字体?
- java - 数组中第 K 个最大的元素 - LeetCode 问题
- python - 如何连接具有空白条件的某些列
- ruby-on-rails - 如何在 Rails 6 中使用自定义 jQuery
- assembly - 如何使用 PIC16F877A 比较一个值是否在多个范围之一内
- spring - Spring @Transactional 不适用于 InvocationHandler
- php - 为什么我尝试在 PHP 中执行 system(unzip) 后得到错误代码 50
- sql - 检查列上的索引