为了账号安全,请及时绑定邮箱和手机立即绑定

有没有一种仅 CSS 的方法可以使下拉菜单项的大小与其父菜单项的大小相同?

有没有一种仅 CSS 的方法可以使下拉菜单项的大小与其父菜单项的大小相同?

手掌心 2023-09-25 17:10:15
我一直在 W3 Schools 中进行修改,到目前为止我已经获得了预期的效果,但是导航栏现在随下拉菜单一起扩展。我缺少更好的方法吗?提前对格式表示歉意,并感谢您的宝贵时间。编辑:希望进一步澄清:示例W3schools 的链接: https://www.w3schools.com/code/tryit.asp ?filename=GD1ZCKC1TKED代码:<!DOCTYPE html>    <html>    <head>    <meta name="viewport" content="width=device-width, initial-scale=1">    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">    <style>body {      font-family: Arial, Helvetica, sans-serif;    }.mainNav {    background-color: #000;    padding:12px 10px 0px 0px;    float: right;    overflow: hidden;}.mainNav a {    color: #FFF;    float: left;    display: block;    padding: 15px;    text-align: center;    text-decoration: none;    font-size: 17px;}.active {  background-color: #4CAF50;  color: white;}.mainNav .icon {  display: none;}.dropdown {  float: left;  overflow: hidden;}.dropdown .dropbtn {  font-size: 17px;      border: none;  outline: none;  color: white;  padding: 14px 16px;  background-color: inherit;  font-family: inherit;}.dropdown-content {  display: none;  position: relative;  background-color: #f9f9f9;  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);  z-index: 1;}.dropdown-content a {  float: none;  color: black;  padding: 12px 16px;  text-decoration: none;  display: block;  text-align: center;}.mainNav a:hover, .dropdown:hover .dropbtn {  background-color: #555;  color: white;}.dropdown-content a:hover {  background-color: #ddd;  color: black;}.dropdown:hover .dropdown-content {  display: block;}@media screen and (max-width: 500px) {    .logo {        max-width: 25%;        height: auto;        padding-top:10px;        margin-bottom:-50px;        display: block;        margin: auto;    }    .mainNav{        background-color: black;        width:100%;        font-size: 18px;    }    .mainNav a:not(:first-child), .dropdown .dropbtn {        display: none;    }
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

整个导航范围扩大的原因是由于该项目的定位。您已将其.dropdown-content设置为position: relative;通过将其更改为position: absolute;它将解决第一个问题。


然而,现在要获得与父级相同的宽度,有几种方法可以做到这一点。最简单的方法就是简单地设置一个width属性dropdown-content,这样它就总是相同的。唯一的问题是,如果您的下拉内容区域较长,则会导致单词被截断。如果是这种情况,您可以使用它min-width来代替。97.45px;我已经根据标签上使用的填充计算了宽度<button>。


所以你需要做的就是将你的 css 更改.dropdown-content为:


.dropdown-content {

  display: none;

  position: absolute;

  background-color: #f9f9f9;

  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);

  z-index: 1;

  width: 97.45px;

}

或者,就像我说的min-width: 97.45px;。这将使其与父级保持相同的宽度,同时允许选项随着更大的内容而扩展。

查看完整回答
反对 回复 2023-09-25
  • 1 回答
  • 0 关注
  • 43 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信