Как автоматически настроить ширину выпадающего содержимого в соответствии с шириной элемента <p>? - PullRequest
0 голосов
/ 13 декабря 2018

По сути, у меня есть два <p> элемента.При наведении курсора на один элемент <p> появляется раскрывающийся контент.Проблема в том, что я хочу, чтобы ширина выпадающего содержимого (самого выпадающего меню) равнялась соответствию ширине элемента <p>. Эти изображения, вероятно, должны описывать то, о чем я говорю .Красная линия, которую я нарисовал на первом изображении, это то, что я хотел бы «обрезать» или изменить размер, чтобы он идеально подходил под текст.

Вот код:

#dropdown {
  display: inline-block;
  position: relative;
  text-align: center;
}

#dropdown p {
  color: #262261;
  font-family: 'Work Sans', sans-serif;
  font-size: 35px;
  letter-spacing: 5px;
  margin: auto auto auto auto;
}

#dropdown-content {
  position: absolute;
  margin: 10px auto auto auto;
  height: auto;
  min-width: 300px;
  opacity: 0;
  transition: all .2s ease-in;
  background-color: #262261;
  border-radius: 8px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.nav-dropdown-container {
  width: 400px;
}

#dropdown-content p {
  font-size: 20px;
  font-family: 'Work Sans', sans-serif;
  font-size: 30px;
  letter-spacing: 2px;
  transition: 0.5s;
}

#dropdown:hover #dropdown-content {
  opacity: 1;
  line-height: 2;
  padding-top: 1em;
  padding-bottom: 1em;
  -webkit-transition: all 0.5s ease-in-out;
  -moz-transition: all 0.5s ease-in-out;
  -o-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
}

#dropdown-link:link {
  color: #FFFFFF;
  display: block;
  text-decoration: none;
}
<div id="applications">
  <div class="nav-dropdown-container">
    <div id="dropdown">
      <p>APPLICATIONS</p>
      <div id="dropdown-content">
        <center>
          <p><a id="dropdown-link" href="pages/nami.html">abc</a></p>
          <p><a id="dropdown-link" href="pages/jammr.html">def</a></p>
        </center>
      </div>
    </div>
  </div>

Я действительно не хочу делать это вручную, я хочу, чтобы это делалось автоматически.Пожалуйста, дайте мне знать, если это возможно.Опять же, мне трудно объяснить, что я хотел бы сделать, поэтому я сделал все возможное.Спасибо!

1 Ответ

0 голосов
/ 13 декабря 2018

Просто используйте left:0;right:0; с элементом positon:absolute и удалите все определения ширины.inline-block сделает ширину подходящей для содержимого:

И избавится от центральной метки.

#dropdown {
  display: inline-block;
  position: relative;
  text-align: center;
}

#dropdown p {
  color: #262261;
  font-family: 'Work Sans', sans-serif;
  font-size: 35px;
  letter-spacing: 5px;
  margin: auto auto auto auto;
}

#dropdown-content {
  position: absolute;
  left: 0;
  right: 0;
  margin: 10px auto auto;
  text-align: center;
  opacity: 0;
  transition: all .2s ease-in;
  background-color: #262261;
  border-radius: 8px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

#dropdown-content p {
  font-size: 20px;
  font-family: 'Work Sans', sans-serif;
  font-size: 30px;
  letter-spacing: 2px;
  transition: 0.5s;
}

#dropdown:hover #dropdown-content {
  opacity: 1;
  line-height: 2;
  padding-top: 1em;
  padding-bottom: 1em;
  transition: all 0.5s ease-in-out;
}

#dropdown-link:link {
  color: #FFFFFF;
  display: block;
  text-decoration: none;
}
<div id="dropdown">
  <p>APPLICATIONS</p>
  <div id="dropdown-content">
    <p><a id="dropdown-link" href="pages/nami.html">abc</a></p>
    <p><a id="dropdown-link" href="pages/jammr.html">def</a></p>
  </div>
</div>
<div id="dropdown">
  <p>extention</p>
  <div id="dropdown-content">
    <p><a id="dropdown-link" href="pages/nami.html">abc</a></p>
    <p><a id="dropdown-link" href="pages/jammr.html">def</a></p>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...