HTML 下拉菜单无法正确定位
HTML Dropdown Will Not Position Correctly
我制作了一个下拉菜单,用于我网站导航栏中的三个不同 link。下拉菜单本身工作正常但是我遇到的问题是我无法让下拉菜单将自己定位在每个导航 links 的中间,它针对 links 之一正确定位但是另一个不是,因为它们的字符长度不同。下拉菜单完全在 HTML 和 CSS 中完成,网站的其余部分也在使用 Django,但它没有在下拉菜单中使用。
问题图片-
(这是 link 之一,其中下拉菜单的位置不正确,您可以看到框顶部的三角形未与 link 的中间对齐.)
(在这个中你可以看到三角形或多或少以 link 为中心,但我相信这只是偶然)
下拉菜单 HTML(其中一个下拉菜单与其他下拉菜单相同)
<li class="link-drop"><a href="">Employer</a>
<ul class="link-drop-ul">
<div class="triangle"></div>
<div class="link-drop-box">
<li><a class="link-drop-a" href="{% url 'createjoblisting' %}">Add Listing</a></li>
<li><a class="link-drop-a" href="{% url 'featurenotimplemented' %}">How it works</a></li>
</div>
</ul>
</li>
下拉菜单CSS(所有的都一样)
.link-drop {
list-style-type: none;
display: inline;
font-size: 16px;
cursor: pointer;
list-style-type: none;
display: inline-block;
float: right;
margin: auto;
text-align: center;
}
.link-drop li {
list-style-type: none;
}
.link-drop a {
text-decoration: none;
color: #ebebee;
float: right;
margin-top: 18px;
margin-right: 9px;
margin-left: 9px;
list-style-type: none;
}
.link-drop-ul {
display: none;
position: absolute;
text-align: center;
padding-top: 18px;
-webkit-transition: all .1s ease-out;
-moz-transition: all .1s ease-out;
-ms-transition: all .1s ease-out;
-o-transition: all .1s ease-out;
transition: all .1s ease-out;
}
.link-drop-box {
padding-bottom: 1px;
padding-top: 1px;
background-color: white;
box-shadow: 0px 0px 38px -10px black;
border-radius: 5px;
width: 122px;
margin: auto;
}
.triangle {
width: 0;
height: 0;
position: relative;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-bottom: 8px solid white;
left: 50%;
margin-left: -8px;
}
.link-drop-ul li {
margin-top: 15px;
margin-bottom: 15px;
}
.link-drop-ul li a {
color: black;
float: none;
}
.link-drop-ul li a:hover {
color: #d1d1d1;
}
.link-drop:hover > .link-drop-ul {
display: block;
position: absolute;
padding-top: 55px;
padding-left: 0px;
margin-top: 10px;
}
感谢任何帮助,谢谢!
这是您遇到的问题的解决方案。我 changed/moved/added 一些 CSS.
.link-drop {
position:relative;
list-style-type: none;
display: inline;
font-size: 16px;
cursor: pointer;
list-style-type: none;
display: inline-block;
float: right;
margin: auto;
text-align: center;
}
.link-drop li {
list-style-type: none;
}
.link-drop a {
text-decoration: none;
color: #ebebee;
float: right;
margin-top: 18px;
margin-right: 9px;
margin-left: 9px;
list-style-type: none;
}
.link-drop-ul {
display: none;
position: absolute;
width: 122px;
text-align: center;
-webkit-transition: all .1s ease-out;
-moz-transition: all .1s ease-out;
-ms-transition: all .1s ease-out;
-o-transition: all .1s ease-out;
transition: all .1s ease-out;
padding: 0;
margin:0;
left: 50%;
-moz-transform: translatex(-50%);
-ms-transform: translatex(-50%);
-o-transform: translatex(-50%);
-webkit-transform: translatex(-50%);
transform: translatex(-50%);
top:100%;
padding-top:20px;
}
.link-drop-box {
padding-bottom: 1px;
padding-top: 1px;
background-color: white;
box-shadow: 0px 0px 38px -10px black;
border-radius: 5px;
margin: auto;
}
.triangle {
width: 0;
height: 0;
position: relative;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-bottom: 8px solid white;
left: 50%;
margin-left: -8px;
}
.link-drop-ul li {
margin-top: 15px;
margin-bottom: 15px;
}
.link-drop-ul li a {
color: black;
float: none;
}
.link-drop-ul li a:hover {
color: #d1d1d1;
}
.link-drop:hover > .link-drop-ul {
display: block;
position: absolute;
}
<li class="link-drop"><a href="">Employer</a>
<ul class="link-drop-ul">
<div class="triangle"></div>
<div class="link-drop-box">
<li><a class="link-drop-a" href="{% url 'createjoblisting' %}">Add Listing</a></li>
<li><a class="link-drop-a" href="{% url 'featurenotimplemented' %}">How it works</a></li>
</div>
</ul>
</li>
我制作了一个下拉菜单,用于我网站导航栏中的三个不同 link。下拉菜单本身工作正常但是我遇到的问题是我无法让下拉菜单将自己定位在每个导航 links 的中间,它针对 links 之一正确定位但是另一个不是,因为它们的字符长度不同。下拉菜单完全在 HTML 和 CSS 中完成,网站的其余部分也在使用 Django,但它没有在下拉菜单中使用。
问题图片-
(这是 link 之一,其中下拉菜单的位置不正确,您可以看到框顶部的三角形未与 link 的中间对齐.)
(在这个中你可以看到三角形或多或少以 link 为中心,但我相信这只是偶然)
下拉菜单 HTML(其中一个下拉菜单与其他下拉菜单相同)
<li class="link-drop"><a href="">Employer</a>
<ul class="link-drop-ul">
<div class="triangle"></div>
<div class="link-drop-box">
<li><a class="link-drop-a" href="{% url 'createjoblisting' %}">Add Listing</a></li>
<li><a class="link-drop-a" href="{% url 'featurenotimplemented' %}">How it works</a></li>
</div>
</ul>
</li>
下拉菜单CSS(所有的都一样)
.link-drop {
list-style-type: none;
display: inline;
font-size: 16px;
cursor: pointer;
list-style-type: none;
display: inline-block;
float: right;
margin: auto;
text-align: center;
}
.link-drop li {
list-style-type: none;
}
.link-drop a {
text-decoration: none;
color: #ebebee;
float: right;
margin-top: 18px;
margin-right: 9px;
margin-left: 9px;
list-style-type: none;
}
.link-drop-ul {
display: none;
position: absolute;
text-align: center;
padding-top: 18px;
-webkit-transition: all .1s ease-out;
-moz-transition: all .1s ease-out;
-ms-transition: all .1s ease-out;
-o-transition: all .1s ease-out;
transition: all .1s ease-out;
}
.link-drop-box {
padding-bottom: 1px;
padding-top: 1px;
background-color: white;
box-shadow: 0px 0px 38px -10px black;
border-radius: 5px;
width: 122px;
margin: auto;
}
.triangle {
width: 0;
height: 0;
position: relative;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-bottom: 8px solid white;
left: 50%;
margin-left: -8px;
}
.link-drop-ul li {
margin-top: 15px;
margin-bottom: 15px;
}
.link-drop-ul li a {
color: black;
float: none;
}
.link-drop-ul li a:hover {
color: #d1d1d1;
}
.link-drop:hover > .link-drop-ul {
display: block;
position: absolute;
padding-top: 55px;
padding-left: 0px;
margin-top: 10px;
}
感谢任何帮助,谢谢!
这是您遇到的问题的解决方案。我 changed/moved/added 一些 CSS.
.link-drop {
position:relative;
list-style-type: none;
display: inline;
font-size: 16px;
cursor: pointer;
list-style-type: none;
display: inline-block;
float: right;
margin: auto;
text-align: center;
}
.link-drop li {
list-style-type: none;
}
.link-drop a {
text-decoration: none;
color: #ebebee;
float: right;
margin-top: 18px;
margin-right: 9px;
margin-left: 9px;
list-style-type: none;
}
.link-drop-ul {
display: none;
position: absolute;
width: 122px;
text-align: center;
-webkit-transition: all .1s ease-out;
-moz-transition: all .1s ease-out;
-ms-transition: all .1s ease-out;
-o-transition: all .1s ease-out;
transition: all .1s ease-out;
padding: 0;
margin:0;
left: 50%;
-moz-transform: translatex(-50%);
-ms-transform: translatex(-50%);
-o-transform: translatex(-50%);
-webkit-transform: translatex(-50%);
transform: translatex(-50%);
top:100%;
padding-top:20px;
}
.link-drop-box {
padding-bottom: 1px;
padding-top: 1px;
background-color: white;
box-shadow: 0px 0px 38px -10px black;
border-radius: 5px;
margin: auto;
}
.triangle {
width: 0;
height: 0;
position: relative;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-bottom: 8px solid white;
left: 50%;
margin-left: -8px;
}
.link-drop-ul li {
margin-top: 15px;
margin-bottom: 15px;
}
.link-drop-ul li a {
color: black;
float: none;
}
.link-drop-ul li a:hover {
color: #d1d1d1;
}
.link-drop:hover > .link-drop-ul {
display: block;
position: absolute;
}
<li class="link-drop"><a href="">Employer</a>
<ul class="link-drop-ul">
<div class="triangle"></div>
<div class="link-drop-box">
<li><a class="link-drop-a" href="{% url 'createjoblisting' %}">Add Listing</a></li>
<li><a class="link-drop-a" href="{% url 'featurenotimplemented' %}">How it works</a></li>
</div>
</ul>
</li>