как сделать размер речевого окна авто - PullRequest
0 голосов
/ 19 апреля 2020

Я создал речевую коробку, но в ней возникают проблемы. Я не могу заставить речевую коробку автоматически менять размер (высоту и ширину) в соответствии с потребностями. Он должен приобрести пространство в соответствии с его содержанием. Если содержимое в нем имеет большой размер, ящики должны быть в нем зафиксированы. Если содержимое маленькое, поле должно автоматически уменьшаться в размере

.hide {
  display: none;
}

.speech {
  position: absolute;
  left: 0;
  top: -22rem;
  width: 400px;
  height: 300px;
  text-align: center;
  line-height: 100px;
  background-color: #fff;
  border: 8px solid #ff5733;
  -webkit-border-radius: 30px;
  -moz-border-radius: 30px;
  border-radius: 30px;
  -webkit-box-shadow: 2px 2px 4px #888;
  -moz-box-shadow: 2px 2px 4px #888;
  box-shadow: 2px 2px 4px #888;
  display: none;
}

.speech:after {
  content: ' ';
  position: absolute;
  width: 0;
  height: 0;
  left: 38px;
  top: 300px;
  border: 15px solid;
  border-color: #fff transparent transparent #fff;
}

.speech:before {
  content: ' ';
  position: absolute;
  width: 0;
  height: 0;
  left: 30px;
  top: 300px;
  border: 25px solid;
  border-color: #ff5733 transparent transparent #ff5733;
}

.myDIV {
  position: relative;
}

.myDIV:hover .speech {
  display: block;
  color: green;
}
<h2>Display an Element on Hover</h2>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<span><span>
hello buddy how do you do <span class="myDIV"> Hover over me.<span class="speech">I am shown when someone hovers over the div above.<p>Other content</p>
<p>Other content</p>
<p>Other content</p></span></span></span> well I am moe optional
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<span><span>
hello buddy how do you do <span class="myDIV"> Hover over me.<span class="speech">I am shown when someone hovers over the div above.</span></span></span> well I am moe optional

1 Ответ

1 голос
/ 19 апреля 2020

Ниже обновленный код. Проверьте комментарии:

.hide {
  display: none;
}

.speech {
  position: absolute;
  left: 0;
  /*top: -22rem; removed*/
  bottom:calc(100% + 33px); /* added */
  width: 400px;
  /* height: 300px; removed */
  text-align: center;
  line-height: 100px;
  background-color: #fff;
  border: 8px solid #ff5733;
  border-radius: 30px;
  box-shadow: 2px 2px 4px #888;
  display: none;
}

.speech:after {
  content: ' ';
  position: absolute;
  width: 0;
  height: 0;
  left: 38px;
  /*top: 300px; removed*/
  top:100%; /* added */
  border: 15px solid;
  border-color: #fff transparent transparent #fff;
}

.speech:before {
  content: ' ';
  position: absolute;
  width: 0;
  height: 0;
  left: 30px;
  /*top: 300px; removed*/
  top:100%; /* added */
  border: 25px solid;
  border-color: #ff5733 transparent transparent #ff5733;
}

.myDIV {
  position: relative;
}

.myDIV:hover .speech {
  display: block;
  color: green;
}
<h2>Display an Element on Hover</h2>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<span><span>
hello buddy how do you do <span class="myDIV"> Hover over me.<span class="speech">I am shown when someone hovers over the div above.<p>Other content</p>
<p>Other content</p>
<p>Other content</p></span></span></span> well I am moe optional
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<p>Other content</p>
<span><span>
hello buddy how do you do <span class="myDIV"> Hover over me.<span class="speech">I am shown when someone hovers over the div above.</span></span></span> well I am moe optional
...