firefox 在单击下拉菜单时遇到问题
firefox having issues with click on dropdown menu
我创建了一个带有 CSS 的下拉菜单,带有可点击的链接,而另一个只有一个 p 元素。这在 chrome 中运行良好,但是 Firefox 不会响应 :focus 伪 class。我不知道如何解决这个问题,我的网站上有三个下拉菜单。发布其中两个的代码。我无法将 :fcous class 变成 :hover,因为当您将鼠标从按钮上移开以单击下拉链接时,ul 会消失。
<div class="contact-a">
<button class="contactbtn">Contact</button>
<ul style="color: white;">
<li>
<p>For Any Enquiries→</p>
</li>
<li><a style="color: white;" href="mailto:hello@shekleung.com" target="_blank">hello@shekleung.com</a></li>
<li>+44 7463 070158</li><br>
<li><a style="color: white;" href="https://www.instagram.com/samsonleung/?hl=en" target="_blank">Instagram</a></li>
</ul>
</div>
<div class="stockist">
<button class="stockistbtn">Stockist</button>
<ul class="stockist-content">
<li>
<p>COMING SOON</p>
</li>
CSS
.contact {
position: relative;
top: 5vh;
right: 4vw;
font-family: Helvetica, sans-serif;
height: 20vh;
letter-spacing: 3px;
}
.contactbtn {
color: white;
text-transform: uppercase;
font-size: 1.5rem;
font-weight: bold;
background: none;
border: none;
text-decoration: none;
cursor: pointer;
outline: none;
position: fixed;
}
.contactbtn:hover {
opacity: 0.6;
}
.contact ul,
.contact-a ul {
position: absolute;
left: -10vw;
margin-top: 4vh;
color: black;
width: 300px;
height: 150px;
font-size: 1.5rem;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: flex-end;
list-style: none;
text-transform: uppercase;
font-size: 1rem;
opacity: 0;
transform: translateY(-10px);
transition: all 0.4s ease;
-webkit-transform: translateY(-10px);
-webkit-transition: all 0.4s ease;
-moz-transform: translateY(-10px);
-moz-transition: all 0.4s ease;
}
.contact a,
.contact-a a {
text-decoration: none;
}
.contact a:hover {
background-color: var(--grCol3);
}
.contact-a a:hover {
background-color: black;
}
.contactbtn:focus+ul {
opacity: 1;
pointer-events: all;
transform: translateY(0);
-moz-transform: translateY(0);
-webkit-transform: translateY(0);
outline: none;
}
/* about page contact */
.contact-a {
position: absolute;
top: 5vh;
left: 5vw;
font-family: Helvetica, sans-serif;
height: 10vh;
letter-spacing: 3px;
color: white;
}
.contact-a ul {
align-items: flex-start;
left: 0;
}
.stockist {
position: relative;
display: inline;
top: -85vh;
right: -20vw;
font-family: Helvetica, sans-serif;
height: 10vh;
letter-spacing: 3px;
}
.stockistbtn {
color: white;
text-transform: uppercase;
font-size: 1.5rem;
font-weight: bold;
background: none;
border: none;
text-decoration: none;
cursor: pointer;
outline: none;
}
.stockistbtn:hover {
opacity: 0.6;
}
.stockist ul {
position: absolute;
left: -9vw;
margin-top: -5vh;
width: 300px;
height: 150px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-end;
list-style: none;
text-transform: uppercase;
font-size: 1rem;
opacity: 0;
pointer-events: none;
transform: translateY(-10px);
-moz-transform: translateY(-10px);
-webkit-transform: translateY(-10px);
transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
-webkit-transition: all 0.4s ease;
}
.stockist p {
color: var(--grCol3);
text-decoration: none;
}
.stockist p:hover {
background-color: black;
}
.stockistbtn:focus+ul {
opacity: 1;
pointer-events: all;
transform: translateY(0);
-moz-transform: translateY(0);
-webkit-transform: translateY(0);
outline: none;
}
您可以通过简单地将鼠标悬停在 'trigger' 元素和 'dropdown' 元素的父元素上来简化逻辑。这具有在鼠标退出展开的父容器之前保持 :hover
样式的优点。
.menu {
display:none;
}
.menu-container:hover .menu {
display:block;
}
<div class="contact-a menu-container">
<button class="contactbtn">Contact</button>
<ul class="menu">
<li>
<p>For Any Enquiries→</p>
</li>
<li><a>hello@shekleung.com</a></li>
<li>+44 7463 070158</li><br>
<li><a>Instagram</a></li>
</ul>
</div>
<div class="contact-b menu-container">
<button class="contactbtn">Contact</button>
<ul class="menu">
<li>
<p>For Any Enquiries→</p>
</li>
<li><a>hello@shekleung.com</a></li>
<li>+44 7463 070158</li><br>
<li><a>Instagram</a></li>
</ul>
</div>
我创建了一个带有 CSS 的下拉菜单,带有可点击的链接,而另一个只有一个 p 元素。这在 chrome 中运行良好,但是 Firefox 不会响应 :focus 伪 class。我不知道如何解决这个问题,我的网站上有三个下拉菜单。发布其中两个的代码。我无法将 :fcous class 变成 :hover,因为当您将鼠标从按钮上移开以单击下拉链接时,ul 会消失。
<div class="contact-a">
<button class="contactbtn">Contact</button>
<ul style="color: white;">
<li>
<p>For Any Enquiries→</p>
</li>
<li><a style="color: white;" href="mailto:hello@shekleung.com" target="_blank">hello@shekleung.com</a></li>
<li>+44 7463 070158</li><br>
<li><a style="color: white;" href="https://www.instagram.com/samsonleung/?hl=en" target="_blank">Instagram</a></li>
</ul>
</div>
<div class="stockist">
<button class="stockistbtn">Stockist</button>
<ul class="stockist-content">
<li>
<p>COMING SOON</p>
</li>
CSS
.contact {
position: relative;
top: 5vh;
right: 4vw;
font-family: Helvetica, sans-serif;
height: 20vh;
letter-spacing: 3px;
}
.contactbtn {
color: white;
text-transform: uppercase;
font-size: 1.5rem;
font-weight: bold;
background: none;
border: none;
text-decoration: none;
cursor: pointer;
outline: none;
position: fixed;
}
.contactbtn:hover {
opacity: 0.6;
}
.contact ul,
.contact-a ul {
position: absolute;
left: -10vw;
margin-top: 4vh;
color: black;
width: 300px;
height: 150px;
font-size: 1.5rem;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: flex-end;
list-style: none;
text-transform: uppercase;
font-size: 1rem;
opacity: 0;
transform: translateY(-10px);
transition: all 0.4s ease;
-webkit-transform: translateY(-10px);
-webkit-transition: all 0.4s ease;
-moz-transform: translateY(-10px);
-moz-transition: all 0.4s ease;
}
.contact a,
.contact-a a {
text-decoration: none;
}
.contact a:hover {
background-color: var(--grCol3);
}
.contact-a a:hover {
background-color: black;
}
.contactbtn:focus+ul {
opacity: 1;
pointer-events: all;
transform: translateY(0);
-moz-transform: translateY(0);
-webkit-transform: translateY(0);
outline: none;
}
/* about page contact */
.contact-a {
position: absolute;
top: 5vh;
left: 5vw;
font-family: Helvetica, sans-serif;
height: 10vh;
letter-spacing: 3px;
color: white;
}
.contact-a ul {
align-items: flex-start;
left: 0;
}
.stockist {
position: relative;
display: inline;
top: -85vh;
right: -20vw;
font-family: Helvetica, sans-serif;
height: 10vh;
letter-spacing: 3px;
}
.stockistbtn {
color: white;
text-transform: uppercase;
font-size: 1.5rem;
font-weight: bold;
background: none;
border: none;
text-decoration: none;
cursor: pointer;
outline: none;
}
.stockistbtn:hover {
opacity: 0.6;
}
.stockist ul {
position: absolute;
left: -9vw;
margin-top: -5vh;
width: 300px;
height: 150px;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-end;
list-style: none;
text-transform: uppercase;
font-size: 1rem;
opacity: 0;
pointer-events: none;
transform: translateY(-10px);
-moz-transform: translateY(-10px);
-webkit-transform: translateY(-10px);
transition: all 0.4s ease;
-moz-transition: all 0.4s ease;
-webkit-transition: all 0.4s ease;
}
.stockist p {
color: var(--grCol3);
text-decoration: none;
}
.stockist p:hover {
background-color: black;
}
.stockistbtn:focus+ul {
opacity: 1;
pointer-events: all;
transform: translateY(0);
-moz-transform: translateY(0);
-webkit-transform: translateY(0);
outline: none;
}
您可以通过简单地将鼠标悬停在 'trigger' 元素和 'dropdown' 元素的父元素上来简化逻辑。这具有在鼠标退出展开的父容器之前保持 :hover
样式的优点。
.menu {
display:none;
}
.menu-container:hover .menu {
display:block;
}
<div class="contact-a menu-container">
<button class="contactbtn">Contact</button>
<ul class="menu">
<li>
<p>For Any Enquiries→</p>
</li>
<li><a>hello@shekleung.com</a></li>
<li>+44 7463 070158</li><br>
<li><a>Instagram</a></li>
</ul>
</div>
<div class="contact-b menu-container">
<button class="contactbtn">Contact</button>
<ul class="menu">
<li>
<p>For Any Enquiries→</p>
</li>
<li><a>hello@shekleung.com</a></li>
<li>+44 7463 070158</li><br>
<li><a>Instagram</a></li>
</ul>
</div>